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.**这个包里面的类的相关引用。
在文件中加入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.**这个包里面的类的相关引用。
相关文章推荐
- android系统新添加字体及java代码中引用
- Android中获得手机屏幕大小实现代码
- 最佳实践之Android代码规范
- android数据存储读取2:文件存储(对比IOS)
- android 页面跳转 action
- Android之官方导航栏之Toolbar(Toolbar+DrawerLayout+ViewPager+PagerSlidingTabStrip)
- IntelliJ IDEA 关联android源码
- android的编译和运行过程深入分析
- android TabHost小结
- Android系统启动过程
- 一个方便的图片加载框架——ImageViewEx
- Android实现循环平移动画示例
- Android之官方导航栏之Toolbar(Toolbar+DrawerLayout+ViewPager+PagerSlidingTabStrip)
- android中ImageView设置选中与不选中颜色
- Android数据存储
- Android 开发小仓库
- android自定义属性三部曲
- Android中创建快捷方式及删除快捷方式实现方法
- Listview异步加载图片之优化篇(有图有码有解释)
- android 外部单独编一个模块MAKEFILE示例