Android 混淆打包编译

    近来正在做混淆编译的活,为什么呢?因为这个软件太复杂了,所以要采取一些保护措施,混淆编译当时做的很艰苦抓狂

配置文件默认的四大组件的子类是不会被混淆的,因为这个混淆只是把java代码做了混淆处理,不会对里面的XML文件AndroidManifest.xml做混淆,而这里面又含有Activity,Service,Application,BroadcastReceiver,ContentProvider的子类

1、在工程项目下新建文件proguard.cfg

2、文件内容是

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*


-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class com.android.vending.licensing.ILicensingService


-keepclasseswithmembernames class * {
    native <methods>;
}


-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}


-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}


-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}


-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}


*如果有第三方类库的话,通常会这么做:

android-support-v4.jar 类库

-libraryjars   libs/android-support-v4.jar
-dontwarn android.support.v4.**
-keep class android.support.v4.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep public class * extends android.support.v4.**
-keep public class * extends android.app.Fragment


ant.jar 中文解压包。(项目里面用到了压缩文件里面带有中文文件名的问题)


-libraryjars   libs/ant.jar
-dontwarn org.apache.tools.**
-keep class org.apache.tools.** { *; }
-keep interface org.apache.tools.** { *; }
-keep public class * extends org.apache.tools.**

最后还应该在project.properties文件里面声明  proguard.config=proguard.cfg

只是做了以上的配置的话,能顺利的混淆代码从而生成安装包,但是安装包不能安装。。问题还挺多。哎


2013/4/6 23:51

现在发现不能安装的问题了,原因是Android程序发布的时候需要签名,而当时我导出apk程序的时候选择的导出无签名的apk程序,所以手机不能安装上,英语不行啊,哎


2013/5/8

项目使用了webservice。

用到了 ksoap2-android-assembly-2.4-jar-with-dependencies.jar


-ignorewarnings
-libraryjars   libs/ksoap2-android-assembly-2.4-jar-with-dependencies.jar
-dontwarn org.** 
-keep class org.** { *; }  
-keep interface org.** { *; }  
-keep public class * extends org.** 


2013/9/2

gson.jar

参考资料:http://code.google.com/p/google-gson/source/browse/trunk/examples/android-proguard-example/proguard.cfg


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值