我有一项要求是根据设备类型(LDPI、MDPI、HDPI 等)压缩 APK 大小。我的客户要求提供多个 APK。根据他的说法,配置低的小型设备因此 apk 大小应该更小,而 MDPI 比 LDPI 好一点,因此大小可能会增加。因此,他要求相应地提供构建。这样用户将在更短的时间内下载应用程序并节省内部/外部存储器。
为此,我尝试了很多方法来压缩 APK,但我在各个方面都失败了: *9- Patch:我的项目不包含所有图像都是 9-Patches,事实上 90% 的图像都是非 9patch 的。 *Pro-guard:我尝试使用 Proguard 来减小文件大小,但据我所知,proguard 是为了保护我的代码,apk 的大小并没有被压缩多少。 * 我试过不适合我。
现在我正在遵循以下过程,我知道这是非常糟糕的过程: 为 LDPI 设备生成 APK 我只将所有资源文件保存在 res/ldpi 文件夹中,我遵循与 MDPI、HDPI、XHDPI 等相同的过程,
通过使用当前流程,我浪费了很多时间,而且我猜这也是一个非常糟糕的流程。
要解决上述问题,你能帮帮我吗?
最佳答案
使用 Gradle for Android 及其对 APK density splits 的支持.然后,适用于 Android 的 Gradle 可以为每个密度生成 APK 文件,以及一个包含所有密度的可选“fat APK”。您可以使用 Android Studio 作为您的 IDE,或者设置一个可以在 Eclipse/Ant 经典目录结构中构建现有项目的 build.gradle
文件。
但是,您的客户需要了解并非所有分发 channel 都支持按屏幕密度分发不同的 APK 文件。 Play 商店可以。我不知道其他 channel (例如,Amazon AppStore for Android)。而且用户可能不知道他们设备的密度是多少,因此依赖用户从多个版本中选择一个从网站下载是不太可靠的。
关于android - 在android中生成多个APK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27657202/