美文网首页Android深入
android混淆资源引发的血案以及学习感受资源混淆

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

作者: 吉凶以情迁 | 来源:发表于2018-08-23 16:27 被阅读0次

以前没感受过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
内容为

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:keep="
    @drawable/qssq_*,
    @layout/qssq_*,
    @string/bcs_string*,
    @drawable/qssq_icon*,
    @drawable/qssq_bg*,
    @drawable/qssq_xicon*,
 " />
    <!--@drawable/bcs_icon*,-->

强制剔除xml

remove.xml内容

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:discard="
    @drawable/test_remove_x*,
    @drawable/test_remove_a*,
    @drawable/shadow*,
    @layout/activity_main*,
    @layout/activity_demo*,
" />

xml被移除后的效果 空xml

压缩效果

xml被压缩后效果

<?xml version="1.0" encoding="utf-8"?>
<x/>

强制解析xml会得到的错误

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

图片被压缩的效果

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

只开启资源混淆没配置策略会出现什么情况

没有被java代码通过R.xxx 资源引用使用的都将被压缩处理。

相关文章

  • 美团Android资源混淆保护实践

    第164期:美团Android资源混淆保护实践 Android开发 美团Android资源混淆保护实践 我们往往忽...

  • Android周报第十八期

    1)安装包立减1M--微信Android资源混淆打包工具 微信中的资源混淆工具主要为了混淆资源ID长度(例如将re...

  • android 资源混淆

    资源混淆插件目前有andresguard插件,但是局限于只有混淆功能,不适合和其他的插件混用,即使存在命令打包增加...

  • android 资源混淆

    方案选择: 1.微信混淆方案(AndResGuard)2.美团混淆方案 区别: 微信的方案是通过修改aapt在处理...

  • Android资源混淆

    资源混淆有助于减小包体积,也可以提高被反编译后阅读代码的难度。还可以应对一些安全检测机构对于资源混淆要求。 基于微...

  • 你混淆Android代码多吗?

    ProGuard是一个开源的Java代码混淆器。它可以混淆Android项目里面的java代码,但是不能混淆资源,...

  • 资源混淆

    微信开源的Android资源混淆工具 https://github.com/shwenzhang/AndResGu...

  • Android打包那些事

    目录 一.混淆(Proguard) 混淆是打包过程中最重要的流程之一,这里所说的的混淆是包括代码混淆和资源的“混淆...

  • AndResGuard资源混淆

    关于AndResGuard AndResGuard是一个帮助你缩小APK大小的工具,他的原理类似Java Prog...

  • 组件化踩坑记录

    混淆问题 butterknife 资源冲突,覆盖问题 打aar包需要注意的事项 混淆问题 推荐两种混淆方式 @ke...

网友评论

    本文标题:android混淆资源引发的血案以及学习感受资源混淆

    本文链接:https://www.haomeiwen.com/subject/akqiiftx.html