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

标签 android android-ndk arm

我开发了一个应用程序,该应用程序主要使用 C++,并像往常一样由 NDK 编译为 .so 库。我们知道,必须为每个 CPU 架构分别构建原生应用程序;所以我对 armeabiarmeabi-v7a 有不同的 so 文件。 (我故意省略了 x86mips,因为发布的具有这些架构的 Android 设备并不多。)

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

我知道我可以省略 armeabi-v7a,因为向后兼容,但在这种情况下,应用程序会运行得很慢。

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

最佳答案

用于 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有关这方面的详细信息。

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

关于android - 仅支持 Android 4 及更高版本的 armeabi-v7a 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28926101/

相关文章:

android - 使用 adb 备份/恢复?

android - 在android中拉动刷新

android - 如何在Cocos2D-Android中创建无图像的可见矩形?

c++ - const 对象的代码大小

ARM64 缓冲区溢出 - 无法覆盖 $pc

android - Google Plus 帐户登录/注销无法正常工作

java - 如何在 Android 操作系统中通过 Java 访问设备驱动程序?

android - java.lang.UnsatisfiedLinkError : Native method not found 错误

android - 将 jobjectArray 从 JNI 传递到 Java 在 Android API 21/22 上崩溃但在 API 19 上工作

c++ - 来自事件处理程序的 STM32 函数指针