版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
lib和libs区别:
- lib下的被被reference,不打包到apk里
- libs下的被include,会打包到apk里
以'armeabi-v7a' , 'armeabi', 'arm64-v8a', 'x86', 'x86_64', 'mips', 'mips64'命名的文件.
Android系统CPU架构对应一个ABI(应用程序二进制接口 ),只有设备支持的CPU架构对应的.so文件才会被安装
- mips / mips64: MIPS架构,mips是32位,mips64是64位,现在很少很少用户使用了
- x86 / x86_64: x86 架构的手机都会包含由 Intel 提供的称为 Houdini 的指令集动态转码工具,实现 对 arm .so 的兼容。x86 是32位,x86_6464位(x86设备支持armeabi-v7a、armeabi)
- armeabi:ARM v5 这是相当老旧的一个版本,缺少对浮点数计算的硬件支持,在需要大量计算时有性能瓶颈
- armeabi-v7a: ARM v7 目前主流版本
- arm64-v8a: 64位支持
so文件存放可以按照下面两条来:
- 为了减小 apk 体积,只保留 armeabi 和 armeabi-v7a 两个文件夹,并保证这两个文件夹中 .so 数量一致
- 对只提供 armeabi 版本的第三方 .so,原样复制一份到 armeabi-v7a 文件夹