android的资源混淆,android混淆资源引发的血案以及学习感受资源混淆

以前没感受过android的混淆资源,结果给客户整sdk的时候遇到一个怪事,图片明明存在,为什么图片大小变成了空,宽度尺寸变成1了呢?

我还以为是会移除图标的,这也是因为我只听说过没感受过所以我和客户因为这个事情折腾了许久,虽然我意料到是有可能是混淆资源开启导致的,但是客户否认,我也没多说自己也没验证。.

https://developer.android.com/studio/build/shrink-code#shrink-resources

语法

,分割多个,*表示匹配任意字符

开启条件

1、build.gradle修改

shrinkResources true

minifyEnabled true

2、必须都开启,而且只支持主模块。

保持不被混淆

tools:keep=" 内容规则”

保持必须混淆哪怕被引用

tools:discard="规则"

qssq_keep.xml

内容为

tools:keep="

@drawable/qssq_*,

@layout/qssq_*,

@string/bcs_string*,

@drawable/qssq_icon*,

@drawable/qssq_bg*,

@drawable/qssq_xicon*,

" />

强制剔除xml

remove.xml内容

tools:discard="

@drawable/test_remove_x*,

@drawable/test_remove_a*,

@drawable/shadow*,

@layout/activity_main*,

@layout/activity_demo*,

" />

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 资源引用使用的都将被压缩处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值