1.简介

Android代码混淆默认用的是Proguardhttp://proguard.sourceforge.net/)工具。在Android 2.3.3以后创建的工程将默认产生proguard.cfg文件,这个文件是proguard混淆的配置文件,然后再在default.properties中加上proguard.config=proguard.cfg即可,如果你的工程里没有生成proguard.cfg文件可以拷贝下面代码,然后保存为proguard.cfg文件即可:

-optimizationpasses5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontpreverify-ignorewarnings-verbose-optimizations!code/simplification/arithmetic,!field/*,!class/merging/*-keeppublicclass*extendsandroid.app.Activity-keeppublicclass*extendsandroid.app.Application-keeppublicclass*extendsandroid.app.Service-keeppublicclass*extendsandroid.content.BroadcastReceiver-keeppublicclass*extendsandroid.content.ContentProvider-keeppublicclass*extendsandroid.app.backup.BackupAgentHelper-keeppublicclass*extendsandroid.preference.Preference-keeppublicclasscom.android.vending.licensing.ILicensingService-keepclasseswithmembernamesclass*{native<methods>;}-keepclasseswithmembernamesclass*{public<init>(android.content.Context,android.util.AttributeSet);}-keepclasseswithmembernamesclass*{public<init>(android.content.Context,android.util.AttributeSet,int);}-keepclassmembersenum*{publicstatic**[]values();publicstatic**valueOf(java.lang.String);}-keepclass*implementsandroid.os.Parcelable{publicstaticfinalandroid.os.Parcelable$Creator*;}

2.步骤

1.生成proguard.cfg文件;

2.在default.properties中加上proguard.config=proguard.cfg

3.导出打包APK


3.常见问题

1.注意保留一些如Activity,Service 等系统类,防止调用时找不到类;

2.如果调用的第三方库已经混淆了,可能出错所以就要设置不要混淆这些库:

-dontwarn-libraryjarslibs/Baidu_Mobstat_Android_SDK.jar-libraryjarslibs/baidumapapi.jar-dontskipnonpubliclibraryclassmembers-dontskipnonpubliclibraryclasses-dontwarnnet.poemcode.**


3.记得要导出打包APK才能混淆

4.反编译验证

工具如下http://download.csdn.net/detail/yale8848/8063631

更多相关文章

  1. android系统中运行jar文件
  2. Android(安卓)Android.mk 文件一点感悟
  3. Android:使用SAX或者DOM或者pull操作XML文件
  4. Android(安卓)字体自适应设置
  5. Android中使用【microlog4】进行日志存储
  6. 跟着第二行代码回顾Android--持久化技术
  7. MediaRecorder流程分析
  8. android:AssetManager
  9. NPM 和webpack 的基础使用

随机推荐

  1. 理论实践:循序渐进理解AWR细致入微分析性
  2. 【故障处理】 DBCA建库报错CRS-2566
  3. 【JS基础入门】JavaScript基础之事件的操
  4. 如何让百度收录我们自己的网站呢?
  5. vscode编辑器和插件安装及markdown语法熟
  6. SwiftUI - 百行代码变十行,Swift再创辉煌!
  7. Kubernetes 运维学习笔记
  8. Linux下smokeping网络监控环境部署记录
  9. Gitblit版本服务器环境部署记录
  10. Stimulsoft Reports如何进行数据连接?