1. APK瘦身, 一键删除res下无用的资源

作者: liys_android | 来源:发表于2019-02-25 20:46 被阅读704次

    1. APK瘦身, 一键删除res下无用的资源
    2. APK瘦身, 一键删除无用java文件

    温馨提醒 删除之前请先备份

    一. 问题描述:

    在项目开发中, 由于需求不断的变动, 我们的页面也在不断的变化. 无用的文件也就越来越多, 这样就会加大apk的体积.
    情况1: 有时候项目比较赶, 也不知道有些文件有没有用到, 也不敢乱删, 怕出问题, 久而久之无用文件就越来越多了
    情况2: 如果你是半路接手人家的项目, 里面本身就有很多无用的文件, 一个一个找也不太现实.

    这篇文章主要解决的问题: 如何删除res下无用的资源.
    想删除无用的java文件, 请查看: 2. 利用Android Studio自带工具 删除无用java文件

    二.解决办法: 利用Android Studio自带工具

    可能有的文章用的是Analyze, 不过单纯的res资源来说, 我感觉还是Refactor方式好用一些, 原理应该都一样.
    当然了, 删除无用java类还是会用到Analyze.

    测试环境: android studio3.0以上
    3.0以前的版本没测试过.
    步骤1:
    res下右键, 选择 Refactor --- Remove Unused Resources 如下图:

    first.png

    步骤2:
    弹出一个确认框, 建议选择Preview
    Refactor: 直接删除无用的资源;
    Preview: 先预览无用的资源, 以免删错;

    dialog.png

    步骤3:
    items to be deleted 是所有的无用资源文件
    Unused Resource... 是分类, 无用资源具体在哪个文件夹. 点击展开即可看到.

    Preview1.png

    步骤4: 如果preview里部分资源不想删除怎么办? 如下图:
    把鼠标移到不想删除具体文件文件夹 右键, 选择Remove, 从preview中移除, 然后选择左下角的Do Refactor 即可.
    例如: 我把图片a从preview中移除, 最终删除无效资源的时候, 图片a就不会被删除.

    preview2.png

    三.上面搜索出来的"无效资源文件"指的是哪些资源文件呢?

    指的是没有直接或间接被java文件引用的资源文件.
    1.如下图: 图片a被Test类引用了, 即使Test没有被使用, 但是图片a也会被认定为有效资源.

    图1.png

    2.如下图: 虽然图片a被activity_main2引用了, 但是, 假如activity_main2没有被java文件引用的话, 那图片a和activity_main2.xml都会判定为无效资源

    图2.png

    到这里就结束了, 希望能帮助到大家, 如果有什么问题, 欢迎在下方评论.

    相关文章

      网友评论

        本文标题:1. APK瘦身, 一键删除res下无用的资源

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