减少包含 .so 文件的 apk 大小
-
21-12-2019 - |
题
在我们的 Android 应用程序中,我们有两个 .so 文件:一个用于 x86,另一个用于 ARM。它们非常大,并且将 .apk 的大小从 7 MB 增加到 11 MB。
由于 .so 文件是运行时实体,因此它们必须位于 .apk 文件内。
有什么方法可以减少 .so 文件的大小或以更好的方式在我的 .apk 中使用/构建它?
我从这里得到一分 http://developer.sonymobile.com/2012/01/31/tips-for-reducing-apk-file-size/ IE。从本机代码中删除调试符号。
解决方案
Play 商店允许您 为每个 CPU 架构上传单独的 APK. 。因此,您将拥有一个 ARM APK 和一个 x86 APK,而不是一个同时拥有这两种 APK。
使用 Gradle for Android 设置此类 APK 相对简单——使用单独的 产品风味 对于每个架构。我认为在 Android 的 Gradle 之外有一些方法可以做到这一点,尽管我怀疑它涉及更多。
另一种方法是干脆不分发 x86 .so
. 。现代 x86 驱动的 Android 设备往往具有 libhoudini
, ,这允许他们使用 ARM .so
NDK 库。然而,与 Android 模拟器一样,在 x86 上模拟 ARM 速度很慢,因此您需要测试并查看您的应用程序在 x86 上的性能是否可接受。
并且,正如先生。斯特拉顿建议,特别是如果图书馆是你的,看看你是否可以调整图书馆本身的大小。ProGuard 不会像去除 Java 代码那样去除本机代码。
不隶属于 StackOverflow