实现Android项目代码混淆三步走战略:一、修改工程下的project.properties文件如下:# This file is automatically generated by Android Tools. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file must be checked in Version Control Systems. # # To customize properties used by the Ant build system edit # "ant.properties", and override values to adapt the script to your # project structure. # # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt# Project target. target=android-10 proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt其中最后一行为自行添加的 混淆脚本路径,具体脚本编写在 proguard-project.txt 脚本文件内进行。二、修改脚本文件为什么说事修改呢? 很简单因为Google已经替我们完成了大部分功能,只需按自己需要增加规则就OK,我得 proguard-project.txt 文件如下:# This is a configuration file for ProGuard. # http://proguard.sourceforge.net/index.html#manual/usage.html-dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -verbose # ignorewarnings -ignorewarnings# Optimization is turned off by default. Dex does not like code run # through the ProGuard optimize and preverify steps (and performs some # of these optimizations on its own). -dontoptimize -dontpreverify # Note that if you want to enable optimization, you cannot just # include optimization flags in your own project configuration file; # instead you will need to point to the # "proguard-android-optimize.txt" file instead of this one from your # project.properties file.-keepattributes *Annotation* -keep public class com.google.vending.licensing.ILicensingService -keep public class com.android.vending.licensing.ILicensingService# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native -keepclasseswithmembernames class * { native <methods>; }# keep setters in Views so that animations can still work. # see http://proguard.sourceforge.net/manual/examples.html#beans -keepclassmembers public class * extends android.view.View { void set*(***); *** get*(); }# We want to keep methods in Activity that could be used in the XML attribute onClick -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); }# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); }-keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; }-keepclassmembers class **.R$* { public static <fields>; }# The support library contains references to newer platform versions. # Don"t warn about those in case this app is linking against an older # platform version. We know about them, and they are safe. -dontwarn android.support.**# -keep class android.support.v4.**{*;} -keep class org.phprpc.**{*;} -keep class com.google.gson.**{*;}-keep class com.baidu.**{*;} -keep class com.novell.sasl.client.**{*;}-keep class org.**{*;} -keep class com.hp.hpl.**{*;}-keep class net.sourceforge.**{*;}-keep class pinyindb.**{*;} -keep class demo.**{*;}相关阅读:基于微信api Android程序签名+代码混淆 http://www.linuxidc.com/Linux/2013-04/83332.htmAndroid 混淆打包 http://www.linuxidc.com/Linux/2013-01/78738.htmAndroid混淆代码bug跟踪 http://www.linuxidc.com/Linux/2012-07/66263.htmAndroid项目加入混淆器打包失败 http://www.linuxidc.com/Linux/2012-05/60018.htmAndroid代码混淆,如何过滤掉反射的R文件及第三方包? http://www.linuxidc.com/Linux/2012-04/58953.htm