转载请标明出处:http://blog.csdn.net/xx326664162/article/details/49250203
文章出自:[薛瑄的博客](http://blog.csdn.net/xx326664162)
你也可以查看我的其他同类文章,也会让你有一定的收货!
参考:
http://blog.csdn.net/zuiwuyuan/article/details/48552701
ProGuard
这个ProGuard工具可以通过删除未使用的代码和重命名类、字段和方法与语义模糊的名字来 收缩、优化和混淆你的代码。这个结果导致你生成一个更小型号的 .apk 文件,这样会使别人反向逆推工程更加困难。 因为 ProGuard 让你的应用程序的还原工程更加困难。这个对你而言是十分有用的,当你利用这个应用特点来帮助当你的程序度过一些安全和敏感的检测当你正对你的程序授权时。
ProGuard是集成到Android 开发系统中的,因此你不必手动调用这个应用。ProGuard 只有在你编译运行程序的时候才运作,因此当你在调试模式下编译你的程序的时候,你不需要处理混淆代码。是否有 ProGuard 运行是可以完全由你有选择的,但强烈推荐你去运行它。
混淆
现在网上关于反编译的博客很多了,我在此就不多做介绍了,放上个传送门传送门
那么我们已经知道了反编译是如此的简单,我们总不希望自己辛苦写的代码被如此轻易的反编译走,而且这样有可能对公司的服务器留下被攻击的隐患,那么我们就可以使用混淆来保护我们所写的代码
Android studio混淆和Eclipse差不多是大同小异的。
名称 | 作用 |
---|---|
minifyEnabled | 是否开启混淆 |
shrinkResources | 去除无用的resource文件 |
proguardFiles getDefaultProguardFile | 加载混淆配置文件 |
如果按照默认的混淆规则很有可能你的程序会报错,因为混淆了一些方法所以程序运行期间无法找到该方法。所以我们应该自定义一些规则在默认的的混淆文件proguard-project.txt或proguard-rules.pro中,
-optimizationpasses 5