gpt4 book ai didi

android - Android apk 构建的条件资源包含/排除

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:58:44 26 4
gpt4 key购买 nike

我一直回到这个问题,因为似乎没有一个干净的解决方案。有没有人有从 Android 中的子项目中排除资源的好策略?

我有两种情况:

1 - 基础库项目有 en、es 等的本地化文件。

--子项目1使用所有本地化,一切都很好

--子项目 2 仅本地化为英语,但由于父资源,最终的 .apk 将进行部分本地化(尽管 ADT19 左右添加了 Lint 规则来警告/阻止您这样做)。

我现在唯一的解决方案是为本地化创建一个单独的父库,并且只将它包含在子项目 1 中。如果你有很多库项目,这将是一个很大的痛苦。

2 - 排除构建特定的资源。我有一些图像只需要用于我的特定于 Nook 的应用程序构建,这些图像由标志触发。条件代码效果很好,但始终包含资源。

我不想为我的每一个应用程序创建另一个子项目。有没有什么方法可以设置构建/编译标志来修剪特定的图像资源,这样它们就不会进入最终的 .apk?

第二个问题可能是我特有的,但令我惊讶的是我找不到关于第一点的任何好的讨论。没有其他开发者只本地化一些应用程序吗?还是大多数人只是忽略了这个问题?

最佳答案

1 - Base library project has localization files for en, es, etc.

您有两个项目使用此库,只有其中一个项目需要所有翻译。因此,这些翻译可能在使用库并需要翻译的项目中,而不是在库本身中。这与任何其他自定义库资源的项目(例如,替换图标、替换布局)没有什么不同。

现在,一旦您开始进行更复杂的混合(例如,两个项目需要翻译,而第三个项目不需要),您就会开始遇到问题。

Exclusion of build-specific resources. I have a few images that are only needed for my Nook-specific builds of my apps, which are triggered by a flag. Conditional code works great, but the resources are always included.

Xav 和我聊了聊条件资源 in this issue .他的重点是调试与生产(相当于 BuildConfig.DEBUG 的资源),但听起来更灵活的东西是可能的。

这两件事都可以通过自定义发布构建脚本来处理。在正常的调试构建中,你会完全不去管它;在生产构建中,让 Ant 脚本处理项目副本,在编译、签名和 zipaligning 之前修剪掉不需要的目录。

关于android - Android apk 构建的条件资源包含/排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11301994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com