android混淆详解(Androidapk混淆的使用)
android混淆详解(Androidapk混淆的使用)-libraryjars libs/armeabi/liblocSDK4.so -libraryjars libs/armeabi/libBaiduMapSDK_v2_3_1.so把注释“#”去掉,则混淆器被打开,在签名打包过程中就会被使用。 最重要的就是在proguard-project.txt添加混淆的申明了:a、要 把你用到的jar包都申明进来,例如: -libraryjars libs/apns_1.0.6.jar
今天简单介绍一下Android APP混淆的使用,介绍这样类似的文章有很多,混淆使用过程并不复杂,关键在配置文件的配置使用,有些特有关键词需要在使用过程中去深入研究,配置文件今天先不介绍,今天紧说明介绍一下混淆器使用过程。
eclipse集成了proguard混淆器,在新建android 项目时,项目建成后自带两个混淆器使用的文件(见下图),一个proguard-project.txt,一个project.properties。
混淆器使用文件打开文件project.properties,查看文件内容,找到以下代码:
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
混淆器打开
把注释“#”去掉,则混淆器被打开,在签名打包过程中就会被使用。
最重要的就是在proguard-project.txt添加混淆的申明了:
a、要 把你用到的jar包都申明进来,例如:
-libraryjars libs/apns_1.0.6.jar
-libraryjars libs/armeabi/libBaiduMapSDK_v2_3_1.so
-libraryjars libs/armeabi/liblocSDK4.so
-libraryjars libs/baidumapapi_v2_3_1.jar
-libraryjars libs/core.jar
-libraryjars libs/gesture-imageview.jar
-libraryjars libs/gson-2.0.jar
b、 要将你不需要混淆的部分申明进来,因为有些类经过混淆会导致程序编译不通过,如下:
-keep public class * extends android.app.Fragment
-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 * extends android.support.v4.**
-keep public class com.android.vending.licensing.ILicensingService
--以上都是API里边的类,最好都要避免混淆
c、有些很特殊的,例如百度地图,你需要添加以下申明:
-keep class com.baidu.** { *; }
-keep class vi.com.gdi.bgl.android.**{*;}
d、还有model,一般model要避免混淆(model无关紧要,不混淆也没多大关系)如:
-keep class com.pingan.model.** { *; }
以上工作完成之后就可以尝试用eclipse进行签名打包,签名过程前面介绍过,打包之后在模拟机上测试是不能查看控制台输出信息的需要使用DDMS,前面也介绍过,大家有需要可以参考一下。
今天就分享这一个知识点,祝大家好运!
昨天:Android APP签名打包后用什么工具查看输出信息?
前天:Android APP签名打包过程实战手把手