android so abi适配,Android so 与 Abi指令集的问题

在实际开发中,经常遇到使用jni库时找不到so文件的问题,经过实际的摸索,我总结了一下的规律,不知道是否正确,如果理解错了,还请看到的大神指正一下.

指令集的详细问题就不多罗嗦了,我也不是很清楚,Android 开发者主要遇到的指令平台有

arm 平台的有

现在的主流soc一般都是64位的,所以一般都是arm64-v8a的指令集

新的指令集的soc 一般兼容老的指令集

- armeabi //很早的arm 手机

- armeabi-v7a // 现在还活着的32 位的arm手机大部分是这个

- arm64-v8a // 64位的arm手机

** x86 平台有""

32 位的x86 cpu 对应 x86, 64位的x86 cpu 对应 x86_64,同样新cpu兼容老的指令集

- x86

- x86_64

在实际测试中,拿 arm平台距离,假设手机soc 的指令集是arm64-v8a,那么应用将优先从 arm64-v8a 中查找so文件,没有则从armeabi-v7a中查找,依然没有则从armeabi 中查找,还没有报找不到so的异常

但在实际项目中,我们有可能引入多方的sdk,这些sdk提供的so文件有的三种arm指令集都有,有的只有arm-v7a,这时候如果我们在abiFilters 中不过滤掉 arm64-v8a的话,这时候就会出现arm-v8a里的so文件不全的情况,但是因为arm64-v8a 下有so文件,此时系统便不再去其他文件夹下查找了,所以此时及时armeabi-v7a 下有so文件依然会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值