【笔记】Android Studio Gradle配置dex分包

原因

当app的方法数超过65535时生成的apk将无法安装,此时需要进行分包,在打包时将应用的代码分成多个dex,使住dex的方法数不超过系统限制。应用在启动或运行过程中,首先是主dex启动运行,再加载从dex。


分包

Gradle是android studio的构建工具。随着Gradle的升级完善,功能越来越强大,但改变也随之而来。具体不知道是从哪个Gradle版本开始的原先使用的在afterEvaluate区域配置分包的方式没法使用了,更加简单化的dexOptions分包配置出现了。

某Gradle版本之前

afterEvaluate {
    tasks.matching {
        it.name.startsWith('dex')
    }.each { dx ->
        def listFile = projectDir+'/maindexlist.txt'
        if (dx.additionalParameters == null) {
            dx.additionalParameters = []
        } else {
            dx.additionalParameters += '--multi-dex'
            dx.additionalParameters += '--main-dex-list='+listFile
            dx.additionalParameters += '--minimal-main-dex'
        }
    }
}

某Gradle版本之后

dexOptions {//dex配置
        javaMaxHeapSize "4g"
        preDexLibraries = false
        additionalParameters = [//dex参数详见 dx --help
                                '--multi-dex',//多分包
                                '--set-max-idx-number=60000',//每个包内方法数上限
                                '--main-dex-list='+projectDir+'/maindexlist.txt',//打包进主classes.dex的文件列表
                                '--minimal-main-dex'//使上一句生效
                                ]
    }


其中打包进主classes.dex的文件列表放在build.gradle同目录下的maindexlist.txt中

com/sjl/multidexdemo/MainActivity.class


Demo下载

参考

http://www.jianshu.com/p/b38124d332be

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值