android - 在android中生成多个APK

标签 android

我有一项要求是根据设备类型(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/

相关文章:

android - Onesignal 与 GCM(FCM)

android - 如何按名称从 res/raw 读取文件

android - 如何为 Android 创建签名的可加载内核模块?

android - DisplayMetrics 返回全零

android - ListView 中的 TextField 可聚焦性

Android Canvas 动画卡帧

android - 使用 AppCompat 和 Material 更改硬键菜单面板的样式

android - 布局问题

android - 关于多进程情况下的android Sqlite安全

java - 从内部 AsyncTask 类获取 Arraylist