我制作了一款应用程序,它为不同按钮的镜像提供了大量图形。每个按钮的所有图形都会在drawable-xhdpi
,drawable-hdpi
,drawable-mdpi
和drawable-ldpi
中进行复制。
前两个目录中的图形数量约为3.5MB,而应用程序的总数约为7.5MB。
显然,要求那些拥有低端智能手机的人下载并用3.5MB完全没用的图形填充内存会很疯狂,所以我决定为这些人制作一个“lite
”版本。
我希望有一个常量,比如
static final boolean LITE_BUILD = true;
因此,当我将其设置为true时,构建会自动排除xhdpi
和hdpi
图形。
现在我唯一的解决方案就是手动移走这两个目录,构建lite版本,放回目录并构建完整版本。显然它不是最佳的。
答案 0 :(得分:2)
您是否在Linux上构建应用程序?在这里,您可以创建项目目录的多个变体,同时将符号链接设置为您需要的目录 - 并且为应用程序的低分辨率变体省略具有高分辨率图像的目录。通过这种方式,您可以使用一个代码库,同时创建应用程序的多个变体非常容易。
答案 1 :(得分:1)
好吧,既然你放在这些文件夹中的所有drawable都是不变的,我认为构建相同的应用程序两次,而在lite版本中它只有低dpi图像,将是唯一的解决方案。
如果您担心人们为他们的手机下载合适的应用程序(完整版或精简版),您可以在应用程序中标记它支持的手机屏幕大小。
如此低的dpi手机只会看到Lite版本,而其他手机会看到完整版本(我认为它的工作原理如此)。
答案 2 :(得分:1)
你正在使用一个理智的版本控制系统,对吗?然后在vcs中添加不同的分支以用于不同的分辨率构建。
在公共基本分支(主干/主服务器?)中执行常见功能,并将这些更改合并到单独的分辨率分支。将分辨率依赖的drawables仅添加到相关分支以及对清单的修改。
现在,当您想为ldpi构建一个版本时,请更改为lpdi分支,确保合并对基本分支的更改并正常构建apk。瞧,你有一个lpdi-build。