android--混淆打包

1.ProGuard工具(http://developer.android.com/tools/help/proguard.html#configuring)

android ADT主要通过ProGuard工具来提供代码的混淆。ProGuard工具通过移除你项目中未使用到的代码,以及重命名类、字段和方法来达到优化和混淆仙项目的目的。ProGuard已经被集成到android的创建中了。

2.混淆步骤

Eclipse使用adt22创建android项目,在根目录下面都会有proguard-project.txt以及project-properties这两个文件,这是Google为我们生成的用于混淆的文件,默认是不进行混淆的。打开project.properties文件将proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt这一句前面的注释去掉,并在proguard-project.txt文件中添加混淆配置。这时经过签名打包生成的apk就已经混淆过了,Eclipse调试生成的apk是不进行混淆的。

3.混淆配置介绍

-dontwarn 缺省proguard 会检查每一个引用是否正确,但是第三方库里面往往有些不会用到的类,没有正确引用。如果不配置的话,系统就会报错。

  -dontwarn com.nostra13.universalimageloader.**
  -dontwarn com.baidu.**
  -dontwarn com.baidu.location.**
  -dontwarn com.umeng.**
  -dontwarn cn.jpush.android.*
  -dontwarn com.hp.hpl.sparta.*
  -dontwarn demo.*
  -dontwarn net.sourceforge.pinyin4j.**

-keep 指定类或者类成员(field、method)不被混淆

-keep public interface com.umeng.scrshot.**
-keep public class com.umeng.socialize.* {*;}
-keep public class javax.**
-keep public class android.webkit.**

-keepclassmembers 指定类成员不被混淆

 -keepclassmembers class * implements java.io.Serializable {*;}

-libraryjars 引用被加载的jar文件,使其不被输出到apk中,优化apk的大小,通常引用第三方jar文件。

-libraryjars libs/SocialSDK_QQZone_2.jar
-libraryjars libs/baidumapapi_v3_1_0.jar
-libraryjars libs/universal-image-loader-1.9.2-SNAPSHOT-with-sources.jar
-libraryjars libs/locSDK_4.2.jar
-libraryjars libs/pinyin4j-2.5.0.jar
-libraryjars libs/android-support-v4.jar
-libraryjars libs/umeng-update-v2.4.2.jar
-libraryjars libs/umeng-analytics-v5.2.4.jar
-libraryjars libs/jpush-sdk-release1.6.4.jar
-libraryjars libs/umeng_social_sdk.jar


符号说明

?匹配任意单个字符的类名

*匹配任意类名

**匹配任意类名和它的子包中的类

4.android需要被混淆的情况

(1) 只在 AndroidManifest.xml 引用的类

(2) 通过JNI回调方式被调用的函数

(3) 运行时动态调用的函数或者成员变量(指反射)

(4) 当然,如果你不确定哪些需要手动配置,可以以默认的配置生成程序,当运行中发现ClassNotFoundException异常时,即可找到哪个类不该被混淆。

(5)一些model类通常不需要混淆,混淆后有可能出错。

更多详细内容请看:(https://stuff.mit.edu/afs/sipb/project/android/sdk/android-sdk-linux/tools/proguard/docs/index.html#manual/introduction.html)






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值