混淆打包是针对Android应用程序的一项重要技术。

1. 在项目的 project.properties 文件中添加 proguard.config=proguard.cfg ,这样eclipse会根据此配置在工程目录中生成 p。

然而,有时候可能无法自动生成proguard.cfg文件。这种情况下,您需要手动在项目底下添加proguard.cfg文件。

请删除以下参考proguard.cfg文件中的注释。

   

-optimizationpasses 5   //设置混淆的压缩比率 0 ~ 7
-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses  //如果应用程序引入的有jar包,并且想混淆jar包里面的class
-dontpreverify-verbose               //混淆后生产映射文件 map 类名->转化后类名的映射
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*    //混淆采用的算法.
-keep public class * extends android.app.Activity                  //所有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
//以下是忽略一些第三方的jar 不进行混淆
-dontwarn com.sina.**
-keep class com.sina.** { *;}
-dontwarn com.handmark.**
-keep class com.handmark.** { *;}
-dontwarn com.viewpagerindicator.**
-keep class com.viewpagerindicator.** { *;}
-dontwarn cn.jpush.**
-keep class cn.jpush.** { *; }
//以下是保留特定属性和类
- keepattributes Signature
- keepclassmembers enum* {
//枚举类不能去 混 滅.
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
//aidl文件不能去混淆.
public static final android.os.Parcelable$Creator *;
}
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.examples.android.model.** { *; }
-dontwarn com.ant.**
-keep class com.ant.** { *; }
-dontwarn com.nineoldandroids.**
-keep class com.nineoldandroids.** { *; }
-dontwarn m.framework.**
-keep class m.framework.** { *; }
-dontwarn org.apache.http.entity.mime.**
-keep class org.apache.http.entity 

如果已经安装了Java,您可以直接找到它的安装目录:C:\Program Files (x86)\Java\jdk1.6.0_43。

如果您没有找到该文件,请按照以下步骤操作:打开命令行,进入目录C:\Program Files (x86)\Java\jdk1.6.0_43\bin>,然后输入以下命令:keytool -genkey -alias android.keystore -keyalg RSA -validity 100000 -keystore android.keystore

参数意义:-validity 表示证书的有效期,为100000天。空格和退格键都被视为密码。

执行命令后,将在 C:\Program Files (x86)\Java\jdk1.6.0_43 目录下生成一个名为 android.keystore 的文件。

3.接下来,eclipse开始执行。

点击“文件” -> “导出” -> “导出Android应用程序” -> 选择项目 -> 使用现有密钥库,并输入密码 -> 选择目标APK文件。

就可以得到打包的文件

通过混淆,文件中的类名可以变为a、b、c等。

4. 使用一些字符替换a、b、c,以实现自定义的混淆效果。

将以下内容添加到混淆文件 proguard.cfg 中

将以下代码放在项目的根目录和proguard.cfg文件一起:

-obfuscationdictionary dictionary.txt
-classobfuscationdictionary dictionary.txt
-packageobfuscationdictionary dictionary.txt

同时,以下是dictionary.txt的内容。

请点击以下链接下载:http://download.csdn.net/detail/shuang__zi/9468050

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注