2

我制作了一个应用程序,该应用程序包含大量不同按钮的图形。每个按钮的所有图形都以drawable-xhdpidrawable-hdpidrawable-mdpi的比例复制drawable-ldpi

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

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

我想要一个常数,比如

  static final boolean LITE_BUILD = true;

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

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

4

3 回答 3

2

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

于 2012-12-13T10:41:18.817 回答
1

好吧,由于您放在这些文件夹中的所有可绘制对象都是不变的,我认为构建相同的应用程序两次,而在精简版中它只有低 dpi 图像,将是唯一的解决方案。

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

所以低 dpi 手机只会看到精简版,而其他手机会看到完整版(我认为它是这样工作的)。

于 2012-12-13T10:28:32.203 回答
1

您使用的是健全的版本控制系统,对吗?然后在你的 vcs 中为不同的分辨率构建添加不同的分支。

在公共基础分支(主干/主分支?)中执行公共功能并将这些更改合并到单独的解析分支。仅将依赖于分辨率的可绘制对象添加到相关分支以及对清单的修改。

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

于 2012-12-13T10:42:02.720 回答