Android 冗余資源清理工具 ? Cleaner

Android 項(xiàng)目越來越臃腫,冗余資源越來越多,怎么辦? Cleaner 助您一鍵自動(dòng)發(fā)現(xiàn)并清理項(xiàng)目中的冗余資源。

相關(guān) Github 源碼 ? Cleaner
版權(quán)聲明:本文為 frendy 原創(chuàng)文章,可以隨意轉(zhuǎn)載,但請(qǐng)務(wù)必在明確位置注明出處。


背景

其實(shí)這是個(gè)低頻需求,只是因?yàn)樵谀壳肮镜捻?xiàng)目中,一個(gè) Android Studio 工程同時(shí)支撐多個(gè) App,在持續(xù)迭代一段時(shí)間后, 免不了多出一些冗余的資源,比如 Image、Color、Drawable 等等,耗費(fèi)人力去清理顯然不劃算,還不如簡(jiǎn)單粗暴寫一腳本是吧。


原理

實(shí)現(xiàn)過程也確實(shí)很簡(jiǎn)單很粗暴:

  1. 遍歷指定的文件夾,發(fā)現(xiàn)相關(guān)文件;
  2. 遍歷相關(guān)文件和內(nèi)容,引用數(shù)為 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,一個(gè)月基本完成;機(jī)器學(xué)習(xí) Image Caption 因?yàn)殡娔X內(nèi)存不夠用,沒啥進(jìn)度,暫時(shí)擱置;ICO 這么火,一茬茬韭菜?膽子不夠大,未敢妄入,然區(qū)塊鏈還是很牛逼的,去中心化、共識(shí)問題等等還是值得深挖的;生財(cái)心切,最近看起了運(yùn)營和產(chǎn)品的一些套路... 恩,有想法的都砸過來吧,一起折騰折騰(捂臉)...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容