What:
有些代码调试的时候,无法跳转到断点的位置。
Why:
首先,需要明确的一个问题,默认调试安装的包,是这个buildTypes的debug包。
因此,是这个环境下的配置导致。
可以看到,这里开启了混淆
minifyEnabled true
开启混淆的作用,这里就不赘述了。
How:
置为false之后,编译 之后会报这么一个错误
Removing unused resources requires unused code shrinking to be turned on. See http://d.android.com/r/tools/shrink-resources.html for more information.
即“删除未使用的资源需要打开未使用的代码缩减。” 就是说如果我们需要移除项目无用资源,就必须同时打开混淆配置。
因此,最后这么修改,解决了问题。
minifyEnabled false
zipAlignEnabled true
shrinkResources false
What2:
借此,继续了解一下截图中另外几个配置
zipAlignEnabled true
shrinkResources true
zipAlign,apk的优化工具
作用:在于提高优化后的Applications和Android系统的交互效率,提高运行速度。
具体的工作原理就不说了。
使用方法:就是在build.gradle中,如上配置为true即可。
shrinkResource
作用:在打包时会删除没有用到的资源。
需要注意的是,在设置为true之后,需要验证一下,防止一些没有直接使用的资源文件被误删。如果被误删的话,可以通过在代码中对这些资源文件进行引用,即可避免这个问题。
proguardFiles getDefaultProguardFile
作用:加载默认混淆配置文件。
默认是这样的:
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
buildConfigField
步骤:
1.在build.gradle上定义声明好常量,如:
buildConfigField "String", "WECHAT_APP_ID", "\"wx6166a0c9d4200000\""
2.代码上调用,直接这样如:
BuildConfig.WECHAT_APP_ID