android 自动删除无用资源插件

背景:无用的资源有很多缺点,但是删除这些无用的资源又耗时,又费劲,实在是一件头疼的事,网上很多使用python脚本来删除,可扩展性比较差,无意中看到了lint-cleaner-plugin,感觉是比较火的一个插件,但是使用起来发现很不方便。所以再此基础上扩展一下,供大家使用。


为什么我没有使用lint-cleaner-plugin

这个东东太老了,好久没更新,所以在使用的时候有一些限制:

1.删除layout资源的时候,有一些会直接删除layout 中的一行,而不是整个文件。

2.删除drawable.xml的时候,同样有这个问题。

3.只支持过滤单个文件,而不支持过滤文件中的一行。(strings.xml中的一个string没办法过滤)


为什么没有使用android studio 2.1版本之后加入的自动删除资源功能。

android studio 2.1之后的版本也增加了自动删除资源的功能。但是不支持设置过滤内容,而且貌似library中的资源无法删除,所以还是不符合我的要求。


如何使用:

1.添加依赖

dependencies {
    classpath 'com.android.tools.build:gradle:2.1.2'
    classpath 'com.github.xiepengchong:lint-cleaner-plugin:1.0.2' //1.0.2版本存在excluedeLine过滤不生效的bug,1.0.3修复
    classpath 'com.github.xiepengchong:lint-cleaner-plugin:1.0.3'
}

2.添加plugin(如果在Library需要执行该功能的话,需要在Library的build.gradle中加入这一条)

apply plugin: 'com.droidtitan.lintcleaner'


3.配置过滤内容,及编译名字

    lintCleaner {
        // 下面的文件名不进行check,制定文件名,包含后缀
        excludeFile = ['activity_animated_demo_layout.xml','address_logo.png']


        // 下面的字符串内容不进行行删除,可以制定color,string,和array的key值
        excludeLine = ['color_f4f4f4','dispatch_driverarrive_desc','LoginCommitLayout']


        // 是否忽略strings.xml,dimens.这些按照行删除的内容,默认false,如果没有特殊需求,不需要设置。
        ignoreResFiles = true


        // 最终lint生成的文件名,如果在Library中,需要把整体路径写上(Eg:lintXmlFilePath ='base/build/outputs/lint-results-debug.xml')

        lintXmlFilePath = 'build/outputs/lint-results-debug.xml'
    } 

然后我们就可以在gradle编译的时候执行下面的命令就可以了。

./gradlew lintClean


注意事项:

1.在执行之前,可以的话都clean一下,防止之前的数据有影响。

2.由于我们是依赖lint的,所以还有一些缺点,就是如果在Library中定义个资源,但是不用,完全在其他module中使用的话,则会认为是无用的,会误删。所以在使用的时候,资源都定义的规范一点,不要太混乱。


整个项目github网址:

https://github.com/xiepengchong/lint-cleaner-plugin.git


希望这个工具可以帮助大家,也希望大家多多提意见。共同完善这个工具。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值