jni中arm64-v8a,armeabi-v7a,armeabi文件夹的意义和用法

本文介绍了在JNI中针对Android不同CPU架构(arm64-v8a, armeabi-v7a, armeabi)的.so文件夹的含义和应用兼容性。当设备为arm64-v8a架构时,系统会按顺序查找对应的.so文件,找不到则逐级向下兼容。armeabi-v7a支持浮点运算和高级功能,而armeabi适用于较旧的ARM CPU。为了兼顾兼容性和性能,开发者需要根据目标设备合理放置.so文件,并使用NDK的abiFilters进行过滤。" 135025832,7449817,Crow HTTP请求处理机制与Route绑定,"['c++', 'Web开发', 'HTTP处理', '路由绑定']
摘要由CSDN通过智能技术生成

jni中arm64-v8a,armeabi-v7a,armeabi文件夹的意义和用法

起因

之前并没有关注这块,直到:您的应用被拒绝,原因:xplay5sQ心里点击笑值点击拍照显示停止运行,查看发过来的日志,发现是java.lang.UnsatisfiedLinkError: dlopen failed: library “/libfacesdk.so” not found ,明明放了该so文件,为什么报错呢?

查xplay5s的cpu,发现是arm64架构的处理器,查看so文件目录,如下:

弄懂这几个文件夹到底是怎么一个顺序先。

兼容和文件读取顺序

arm64-v8a是可以向下兼容的,其下有armeabi-v7a,armeabi
armeabi-v7a向下兼容armeabi

兼容得不够智能:
对于一个cpu是arm64-v8a架构的手机,它运行app时,进入jnilibs去读取库文件时,先看有没有arm64-v8a文件夹:

如果没有该文件夹,去找armeabi-v7a文件夹,如果没有,再去找armeabi文件夹,如果连这个文件夹也没有,就抛出异常
如果有arm64-v8a文件夹,那么就去找特定名称的.so文件,注意:如果没有找到,不会再往下(arm

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值