【发布时间】:2015-09-07 19:42:46
【问题描述】:
我想使用多 apk 功能在 google 商店(统一制作)上发布 2 个 apk。 我在网上看了,我试过这个:
在 ProjectFolder/jni/ 创建了一个 Application.mk 只有
APP_ABI := x86或APP_ABI := armeabi armeabi-v7a取决于我想使用的库。根据我想要构建的 apk,创建了 2 个带有 2 个版本代码的 apk,并将 Unity 的“设备过滤器”设置为 x86 或 Ar Mv 7。
在谷歌开发者控制台上发布了这两个 apk。
Apk 的大小不同,因此使用了不同的库。 (使用两个 lib,apk 的重量增加了 16 个月,只有 arm,大约 8 个月,只有 x86,大约 8.5 个月)。
问题是,谷歌控制台检测到的“本机平台”总是“armeabi-v7a,x86”(两种架构),无论是什么apk。 所以我在谷歌控制台上收到一条错误消息,说这两个 apk 具有完全相同的设备兼容性。
(PS:如果我想要 2 个不同的 apk,这是因为每个 lib 在最终 apk 上占用 8mo,所以对于一个空项目需要 16mo。而且 google 对 apk 的大小限制......)
更新:
好的,问题来自一个插件 (everyplay)。它有用于 x86 和 arm 架构的库。解决方案是在构建 arm apk 之前删除 x86 插件库,并删除 arm 插件库以构建 x86 apk。
我还注意到不需要在 Application.mk 中更改 APP_ABI,统一参数 device filtrer 会覆盖它。
【问题讨论】:
-
部分 x86 Android 设备通过二进制代码翻译(例如 libhoudini)支持 armeabi/armeabi-v7a 原生库。
-
这是否意味着我应该只包含 armeabi/armeabi-v7a 库? x86 Android 设备会遇到哪些问题?顺便问一下,目前x86设备的比例是多少?
-
x86 设备 IIRC 大约在 2 个月前不到 500 个。
-
很多!如果 x86 设备用户下载没有 x86 库的 apk 会发生什么(因为谷歌控制台认为即使没有适当的库它也是兼容的)?只是在加载时崩溃或只是性能不佳(通过代码翻译)?