android中的armeabi、armeabi-v7a、arm64-v8a及x86等

android中的armeabi、armeabi-v7a、arm64-v8a及x86等1.Android设备的CPU类型armeabiv-v7a:第7代及以上的ARM处理器

android中的armeabi、armeabi-v7a、arm64-v8a及x86等

1.Android 设备的CPU类型

  1. armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年15月以后的生产的大部分Android设备都使用它.
  2. arm64-v8a: 第8代、64位ARM处理器,很少设备,三星 Galaxy S6是其中之一。
  3. armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。
  4. x86: 平板、模拟器用得比较多。
  5. x86_64: 64位的平板

armeabi设备只兼容armeabi,不支持硬件辅助浮点运算,支持所有的 ARM* 设备;
armeabi-v7a设备兼容armeabi-v7a、armeabi;
arm64-v8a设备兼容arm64-v8a、armeabi-v7a、armeabi;
x86设备兼容x86、armeabi;
x86_64设备兼容x86_64、x86、armeabi;
mips64设备兼容mips64、mips;
mips只兼容mips;

2.Android设备如何加载.so文件

以arm64-v8a设备为例,该Android设备优先寻找libs目录下的arm64-v8a文件夹。如果有文件夹,但是没有so库,则会报错。如果没有arm64-v8a文件夹,则会去找armeabi-v7a文件夹。如果找不到armeabi-v7a文件夹,则寻找armeabi文件夹,兼容运行该文件夹下的so。

3.实际操作

由上兼容性可以看到不同设备基本都是可以兼容armeabi的so库,只是效率,性能上有问题。

反编译微信,里面只有armeabi这个文件夹,应该是在这个目录下放置其他架构的SO文件,再通过代码实现选择加载哪一个架构的SO文件。

使用armeabi的手机已经很少了,几乎忽略不计了。

为了减小 apk 体积,只保留 armeabi 和 armeabi-v7a 两个文件夹,并保证这两个文件夹中 .so 数量一致

对只提供 armeabi 版本的第三方 .so,原样复制一份到 armeabi-v7a 文件夹

今天的文章android中的armeabi、armeabi-v7a、arm64-v8a及x86等分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/72672.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注