美文网首页Android
Android so 与 Abi指令集的问题

Android so 与 Abi指令集的问题

作者: 苗校长 | 来源:发表于2019-08-07 18:31 被阅读0次

    在实际开发中,经常遇到使用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文件依然会报错

    相关文章

      网友评论

        本文标题:Android so 与 Abi指令集的问题

        本文链接:https://www.haomeiwen.com/subject/atuadctx.html