gradle的abi

作者: zwebbin | 来源:发表于2018-07-31 10:52 被阅读97次
    gradle 文件中对abi的配置

    官方文档对abi的介绍

    Android手机支持的abi:

    mips, mips64, X86, X86–64, arm64-v8a, armeabi, armeabi-v7a
    
    

    各个abi的含义


    android abi

    通过配置支持的abi,能够让apk文件减到合适的体积,减少应用占用手机的空间。

    一般来说,有两种方式来配置abi,相当于两种思路,一个是通过设置ndk的abiFilters字段,使apk能够兼容多种abi,但是这样会使得apk体积增大,所以,这种方式只适合配置主流的abi,使apk能在市场上的大部分手机成功安装使用。
    配置方式如下:

    android {
        ... // 其它配置
        defaultConfig {
           ...  // 默认配置
           ndk {
               //选择要添加的对应cpu类型的.so库。
                abiFilters 'armeabi', 'armeabi-v7a'
                // 还可以添加
                // 'arm64-v8a', 64 bit ARM architecture,it can use v7 version
                //              unless you are too much concerned about performance
                // mips,mips64, There are no devices with MIPS
                //  x86_64, No android devices and anyway it can use X86 version
                //  armeabi, very old architecture. Unsupported after Android 4.4
                // 'x86', Intel based devices
            }
        }
        ... // 其它配置
    }
    

    另一种方式是,splits的abi属性下面,定义好支持的abi,然后打包的时候,会根据不同的架构,打不同的包,每个包支持一种架构,这样能让不同架构的设备上安装最合适的apk,但是因为一个apk仅支持一种架构,所以互不兼容。
    配置如下:

    android {
        ... // 其它配置
        splits {
            abi {
                reset()
                enable true // 设为true,才能在打包时根据架构生成不同的apk文件
                universalApk false  // If true, also generate a universal APK
                include "armeabi-v7a", "x86" // 设置所有要支持的abi类型
            }
        }
    }
    

    参考链接:
    https://android.jlelse.eu/controlling-apk-size-when-using-native-libraries-45c6c0e5b70a

    相关文章

      网友评论

        本文标题:gradle的abi

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