# 混淆:
> 项目发布上线的apk都要进行混淆处理,混淆有两个主要目的:
(1)优化安装包的大小, 混淆后安装包会变小
(2)修改类名,方法名,属性名为abcd...防止别人反编译查看你的代码;
> 操作步骤:
(1)在project.properties文件中进行配置,打开混淆;
(2)在proguard-project.txt文件中声明混淆规则:
所有用到返回的的地方都不能进行混淆:
比如使用gson解析的实体类不能混淆;
js调用的java方法不能进行混淆;
所有的第三方库不要进行混淆;
eventBus
(3)具体配置规则:
## 用到gson解析时,需要进行如下配置
-libraryjars libs/gson-2.2.1.jar
-dontwarn com.google.gson.**
-keep class com.google.gson.** { *; }
-keepattributes Signature
## 所有的通过gson解析的实体对象不能进行混淆
-keep class cn.itcast.androidext.bean.**
-keep class cn.itcast.androidext.bean.** { *;}
## eventbus.jar及其接收事件不进行混淆
-libraryjars libs/eventbus.jar
-dontwarn de.greenrobot.event.**
-keep class de.greenrobot.event.** { *; }
## 所有的onEvent开头的方法不进行混淆
-keepclassmembers class ** {
public void onEvent*(**);
}
## js调用的java类的方法不能混淆
-keep class cn.itcast.androidext.demo04_webview.WebViewActivity {
public *;
}
-keep class cn.itcast.androidext.demo04_webview.WebView2Activity$JsInterface {
public *;
}
## 所有的第三方包不进行混淆,友盟第三方包不进行混淆
-libraryjars libs/umeng-analytics-v5.6.1.jar # 不加可能会出现“类1 can't find referenced class 类2”这样的错
-dontwarn com.umeng.analytics.** # 不对错误提出警告
-keep class com.umeng.analytics.** { *; } # 对指定的类不混淆
## AndroidStuido 友盟多渠道打包