简书链接:android混淆资源引发的血案以及学习感受资源混淆
文章字数:492,阅读全文大约需要1分钟
以前没感受过android的混淆资源,结果给客户整sdk的时候遇到一个怪事,图片明明存在,为什么图片大小变成了空,宽度尺寸变成1了呢?
我还以为是会移除图标的,这也是因为我只听说过没感受过所以我和客户因为这个事情折腾了许久,虽然我意料到是有可能是混淆资源开启导致的,但是客户否认,我也没多说自己也没验证。.
https://developer.android.com/studio/build/shrink-code#shrink-resources

语法

1
2
开启条件
1、build.gradle修改
 shrinkResources true
        minifyEnabled true
1
2
3
4
5
6
7
8
9
10
11
2、必须都开启,而且只支持主模块。

## 保持不被混淆

``` tools:keep=" 内容规则”```
## 保持必须混淆哪怕被引用
``` tools:discard="规则"```
###

```qssq_keep.xml```
内容为


1
2
3

### 强制剔除xml
remove.xml内容

1
2
3
xml被移除后的效果 空xml
## 压缩效果
#### xml被压缩后效果
强制解析xml会得到的错误

```: android.view.InflateException: Binary XML file line #1: Binary XML file line #1: Error inflating class x```


#### 图片被压缩的效果
空图片 透明 宽高为1,
混淆之后实际上图片存在,但是图片是空白的。
这个的作用是防止没有被引用的资源被混淆掉.

### 只开启资源混淆没配置策略会出现什么情况
没有被java代码通过R.xxx 资源引用使用的都将被压缩处理。