kos*_*kos 41 android arm android-ndk
我有一些相当大的应用程序二进制大小的本机库.我调查了APK拆分,但维护和QAing多个APK不是我想做的事情.
因此,我想使用ndk.abiFilters Gradle属性在我的发布版本风格中排除未使用的体系结构.(调试版本我想单独留下,以便我可以在x86上运行HAXM加速仿真器).
我想在我的发布版本中只有armeabi-v7a和arm64-v8a,但我不确定是否值得担心我正在放弃的其他架构的市场份额.经过大量的回顾,我找不到任何ARMv6(armeabi),MIPS,x86或x86_64的市场份额参考.我的直觉告诉我,后三者几乎不存在,但我不确定ARMv6.
我在一个论坛上找到了这个链接,该论坛上有一系列使用各种架构的手机.某处有更可靠的东西吗?也许有%的用户类似于Android版本的仪表板?
如果我只是为armeabi-v7a和arm64-v8a(或者armeabi,armeabi-v7a和arm64-v8a)构建我的原生库,那么我还有什么别的想念?
mst*_*sjo 39
首先,如果你担心二进制大小,你真的不需要arm64-v8a,所有这些设备都可以正常运行armeabi-v7a二进制文件.只有当你真的需要从中获得最后一次额外的表现时,它才有可能是值得的.
至于armeabi和ARMv6; 从Android 4.4(2013年10月)开始,Android本身不再正式支持它 - 从Android 4.0开始它应该不太常见(从该版本开始,AOSP源需要修改仍然为ARMv6构建).所以在实践中,如果你不支持低于4.4的版本,你可以删除那个没有任何重大损失的版本.
另外,对于x86; 这些设备中的许多都带有令人惊讶的臂式二进制仿真,因此那些可以使用armeabi-v7a版本管理也很好.
Jos*_*mez 30
使用应用程序包时,包含其他体系结构将不再对二进制文件大小产生任何影响,因为在这种情况下,Google Play将仅为每个设备提供适用于该特定设备的二进制文件.不仅如此,应用程序更新也将更小更快.
保留项目的先前信息仍未使用应用程序包:
不幸的是,Android Dashboard虽然有用,却不提供架构信息,也不提供Google Analytics.
在统一的统计数据用于提供每个架构和CPU特性的统计数据.但请注意,这些不是一般统计数据,而是仅涵盖Unity应用程序/游戏的用户.该信息似乎不再在公共链接中提供,因此我已使用archive.org中的最新快照替换了直接链接.
Rad*_*esh 12
此基础上底部的图片,你只需要armeabi-V7A和86和底座上何塞·戈麦斯答案我只是添加armeabi-V7A,并在所有没有问题。
因此,请在您的 app.gradle
android {
defaultConfig {
//other configs
ndk {
abiFilters "armeabi-v7a"
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您仍然担心2%-3%的人使用x86架构(例如ASUS ZenFone和lenovo手机),则必须在app.gradle
ndk {
abiFilters "armeabi-v7a", "x86"
}
Run Code Online (Sandbox Code Playgroud)
更新
如果要在Play商店中发布APK时出现此错误
你必须用这个
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
Run Code Online (Sandbox Code Playgroud)
我建议使用应用程序捆绑发布
归档时间: |
|
查看次数: |
11249 次 |
最近记录: |