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

访客 173 0


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




标签: 文件 项目 对象 位置

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~