安卓app打包的时候还需要兼容armeabi么?

app打包的时候还需要兼容armeabi么,是不是armeabi-v7a就可以兼容大部分主流设备了,今天试了一下去掉armeabi打包APK小了9MB…
关注者
35
被浏览
49,453

7 个回答

Android 平台 ABI 支持

Android 系统在运行时知道它支持哪些 ABI,因为版本特定的系统属性会指示:

  • 设备的主要 ABI,与系统映像本身使用的机器代码对应。
  • 可选的辅助 ABI,与系统映像也支持的另一个 ABI 对应。

此机制确保系统在安装时从软件包提取最佳机器代码。

为实现最佳性能,应直接针对主要 ABI 进行编译。例如,基于 ARMv5TE 的典型设备只会定义主要 ABI:armeabi。 相反,基于 ARMv7 的典型设备将主要 ABI 定义为 armeabi-v7a,而将辅助 ABI 定义为 armeabi,因为它可以运行为每个 ABI 生成的应用原生二进制文件。

许多基于 x86 的设备也可运行 armeabi-v7a 和 armeabi NDK 二进制文件。对于这些设备,主要 ABI 将是 x86,辅助 ABI 是 armeabi-v7a。

基于 MIPS 的典型设备只定义主要 ABI:mips。


总的来说,要兼容性就放多点,针对不同CPU使用不同的版本,在不同的目录下面放置不同的so文件,但是APK就大些。如果严格控制APK大小,就选择armeabi或者armeabi-v7a其中一个。当然了,目前主流手机cpu是armeabi-v7a。看需求吧。

看自己的兼容,如果是4.0以后去掉了 armeabi没多大问题,armv5,armv6手机基本没有了

反正我用很久没有被系统坑过,反而是国内很多 sdk 只提供armeabi编译的版本,略烦