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

android 代码混淆

2013-06-07 15:39 211 查看


学习笔记之代码混淆

作者:皇马船长更新于 05月31日 09:30访问(168)评论(5


1、为什么做代码混淆?

apk文件可以通过反编译得到应用的源码,如果我们不对代码做混淆,那么别人很轻松就能拿到我们辛辛苦苦做出的成果,所以才有了代码混淆,这样可以把类名、方法名、包名改成随意字母命名的如aa 、bb等,这样能提高我们代码的安全性


2、代码混淆怎么做 ?

其实google已经为我们做了很多工作,我们要做的就很简单了。步骤如下:

2.1 新建应用,我的这个是2.2的,由于手头有混淆需要的两个文件,所以只需把default.properties、proguard.cfg拷到项目的根目录下。然后在工程描述文件default.properties 文件 和 project.properties中添加一句代码:**proguard.config=proguard.cfg** 加到最后。

以下是截图









这样我们再生产apk文件后,反编译出的代码就是混淆过的了,这样的代码看起来是很头疼的,我们的代码也就安全了。

混淆后效果:




3、代码混淆也是有一定的原则

如果一些提供给外部的类、方法、变量等名字被改变了,那么程序本身的功能就无法正常实现,Activity、Application、Service、BroadcastReceiver、ContentProvider、BackupAgentHelper、Preference和ILicensingService的子类。因为这些子类,都是可能被外部调用的,所以不会改变;

另外,它还保留了含有native方法的类、构造函数从xml构造的类(一般为View的子类)、枚举类型中的values和valueOf静态方法、继承Parcelable的跨进程数据类。

在实际的一个工程项目中,可能Google自动生成的配置不能胜任我们的混淆工作。所以,我们往往需要自己编写一些ProGuard配置。这方面的资料在官网的Manual -> Usage里有详细说明。大家可以研究一下。


疑问: 网上很多人说Android2.3后的工程下都会自动生成default.properties、proguard.cfg 这两个文件, 但是我的怎么没有啊?每次都得手动添加

声明:eoe文章著作权属于作者,受法律保护,转载时请务必以超链接形式附带如下信息

原文作者: 皇马船长

原文地址: http://my.eoe.cn/cainiao1/archive/4319.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: