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

Proguard 在Android使用

2015-05-15 09:45 260 查看
1.proguard简介
proguard 是一种为Java编译好的class文件进行混淆处理以防止其被反编译。

在Android 2.3以前,混淆Android代码只能手动添加proguard来实现代码混淆,非常不方便。而2.3以后,Google已经将这个工具加入到了SDK的工具集里。具体路径:SDK\tools\proguard。当创建一个新的Android工程时,在工程目录的根路径下,会出现一个proguard的配置文件proguard.cfg。不过新版本ADT生成的配置文件已经更名为proguard-project.txt,也就是说,我们可以通过简单的文本方式配置,就可以在我们的elipse工程中直接使用ProGuard混淆Android工程。

Android 代码混淆步骤:

1、首先,在工程描述文件 project.properties 中启用ProGuard(将前面的#去掉)。如下所示:
proguard.config=proguard-project.txt
2、根据自己项目需要对 proguard-project.txt 文件配置,当然完全可以用 Google 默认配置。
3、通过 Export 导出APK文件即为混淆后的文件。

2. proguadr文件编写规制

-dontwarn com.xx.bbb.**
-keep class com.xx.bbb.** { *;}

-dontnote java.**

-keep 字段代表的是其后面的类不被混淆
-downwarn 是代表不需要提示 警告
-downnote 是代表不需要提示 note

3. ProGuard 代码混淆后导出警告:can’t
find referenced class
这个时候就需要 -keep、-downwarn、-downnote字段了

4.Android代码当中一般不需要混淆的类
4.1对于第三方jar包,有可能该jar包已经混淆过了,所以就不需要混淆了
例如tencent 微博分享



4.2对于Android应用当中涉及到的Serialize 相关的class 也是不能被混淆的

4.3 还有一些特殊的类,这个Android默认的proguard已经填写好了

4.4 如果混淆打包还是报错的话,只需要保持com.xx.bbb.**这个包里面的所有类和所有方法而不混淆,接着还叫ProGuard不要警告找不到com.xx.bbb.**这个包里面的类的相关引用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Proguard android