美文网首页
Android so 类型

Android so 类型

作者: 汤瓜瓜 | 来源:发表于2023-08-11 10:51 被阅读0次

    一.Android 设备的CPU类型

    armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年15月以后的生产的大部分Android设备都使用它.
    arm64-v8a: 第8代、64位ARM处理器,当前主力设备都支持稳定性更好,三星 Galaxy、vivo、oppo等高端机型都支持,主要看cpu。
    armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。
    x86: 平板、模拟器用得比较多。
    x86_64: 64位的平板
    armeabi设备只兼容armeabi,不支持硬件辅助浮点运算,支持所有的 ARM* 设备;
    armeabi-v7a设备兼容armeabi-v7a、armeabi;
    arm64-v8a设备兼容arm64-v8a、armeabi-v7a、armeabi;
    x86设备兼容x86、armeabi;
    x86_64设备兼容x86_64、x86、armeabi;
    mips64设备兼容mips64、mips;
    mips只兼容mips;

    二.Android设备如何加载.so文件
    以arm64-v8a设备为例,该Android设备优先寻找libs目录下的arm64-v8a文件夹。如果有文件夹,但是没有so库,则会报错。如果没有arm64-v8a文件夹,则会去找armeabi-v7a文件夹。如果找不到armeabi-v7a文件夹,则寻找armeabi文件夹,兼容运行该文件夹下的so。

    三.实际操作
    由上兼容性可以看到不同设备基本都是可以兼容armeabi的so库,只是效率,性能上有问题。

    反编译微信,里面只有armeabi这个文件夹,应该是在这个目录下放置其他架构的SO文件,再通过代码实现选择加载哪一个架构的SO文件。

    使用armeabi的手机已经很少了,几乎忽略不计了。

    为了减小 apk 体积,只保留 armeabi 和 armeabi-v7a 两个文件夹,并保证这两个文件夹中 .so 数量一致

    对只提供 armeabi 版本的第三方 .so,原样复制一份到 armeabi-v7a 文件夹

    相关文章

      网友评论

          本文标题:Android so 类型

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