- 通过PackageManager安装后,在小于Android 5.0的系统中,.so文件位于app的nativeLibraryPath目录中;在大于等于Android 5.0的系统中,.so文件位于app的nativeLibraryRootDir/CPU_ARCH目录中。
七.为什么一般的项目中只看到armeabi文件夹?
=========================
因为所有的x86/x86_64/armeabi-v7a/arm64-v8a设备都支持armeabi架构的.so文件。
八.那我们是不是只放一种armeabi就够了?
=======================
事实上并不是:这不只影响到函数库的性能和兼容性。x86设备能够很好的运行ARM类型函数库,但并不保证100%不发生crash,特别是对旧设备。64位设备(arm64-v8a, x86_64, mips64)能够运行32位的函数库,但是以32位模式运行,在64位平台上运行32位版本的ART和Android组件,将丢失专为64位优化过的性能(ART,webview,media等等)。
九.如何查看我的android手机属于什么架构的?
=========================
进入命令行:
第一步:输入 adb shell 回车
第二步:cat /proc/cpuinfo 回车
下面打印出的信息里面有 Processor 如下图:
十.到底如何适配,每种适配方案区别?
==================
CPU之间的架构兼容
ARMv5 设备:只支持armeabi
ARMv7 设备:支持 armeabi 和 armeabi-v7a
ARMv8 设备:支持 armeabi-v7a、armeabi 和 arm64-v8a
X86 设备:支持 armeabi(性能有所损耗) 和 x86
x86_64 设备:支持 x86 和 x86_64
mips 设备: 支持 mips
mips_64 设备:支持 mips 和 mips_64
Android中设备加载so策略
不同CPU架构的android手机加载时会在libs下找自己对应的目录,从对应的目录下寻找需要的.so文件;如果没有对应的目录,就会去armeabi下去寻找