Android如何引入.so

Android cpu 架构有:
armeabi,armeabi-v7a,arm64-v8a,x86,x86_64等cpu架构

问题1、什么是.so文件,用来做什么?

参考帖子:Android SO文件的概念、兼容、适配和可能的错误

问题2、针对不同的cpu 架构选择不同的.so文件

如果项目只包含了 armeabi,那么在所有Android设备都可以运行;
如果项目只包含了 armeabi-v7a,除armeabi架构的设备外都可以运行;
如果项目只包含了 x86,那么armeabi架构和armeabi-v7a的Android设备是无法运行的; 如果同时包含了 armeabi, armeabi-v7a和x86,所有设备都可以运行,程序在运行的时候去加载不同平台对应的so,这是较为完美的一种解决方案,同时也会导致包变大。

问题3、项目中引入第三方SDK,出现.so找不到的问题

项目中引入2个第三方SDK(A 和 B),SDK A 中包含所有cpu架构的.so,SDK B 中包含只有 armeabi 的.so,这个时候 SDK B 会出现不可用的问题,这是什么造成的?

ANDROID动态加载 使用SO库时要注意的一些问题

发布了57 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/wmdkanh/article/details/105560560
今日推荐