天天看點

有關android安全性的問題--代碼混淆 

轉自:http://www.cnblogs.com/dream-sky/archive/2012/11/15/2771648.html

在project.properties裡加上   proguard.config=proguard.cfg

proguard.cfg 配置如下:

-optimizationpasses 5

-dontusemixedcaseclassnames

-dontskipnonpubliclibraryclasses

-dontpreverify

-verbose

-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

#忽略警告 也可以用-ignorewarnings

-dontwarn

#聲明第三方jar包,不用管第三方jar包中的.so檔案(如果有)

-libraryjars libs/tencent_openapi.jar

-libraryjars libs/httpmime-4.1.3.jar

-libraryjars libs/weibo.sdk.android.sso.jar

-libraryjars libs/android-support-v4.jar

-libraryjars  libs/AHibernate-1.1.jar

-libraryjars  libs/core.jar

-libraryjars  libs/gson-1.6.jar

-libraryjars  libs/android-support-v4.jar

-libraryjars  libs/baidumapapi_v2_1_2.jar

-libraryjars  libs/locSDK_3.1.jar

-libraryjars  libs/pinyin4j-2.5.0.jar

-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);

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 *;

#不混淆第三方jar包中的類

-keep class com.baidu.mapapi.** {*;}

-keep class com.tencent.tauth.** {*;}

-keep class org.apache.http.entity.mime.** {*;}

-keep class android.support.v4.** {*;}

-keep class android.net.http.** {*;}

-keep class com.weibo.sdk.android.** {*;}

-keep class com.sina.sso.** {*;}

-keep interface net.sourceforge.pinyin4j.** { *; }

-keep interface vi.com.gdi.bgl.android.** { *; }

-keep interface cn.sharesdk.** { *; }

說明一下,第三方jar包中如果有.so檔案,不用去理會,引入的第三方jar檔案不要混淆,否則可能會報異常

項目涉及到的jar包:

有關android安全性的問題--代碼混淆 

我自己項目中的混淆

繼續閱讀