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

Android代码混淆

2015-06-09 11:56 489 查看
在工程下找到project.properties文件

在文件中加入proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

也可以去${sdk.dir}/tools/proguard/ 下复制proguard-android.txt文件到本地工程中

然后设置成proguard.config=proguard-android.txt

在proguard-project.txt添加混淆的申明:

1. 把所有你的jar包都申明进来:

 -libraryjars libs/apns_1.0.6.jar

2. 将你不需要混淆的部分申明进来,因为有些类经过混淆会导致程序编译不通过

-keep public class * extends android.app.Fragment  

-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 * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class * extends android.support.v4.**
-keep public class com.android.vending.licensing.ILicensingService

--以上都是API里边的类,最好都要避免混淆

有些很特殊的,例如百度地图,你需要添加以下申明:

-keep class com.baidu.** { *; } 
-keep class vi.com.gdi.bgl.android.**{*;}

一般model最好避免混淆(model无关紧要,不混淆也没多大关系)

-dontshrink    不压缩输入的类文件 

-dontoptimize    不优化输入的类文件 

-dontwarn com.motorola.**

-keep class com.motorola.** { *;}

说明:-dontwarn和-keep结合参数使用来保持第三方库中的类而不乱,-keep
class com.motorola.** { *;}意思是保持com.motorola.**这个包里面的所有类和所有方法而不混淆

-dontwarn com.motorola.**意思是ProGuard不要警告找不到com.motorola.**这个包里面的类的相关引用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: