安卓CPU架构梳理 应用商店64位APP上架适配
一、安卓CPU架构梳理
Android 目前共支持7种CPU架构:
mips, mips64, X86, X86–64, arm64-v8a, armeabi, armeabi-v7a
- armeabi:第5代ARM处理器,使用软件浮点运算,兼容所有ARM设备,通用性强,速度慢。它能运行在除了mips和mips64的设备上,但在非 armeabi设备上运行性能还是有所损耗;
- armeabi-v7a:第7代32位ARM处理器,支持硬件浮点运算(支持 armeabi 和 armeabi-v7a,目前大部分手机都是这个架构)
- arm64-v8a:第8代、64位ARM处理器(支持 armeabi-v7a、armeabi 和 arm64-v8a)
- X86:电脑、平板CPU架构,因此手机模拟器也通常为X86,设备兼容X86、armeabi
- x86_64:电脑、平板CPU架构,设备兼容X86_64、X86、armeabi
- mips、mips64:基本没见过
他们关系用表格表示如下:
Platform | 32-bit libraries | 64-bit libraries | 所属公司 |
---|---|---|---|
ARM | armeabi-v7a | arm64-v8a | 英国ARM |
x86 | x86 | x86_64 | 美国Intel |
mips | mips | mips64 | 美国MIPS |
二、单ABI适配方案
ABI:英文Application Binary Interface的缩写,也就是应用二进制接口。不同的CPU 与指令集的每种组合都有 定义的 ABI (应用程序二进制接口),一段程序只有遵循这个接口规范才能在该 CPU 上运行。
目前手机市场上,x86 / x86_64/armeabi/mips / mips6 的架构,基本可以不不考虑了,它们的占有量应很少很少了,arm64-v8a作为最新一代架构,应该是目前的主流,armeabi-v7a只存在少部分老旧手机。
因此我们主要针对armeabi适配,如果你没有模拟器的适配需求的话。
2.1、只适配armeabi
优点:基本上适配了全部CPU架构(除了淘汰的mips和mips_64)
缺点:性能低,相当于在绝大多数手机上都是需要辅助ABI或动态转码来兼容
2.2、只适配 armeabi-v7a
优点:兼容性强,支持armeabi-v7a和arm64-v8a,包体积小、性能也相对较强(支持硬件浮点),属于前几年主流适配方案
缺点:无法发挥现在64位机器的性能,64位机器需要向下兼容到32位
2.3、只适配 arm64-v8
优点:性能最佳,包体积小
缺点:兼容性差,只能运行在arm64-v8的64位机器上
三、应用商店64位APP上架适配
目前64位适配方案:armeabi-v7a、arm64-v8。用一张图表示整个查找过程
方案一:同时适配armeabi-v7a、arm64-v8
这是目前使用比较多的适配方案,我们在app -> Gradle的ndk abiFilters中配置即可
优点:兼容性强、性能高,支持64位,省事(只打一个包)
缺点:打包时需要把"armeabi-v7a", "arm64-v8a"下两份so库合到一个包,包体积较大
评价:目前适配64位懒人做法
android {defaultConfig {...ndk {abiFilters "armeabi-v7a", "arm64-v8a"}}...
}
方案二:armeabi-v7a、arm64-v8分开打包
这种也是目前比较主流的适配方案,我们在app -> Gradle的split分包中配置即可
优点:兼容性强、性能高,支持64位,包体积小(目前各大应用市场已经提供32位;64位的包分开上传)
缺点:应用分发时稍微麻烦,需要同时上传32位、64位。
评价:这种是未来的趋势
android {...splits {abi {reset()enable trueuniversalApk false // If true, also generate a universal APKinclude "armeabi-v7a", "arm64-v8a"}}...
}
四、android studio配置梳理
4.1、ndk abiFilters
用于配置一个包打多个CPU架构的
ndk {abiFilters "armeabi-v7a", "arm64-v8a"
}
4.2、Android split分包
用于配置分包
enable: 是否启用ABI拆分机制
reset():重置ABI列表为只空字符串,一半和include、exclude一起使用,如果要用必须在- - include和exclude前面
include:指明要包含哪些ABI,目前使用最多的伪64位处理器的arm64-v8a,其次才是- armeabi-v7a
exclude:默认包含下所有ABI,可以移除一些ABI
universalApk:是否打包一个通用版本,包含所有的ABI,默认值为 false
splits {abi {reset()enable trueuniversalApk false // If true, also generate a universal APKinclude "armeabi-v7a", "arm64-v8a"}
}
可以根据配置不同打出多个包
4.3、ndk abiFilters && Android split分包区别
根据需求配置,一般不能同时配置(或者enable置为false),会编译报错
安卓CPU架构梳理 应用商店64位APP上架适配相关推荐
- 升级版本-汇编码转机器码万能转换工具(支持32种CPU架构指令16/32/64位的转码)
众所周知,计算机核心处理器就是CPU是计算机的重要组成部分.所有的程序都会化为机器代码由CPU去逐个执行. 而CPU架构类型众多,也导致了多种指令类别的不统一.如果有涉猎不同的CPU指令集时转换工具会 ...
- 爱奇艺App架构升级之路——64位适配探索与实践
背 景 随着手机硬件的不断发展,近两年的新式手机已经全部采用了64位CPU,64位真的比32位快吗?实际上32位和64位的差异主要体现在内存寻址上,32位最高只支撑4GB内存,而64位则能够最高支撑 ...
- CPU、操作系统的32位与64位
我们经常听说操作32位和64位,今天就和大家分享一下32位和64位的知识! 一.Windows操作系统32位与6位的区别 32位.64位操作系统又叫Windows X86和Windows X64. 1 ...
- Android手机64位APP兼容
为什么 2022 armv9芯片新机出货,不兼容32位,出现卡顿闪退等问题 64位性能更好 手机硬件升级,存储更大,应用包体积不敏感 应用市场的政策 Google Play声明 自 2019 年 8 ...
- 32位机4G虚拟内存 64位机128G虚拟内存计算误区
1. 32位 我以为32bit(这里我没搞清地址总线的概念,总结来说:32位CPU每次可以处理32个bit 4个字节(B),每一个字节都有一个地址,32位操作系统又有32个地址总线,两个地址总线00 ...
- android应用商店升级标准,五大应用商店宣布:共同推进安卓APP升级64位架构
[CNMO新闻]据媒体报道,近日,小米应用商店.OPPO应用商店.vivo应用商店.腾讯应用宝和百度手机助手等五大应用商店宣布,将共同推进国内安卓生态对64位架构的升级支持,目的是更好提升APP性能体 ...
- 安卓APP升级64位架构
What 最近收到了小米官方发送的安卓APP升级64位架构的通知,具体邮件如下: 尊敬的开发者: 您好! 为更好地提升APP性能体验,降低APP功耗影响,小米应用商店与OPPO应用商店.vivo应用商 ...
- 2023 年淘汰 32 位 ARM 将全面转向 64 位 CPU 架构
前不久 ARM 发布了 ARMv9 指令集,并基于此推出了 Cortex-X2/A710/A510 架构,这是 10 年前推出 ARMv8 之后的一次更大更新,全面迈向 64 位指令集.ARM 日前更 ...
- Chrome现在也能编辑pdf文件了!64位安卓版上线,网页加载快10%,还有良心标签管理功能...
贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 全世界最多人在用的Chrome浏览器,今天更新了. 版本号:Chrome 85. 增加一系列标签管理功能,还自带PDF编辑器,并且提升10 ...
最新文章
- 操作系统常用词典(三)
- 撩课mysql_撩课-Mysql第20部分索引
- Underscore _.template 方法使用详解
- 毫米波雷达_毫米波雷达基础知识
- 电子商务(六)-作业题解-第3章
- 【今晚8点半】:对话袁家军——成都的多媒体圈
- 工作302:scss目录编写
- iOS8上本地通知接收不到的问题
- ArcEngine数据编辑--选择要素
- linux运维实战centos7.6,centos7新特性6
- 替代 NetMeeting 的多人屏幕共享工具 InletexEMC 国外出品,永久免费
- 如何写一份竞品分析报告——产品经理养成路
- 人工智能智能制作PPT构想---论文与PPT介绍
- 电驱系列:直流无刷马达(不用芯片,独立元器件搭建)
- D语言/DLang 2.085.1 发布,修复性迭代
- 节能降耗 | AIRIOT智慧电力综合管理解决方案
- 根证书,解决win7 sp1 64位系统在线安装VS2017 或VS2019的失败
- 方正集团将打造四大板块
- c语言作业素数探求实验题,c语言课程设计-素数探求.doc
- 编写ATL工程实现ActiveX控件调用cryptoAPI接口(一)------------签名与验证