Android 冗余资源清理工具 • Cleaner

作者: _frendy | 来源:发表于2017-08-30 17:40 被阅读86次

    Android 项目越来越臃肿,冗余资源越来越多,怎么办? Cleaner 助您一键自动发现并清理项目中的冗余资源。

    相关 Github 源码 • Cleaner
    版权声明:本文为 frendy 原创文章,可以随意转载,但请务必在明确位置注明出处。


    背景

    其实这是个低频需求,只是因为在目前公司的项目中,一个 Android Studio 工程同时支撑多个 App,在持续迭代一段时间后, 免不了多出一些冗余的资源,比如 Image、Color、Drawable 等等,耗费人力去清理显然不划算,还不如简单粗暴写一脚本是吧。


    原理

    实现过程也确实很简单很粗暴:

    1. 遍历指定的文件夹,发现相关文件;
    2. 遍历相关文件和内容,引用数为 0 即清理。

    这里贴上部分清理图片的源码:

    def findFiles(dir):
        ...
        for parent, dirnames, filenames in os.walk(dir):
            for filename in filenames:
                if "\\build" in parent or "\\.idea" in parent or "\\.gradle" in parent:
                    continue
    
                ext = file_extension(filename)
                if ext == ".png" or ext == ".jpg":
                    IMAGE.append(os.path.join(parent, filename))
                elif ext == ".java" or ext == ".kt" or ext == ".xml":
                    FILE.append(os.path.join(parent, filename))
    
                if "color.xml" in filename:
                    COLOR.append(os.path.join(parent, filename))
    
                if "\\drawable" in parent and ext == ".xml":
                    DRAWABLE.append(os.path.join(parent, filename))
    
    def cleanImage(images, files):
        ...
        for image in images:
            isUsed = False
    
            for file in files:
                if(containPath(image, file)):
                    isUsed = True
                    #print("++ Used : %s, %s" % (image, file))
                    continue
    
            if isUsed == False:
                cnt += 1
                print(">> Redundant : " + image)
    
                if args.type == "svn":
                    os.system("svn del " + image)
                else:
                    os.remove(image)
    

    用法

    Usage

    示例

    Sample

    最后唠叨下近况,帮纸媒做 App,一个月基本完成;机器学习 Image Caption 因为电脑内存不够用,没啥进度,暂时搁置;ICO 这么火,一茬茬韭菜?胆子不够大,未敢妄入,然区块链还是很牛逼的,去中心化、共识问题等等还是值得深挖的;生财心切,最近看起了运营和产品的一些套路... 恩,有想法的都砸过来吧,一起折腾折腾(捂脸)...

    相关文章

      网友评论

        本文标题:Android 冗余资源清理工具 • Cleaner

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