您的位置:首页 > 移动开发 > Android开发

Android分包方案

2016-03-18 10:34 549 查看
最近加入一个新团队, 项目巨大!!!!好吧,其实也不是巨大,只是module依赖比较多, 整整12个- - ,从来没遇到过这么多的依赖, 编译速度被拖得好惨....

也是因为这样, 出现了65K 问题 . 就是整个项目,也就是整个.dex文件中的方法数超过65535个了, 承载不下了.  这个原因往往出现在 中型以至大型项目才会有.

这是个局限. 那么需要将一个.dex包拆分成两个包了.原理是这样:在拆分过程中, 编译器会将启动所需要的类放在一个包(此称main.dex), 而另外暂时不用到的类放到第二个包(此称second.dex)。

但是,这时候又有另外一个问题产生了, android应用启动只会启动一个main.dex包, 不会同时加载两个.dex包,所以需要我们在代码中手动引导加载第二个second.dex包.

原理简单粗暴介绍到这,下面直接上步骤。

1.在项目中所有需要打包的module下得build.gradle文件中添加 一句话  multiDexEnabled = true  

defaultConfig {
applicationId "com.biketo.rabbit"
minSdkVersion 15
targetSdkVersion 22
versionCode 956
versionName "0.9.5.6"
multiDexEnabled = true
}


2.在android节点下加入如下图, 来保证分包后的编译环境

dexOptions {
javaMaxHeapSize "2g"
jumboMode = true
}


3.导入multixdex support包,用来操作引打包过程(很重要,前面的配置都是为它而生).

//分包依赖库
compile 'com.android.support:multidex:1.0.0'

MultiDexApplication

4.让你的application类最终继承 MultiDexApplication 类.

结论:分包就是这么简单, 65K问题解决, 我们又能愉快的编译了.

PS:昨天4399挂了一个码农.就在我附近.

 同学们要注意身体, 愿天堂没有产品经理, 善哉善哉..
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android 分包方案