美文网首页
Android 设备支持的7种CPU框架(ABIs)

Android 设备支持的7种CPU框架(ABIs)

作者: 瑟闻风倾 | 来源:发表于2020-12-24 10:24 被阅读0次

    名词解释

    • NDK:Native Development Kit
    • JNI:Java Native Interface
    • ABI: Application Binary Interface 应用二进制接口

    1. ABI

    应用程序二进制接口(application binary interface,ABI) 描述了应用程序操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的底层接口。ABI不同于应用程序接口(API),API定义了源代码和库之间的接口,因此同样的代码可以在支持这个API的任何系统中编译,然而ABI允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行。

    2. Android 设备支持7种CPU框架类型

    Android 设备的CPU类型通常称为”ABIs”。
    ARM是一种指令集,X86也是一种指令集。ARM是一种精简指令集(RISC),知识产权属于ARM公司;X86是一种复杂指令集(CISC),知识产权属于Intel公司。

    CPU架构 位数 描述 性能
    armeabi ARM v5 第5代、第6代的ARM处理器(早期的手机用的比较多) 使用软件浮点运算,兼容所有ARM设备,通用性强,速度慢(缺少对浮点数计算的硬件支持,在需要大量计算时有性能瓶颈 )
    armeabiv-v7a 32位ARM设备 第7代及以上的 ARM 处理器(2011年15月以后的生产的大部分Android设备都使用它) 使用硬件浮点运算,具有高级扩展功能
    arm64-v8a 64位ARM设备 第8代、64位ARM处理器(很少设备使用) 包含AArch32、AArch64两个执行状态对应32、64bit
    x86 intel 32位 平板、模拟器用得比较多
    x86_64 intel 64位 一般用于平板
    mips 基本没见过(极少用于手机可以忽略 )
    mips64 64位 基本没见过(极少用于手机可以忽略 )

    对Android中arm64-v8a、armeabi-v7a、armeabi、x86认识
    Android 设备的CPU类型(通常称为”ABIs”)获取当前手机的ARM处理器类型

    目前android支持如下7中CPU架构
    Android 集成Chrome 浏览器内核 Crosswalk
    android的cpu架构
    armeabi、armeabi-v7a 和arm64-v8a区别
    armeabi-v7a armeabi arm64-v8a 参数的含义解释

    如何查看Android手机CPU类型查看Android手机CPU类型是armeabi,armeabi-v7a,还是arm64-v8a查看Android手机CPU类型

    x86 架构的手机都会包含由 Intel 提供的称为 Houdini 的指令集动态转码工具,实现 对 arm .so 的兼容,再考虑 x86 只有1% 以下的市场占有率,x86 相关的两个 .so 也是可以忽略的

    3. Android studio添加第三方库和so

    4. Android如何加载So库

    • 程序对当前手机cpu架构(比如 armeabi-v7a)做了适配,那手机跑程序时候就直接在这个目录下找对应的so库,如果找不到就直接报错
    • 如果只对armeabi的手机cpu做适配,那么支持armeabi的手机都会去armeabi目录下找对应的so库

    5. 查看Android设备的ABI

            String CPU_ABI = android.os.Build.CPU_ABI;//查看Android设备的ABI
            Log.d("ABI", "CPU_ABI = " + CPU_ABI);
    //        Toast.makeText(this,CPU_ABI,Toast.LENGTH_SHORT).show();
    

    ndk-关于abiFilters的使用
    ndk在在代码中判断当前运行的ABI版本—C语言
    NDK-abi-so

    • 查看手机支持的cpu架构和app适配的cpu架构
      下载App:Native Libs Monitor(豌豆荚上可以下载,现在已找不到)
    • 设置适配cpu架构:在app>build.gradle文件中android->defaultConfig 里设置支持 ndk
    ndk { 
      abiFilters 'armeabi','armeabi-v7a', 'arm64-v8a' // 'x86', 'x86_64' 
    }
    

    6. 不同用户手机处理器下载不同版本

    相关文章

      网友评论

          本文标题:Android 设备支持的7种CPU框架(ABIs)

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