你必须知道的ABI和CPU关系
来源:互联网 发布:linux修改分区大小 编辑:程序博客网 时间:2024/06/05 10:55
内容出自:http://blog.csdn.net/xx326664162/article/details/51167849
ABI和CPU的重要知识
1、 大部分cpu都支持多于一种的ABI。
2、 当一个应用安装在设备上,只有该设备支持的CPU架构对应的.so文件会被安装。
3、
注意:上表格中的空白部分,是我不知道它是否支持,极有可能是不支持
解析: x86设备上,选择ABI的优先级
libs/x86目录中如果存在.so文件的话,会被安装
如果不存在,则会选择armeabi-v7a中的.so文件
如果也不存在,则选择armeabi目录中的.so文件
x86设备能够很好的运行ARM类型函数库,但并不保证100%不发生crash,特别是对旧设备,因为是运行在x86设备上模拟arm的虚拟层上。
4、 64位设备(arm64-v8a, x86_64, mips64)能够运行32位的函数库,但是以32位模式运行,在64位平台上运行32位版本的ART和Android组件,将丢失专为64位优化过的性能(ART,webview,media等等)。
5、 最好是针对特定平台提供相应平台的二进制包,这种情况下运行时就少了一个模拟层(例如x86设备上模拟arm的虚拟层),从而得到更好的性能(归功于最近的架构更新,例如硬件fpu,更多的寄存器,更好的向量化等)。
6、 会安装优先级较高的ABI目录,则其它优先级较低的ABI目录(包括其它module中的ABI目录),都无法安装。例如:在cpu是ARMv7架构的手机上,如果检测到armeabi-v7a,就会选择安装armeabi-v7a,则armeabi下的文件,都无法安装了。
7、 相应的ABI二进制文件,要放进相应的ABI目录中
8、一般情况下不要简单得修改架构目录名
我们可以通过Build.SUPPORTED_ABIS得到根据偏好排序的设备支持的ABI列表。但你不应该从你的应用程序中读取它,因为Android包管理器安装APK时,会自动选择APK包中为对应系统ABI预编译好的.so文件,如果在对应的lib/ABI目录中存在.so文件的话。
- 你必须知道的ABI和CPU关系
- 你必须知道的ABI和CPU关系
- Android的.so文件、ABI和CPU的关系
- Android的.so文件、ABI和CPU的对应关系
- Android的.so文件、ABI和CPU的关系
- Android的.so文件、ABI和CPU的关系
- Android的.so文件、ABI和CPU的关系
- Android ABI和CPU的问题
- 怎样知道你的应用程序依赖于那个版本的GCC和那个版本的ABI
- .Net--必须知道Class和struct的关系[转]
- 《你必须知道的.NET》
- 你必须知道的.net
- 你必须知道的javascript
- 一些你必须知道的
- 你必须知道的JQuery
- 你必须知道的JQuery
- 你必须知道的JQuery
- 你必须知道的.NET
- myeclipse下hadoop安装并运行
- 51Nod 1347 旋转字符串
- 关于单选框、下拉框、复选框的数据回显问题以及全选和全不选
- WebSocket 教程
- 蓝桥杯 算法提高 12-1三角形 (Java解题)
- 你必须知道的ABI和CPU关系
- Python高效编程的19个技巧
- angular中的ng-content
- 【python】包管理工具pip的国内源站点使用
- 数据结构实验之图论十一:AOE网上的关键路径
- DS18B20温度报警器
- PAT 乙级 1058. 选择题(20)
- 移动前端和web前端区别
- Android动画笔记