Android代码混淆

1.一般的混淆
sdk\tools\proguard\文件夹下有Android混淆配置文件:
proguard-android-optmize.txt
copy文件到App根目录,具体内容可以看文件,这里对一些声明进行说明:

混淆时没有将下面类的子类混淆
android.app.Activity,
android.app.Service,
android.content.BroadcastReceiver,
android.content.ContentProvider
由于manifest文件中需要配置上面的信息,所以不混淆这些类名,如果混淆了就无法找到
所以解压之后会看到你自己定义的类名

#不混淆android.content.Context参数的构造方法
-keepclassmember class *{
    public <init>(android.content.Context)
}
# 不警告Android支持库
-dontwarn android.support.**

#WebView与网页JS交互JavascriptInterface类(提供JS调用方法)
-keepclassmembers class com.xxx.interfaceClass{*;}

Baidu地图

#定位(百度地图)
-keep class com.baidu.** {*;}
-keep class vi.com.** {*;}
-dontwarn com.baidu.**

OrmLite

#如果使用了数据库框架OrmLite
-keep class com.j256.**
-keepclassmembers class com.j256.** { *; }
-keep enum com.j256.**
-keepclassmembers enum com.j256.** { *; }
-keep interface com.j256.**
-keepclassmembers interface com.j256.** { *; }

#保留数据库类和它的成员
-keep class com.xxx
-keep class com.xxxx
-keepclassmembers class com.xxx{*;}
-keepclassmembers class com.xxxx{*;}

在混淆中出现过“No fields have a DatabaseField annotation”,但参数已经声明了引用;经过尝试使用了ormlite中的“OrmLiteConfigUtil”配置类(详见 Android项目使用ORMLite数据库框架 之 使用数据库配置文件),在Raw/ormlite_config.txt文件,然后引用

public DaoHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION,R.raw.ormlite_config);
    }

Gson相关混淆

##---------------Begin: proguard configuration for Gson  ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature

# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }

# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }

##---------------End: proguard configuration for Gson  ----------

参考地址:http://stackoverflow.com/questions/8129040/proguard-missing-type-parameter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值