本帖后由 心芝雨 于 2020-1-26 07:28 编辑
说区别 先要说安卓架构 - mips / mips64: 极少用于手机可以忽略(所以看到的app也几乎没有)
- x86 / x86_64: x86 架构的手机都会包含由 Intel 提供的称为 Houdini 的指令集动态转码工具,实现 对 arm .so 的兼容,再考虑 x86 1% 以下的市场占有率,x86 相关的两个 .so 也是可以忽略的(模拟器基本都是这个为主)
- (x86_64 就是安卓64位版的7.1.2其余版本 都是32位)
- armeabi: ARM v5 这是相当老旧的一个版本,缺少对浮点数计算的硬件支持,在需要大量计算时有性能瓶颈
- armeabi-v7a: ARM v7 目前主流版本,一般市面上的骁龙系列或者麒麟系列的**器绝大部分都是这种架构,也就是很多人嘴里的32位版本, 兼容性好(逍遥安卓模拟器兼容支持)
- arm64-v8a: 64位支持(模拟器目前只能做到部分兼容)
所谓的ARMv8架构,就是在MIPS64架构上增加了ARMv7架构中已经拥有的的TrustZone技术、虚拟化技术及NEON advanced SIMD技术等特性,研发成的。
适配不同的平台目前主流的Android设备是armeabi-v7a架构的,然后就是x86和armeabi了。如果同时包含了 armeabi,armeabi-v7a和x86,所有设备都可以运行,程序在运行的时候去加载不同平台对应的so,这是较为的一种解决方案,但是同时也会导致包变大。
   armeabi-v7a是可以兼容armeabi的,而v7a的CPU支持硬件浮点运算,目前绝大对数设备已经是armeabi-v7a了,所以为了性能上的更优,就不要为了兼容放到armeabi下了。x86也是可以兼容armeabi平台运行的,另外需要指出的是,打出包的x86的so,总会比armeabi平台的体积更小,对于性能有洁癖的童鞋们,还是建议在打包so的时候支持x86。
放置 .so 文件的正确姿势其实就两句话:
.so 文件的正确姿势- 为了减小 apk 体积,只保留 armeabi和 armeabi-v7a 两个文件夹,并保证这两个文件夹中 .so 数量一致
- 对只提供 armeabi 版本的第三方 .so,原样复制一份到 armeabi-v7a文件夹即可。
以上 墨迹半天也看不出什么 名堂 个人如何判断该使用哪个版本那 32位镜像与64位镜像的区别:
- 32位镜像只能运行32位应用
- 64位镜像不仅能运行32位应用,还能运行64位应用
如何选择:
- 目前市场上绝大部分应用是32位的,因此使用32位的镜像,就可以满足要求。
- “安卓7.1.2模拟器(64位)”镜像目前处于比较早期的研发试 用阶段,适用于仅包含64位运行库的APP
(如韩服《天堂2M》、《武侠乂》、《黎明杀机》等)
64位Android的主要优势有以下几点: 启用新的体系结构功能和指令 性能优势:游戏引擎能够减少加载时间,提升FPS表现 Android运行时的优化可提高Java应用程序的性能 增强安全功能:全新ISA功能可提供更好的安全性、内容保护和更少的攻击面 仅AArch64的CPU器件非常易于验证,可为其他功能释放裸片空间 专注于单个ISA可以节省成本,保持一致性并缩短上市时间
目前 安卓7.1.2 64位版本还是在公测阶段 难免有BUG 兼容问题 逍遥安卓模拟器会收集相关问题 累计优化
安卓5.1 正式版 随时更新优化 优先高
安卓4.4 维护版 日常更新 兼容性无法在提示
安卓7.1 预览版 日常更新 优化 有部分BUG
安卓7.1 前瞻版 64位版本 目前属于测试 正常更新优化 有BUG
32位镜像与64位镜像的区别:
- 32位镜像只能运行32位应用
- 64位镜像不仅能运行32位应用,还能运行64位应用
如何选择:
- 目前市场上绝大部分应用是32位的,因此使用32位的镜像,就可以满足要求。
- “安卓7.1.2模拟器(64位)”镜像目前处于比较早期的研发试 用阶段,适用于仅包含64位运行库的APP
(如韩服《天堂2M》、《武侠乂》、《黎明杀机》等)
|