Android 4及更高版本仅支持armeabi-v7a是否安全?

Mou*_*usa 18 android arm android-ndk

我开发了一个主要使用C++的应用程序,并且.so像往常一样由NDK编译到库中.我们知道必须分别为每个CPU架构构建本机应用程序; 所以,我有不同so的文件armeabiarmeabi-v7a.(我故意冷落x86mips,因为没有多少与这些架构的Android设备被释放.)

但是,大小非常大,每个so文件占用大约90 MB空间,我想减少它.

我知道我可以省略armeabi-v7a,因为向后兼容,但在这种情况下,应用程序将运行非常缓慢.

考虑到我的应用程序仅支持android ICS及以上(minSdkVersion="14"),我可以安全地删除armeabi并假设所有这些新设备都使用armeabi-v7a?或者某些设备仍然可以使用旧的armeabi而不是armeabi-v7a架构?

mst*_*sjo 23

Android 4.0及更新版本的未经修改的原始Android源默认情况下不支持ARMv5/ARMv6(但可以修改为ARMv5/ARMv6的构建版本 - 在ARMv6上运行它的自定义版本).我不确定是否可以获得与此类Android版本兼容的ARMv6设备,或者它是否仅适用于非官方固件.从Android 4.4开始,CDD(兼容性定义)严格要求ARMv7.有关详细信息,请参阅https://android.stackexchange.com/questions/34958/what-are-the-minimum-hardware-specifications-for-android.

所以是的,也许,原则上,armeabi如果您的应用需要Android 4.0 ,您可以放弃,但我不确定是否有任何此类官方保证.如果你需要Android 4.4,它应该绝对没问题.


Cri*_*tan 5

没有支持armeabi但不支持的Android 4+设备armeabi-v7a,因此您可以放心armeabi

您可以在Google Play中自行检查:创建2个APK(其中1个支持armeabi,1个支持armeabi-v7a),然后尝试将两者都上传到Google Play。您会注意到它们具有相同数量的受支持设备。

如果您在尝试同时支持两种架构时按架构拆分APK,则在上传到Google Play时甚至会遇到错误:

任何设备都无法下载此应用的xxx版本,因为它们都会收到具有更高版本代码的APK。