如何自动构建“精简版”

时间:2012-12-13 10:13:37

标签: android android-build android-drawable

我制作了一款应用程序,它为不同按钮的镜像提供了大量图形。每个按钮的所有图形都会在drawable-xhdpidrawable-hdpidrawable-mdpidrawable-ldpi中进行复制。

前两个目录中的图形数量约为3.5MB,而应用程序的总数约为7.5MB。

显然,要求那些拥有低端智能手机的人下载并用3.5MB完全没用的图形填充内存会很疯狂,所以我决定为这些人制作一个“lite”版本。

我希望有一个常量,比如

  static final boolean LITE_BUILD = true;

因此,当我将其设置为true时,构建会自动排除xhdpihdpi图形。

现在我唯一的解决方案就是手动移走这两个目录,构建lite版本,放回目录并构建完整版本。显然它不是最佳的。

3 个答案:

答案 0 :(得分:2)

您是否在Linux上构建应用程序?在这里,您可以创建项目目录的多个变体,同时将符号链接设置为您需要的目录 - 并且为应用程序的低分辨率变体省略具有高分辨率图像的目录。通过这种方式,您可以使用一个代码库,同时创建应用程序的多个变体非常容易。

答案 1 :(得分:1)

好吧,既然你放在这些文件夹中的所有drawable都是不变的,我认为构建相同的应用程序两次,而在lite版本中它只有低dpi图像,将是唯一的解决方案。

如果您担心人们为他们的手机下载合适的应用程序(完整版或精简版),您可以在应用程序中标记它支持的手机屏幕大小。

如此低的dpi手机只会看到Lite版本,而其他手机会看到完整版本(我认为它的工作原理如此)。

答案 2 :(得分:1)

你正在使用一个理智的版本控制系统,对吗?然后在vcs中添加不同的分支以用于不同的分辨率构建。

在公共基本分支(主干/主服务器?)中执行常见功能,并将这些更改合并到单独的分辨率分支。将分辨率依赖的drawables仅添加到相关分支以及对清单的修改。

现在,当您想为ldpi构建一个版本时,请更改为lpdi分支,确保合并对基本分支的更改并正常构建apk。瞧,你有一个lpdi-build。