1.前言
混淆现已成为开发人员必备的技能,虽然混淆并不能完全避免被破解,但是可以增加反编译的成本,从而尽可能的让别人反编译之后也徒劳无功。而且也能减少apk的体积,添加混淆之后,没有用到的资源都不会打包,特别在项目迭代久了之后,可能有很多被遗弃的资源,没有及时删除,这时apk因为无用资源而多增的体积可想而知,下面看一下效果图。
2.效果图
《1》如下图,是未混淆的截图,写的代码栩栩如生的展现在反编译者面前,感觉赤裸裸的就把代码逻辑全部展示出来了
《2》下图为混淆过的截图,要理解这个代码,就要花费一些功夫了
3、混淆实现
开发中是不是发现,开启混淆之后,即便是没有添加任何规则,项目也不会闪退,不要紧张,这是因为官方提供了一个默认的混淆规则,你可以在build.gradle开启混淆下一行中看到如下一句:
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rule