android开发之——混淆编译
众所周知,android的apk文件是非常容易被反编译的,这样对于开发者来说,辛辛苦苦开发应用被破解是一件很令人懊恼的事情,谷歌也认识到了这一点,所以从2.3之后就为开发者提供了一个代码混淆工具proguard,新版的adt创建的工程默认都会有多两个代码混淆文件。
proguard.cfg就是传说中的混淆脚本了,具体内容如下:
 -optimizationpasses 5
 -dontusemixedcaseclassnames
 -dontskipnonpubliclibraryclasses
 -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
 -keepclasseswithmembernames class * {
     native <methods>;
 }
 -keepclasseswithmembers class * {
     public <init>(android.content.Context, android.util.AttributeSet);
 }
 -keepclasseswithmembers class * {
     public <init>(android.content.Context, android.util.AttributeSet, int);
 }
 -keepclassmembers class * extends android.app.Activity {
    public void *(android.view.View);
 }
 -keepclassmembers enum * {
     public static **[] values();
     public static ** valueOf(java.lang.String);
 }
 -keep class * implements android.os.Parcelable {
   public static final android.os.Parcelable$Creator *;
 }
如果你的项目引入了谷歌的额外支持包support(例如 android-support-v4.jar),你可以在脚本添加一句
-dontwarn android.support.**
如果你的项目有第三方支持包,那么可以参照如下格式添加到上边的脚本中:
-libraryjars libs/base64coder.jar
好了,配置好以上文件脚本就算完工了,剩下的工作就是要脚本生效,默认混淆是不开启的,需要在project.properties文件中添加一句 proguard.config=proguard.cfg 即可生效;
文章来源: panda1234lee.blog.csdn.net,作者:panda1234lee,版权归原作者所有,如需转载,请联系作者。
原文链接:panda1234lee.blog.csdn.net/article/details/9042353
- 点赞
- 收藏
- 关注作者
 
            
 
           
评论(0)