多模块编译
minifyEnabled
主工程 | 模块 | 混淆结果(主工程,模块) |
true | true | true,true |
true | false | true, true, |
false | true | false,false |
false | false | false,false |
编译主工程,模块源码依赖。编译出来的apk,只有consumerProguardFiles起作用,模块里proguardFiles不起作用。
单独生成aar的时候C:\test\prog\mylibrary>C:\test\prog\gradlew assembleRelease ,或者gradle设置环境变量。 proguardFiles起作用,consumerProguardFiles不起作用。但是consumerProguardFiles文件会打到aar包里。
生成aar的时候,要注意的问题是,有可能会丢失几个没有用到的类,极端情况下是空包,一个类也没有了。因为混淆会去掉,没有用到的类。所以在proguardFiles加入
-dontshrink 这个参数。但是还是不用这个参数,估计aar会变大。把对外开放的类名,keep一下就可以了。