//下面的方法适用于4.0以下的版本
在properties最后添加
看看工程里面有木有proguard.cfg文件
下面是proguard.cfg文件的内容
-optimizationpasses 5
-dontusemixedcaseclassnam
-dontskipnonpubliclibrary
-dontpreverify
-verbose
-optimizations
!code/simplification/arithmetic,!field/*,!class/merging/*
-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
com.android.vending.licensing.ILicensingService
-keepclasseswithmembernam
}
-keepclasseswithmembers class * {
}
-keepclasseswithmembers class * {
}
-keepclassmembers class * extends android.app.Activity {
}
-keepclassmembers enum * {
}
-keep class * implements android.os.Parcelable {
}
这里需要注意的是,如果你用Eclipse里的Run或Build Project/Build All来生成Apk,是不会混淆代码的!在Eclipse的Package Explorer里选中工程的根结点,在右键菜单里找到Android Tools,如下图所示,其下有两个子菜单项:“Export Signed Application Package...”和“Export Unsigned Application Package...”,一个是带RSA数字签名,一个是不带数字签名,根据需要选一个,然后按照向导操作即可,最终生成的Apk就是混淆过代码的了!
//下面是适用于4.0以上的版本
Android 4.0要用ProGuard比2.3更简单:在Eclipse中打开工程目录下的project.properties文件,该文件中有以下两行:
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
根据这段说明,只要将proguard.config前面的#去掉,就可以利用ProGuard来混淆代码了!当然,默认的设置是不带优化功能的,可以用以下设置来加上代码优化功能:
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
这里需要注意的是,如果你用Eclipse里的Run或Build Project/Build All来生成Apk,是不会混淆代码的!在Eclipse的Package Explorer里选中工程的根结点,在右键菜单里找到Android Tools,如下图所示,其下有两个子菜单项:“Export Signed Application Package...”和“Export Unsigned Application Package...”,一个是带RSA数字签名,一个是不带数字签名,根据需要选一个,然后按照向导操作即可,最终生成的Apk就是混淆过代码的了!
唉,不带数字签名的安装不上,坑爹啊