[發明專利]一種清除APK中無用圖片資源的方法及裝置有效
| 申請號: | 201611074845.0 | 申請日: | 2016-11-29 |
| 公開(公告)號: | CN106708565B | 公開(公告)日: | 2020-08-04 |
| 發明(設計)人: | 劉一琛 | 申請(專利權)人: | 武漢斗魚網絡科技有限公司 |
| 主分類號: | G06F8/61 | 分類號: | G06F8/61 |
| 代理公司: | 武漢智權專利代理事務所(特殊普通合伙) 42225 | 代理人: | 彭程程 |
| 地址: | 430000 湖北省武漢市東湖開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 清除 apk 無用 圖片 資源 方法 裝置 | ||
1.一種清除APK中無用圖片資源的方法,其特征在于,該方法包括以下步驟:
步驟S1:查找所有的Java文件,找出Java文件中所有使用到的圖片資源,并將其保存到創建的使用圖片資源列表中,所述使用圖片資源列表用于存儲Java文件中和資源文件中引用的圖片資源;
步驟S2:查找所有的資源文件,找出資源文件中所有使用到的圖片資源,并將其保存到所述使用圖片資源列表中;
步驟S3:在APK文件中找出所有圖片資源文件目錄,將圖片資源文件目錄下所有圖片資源保存到創建的本地圖片資源列表中,所述本地圖片資源列表用于存儲本地APK文件中已有的所有圖片資源;
步驟S4:將當前的本地圖片資源列表與所述使用圖片資源列表進行比對分析,找出APK文件中無用的圖片資源并刪除,結束;
步驟S1具體包括以下流程:
步驟S101:通過外部傳入Java文件的目錄,利用python的目錄獲取函數os.listdir找出其下所有的文件或者目錄;當找到目錄時,采用遞歸查詢,找到該目錄下所有子目錄下的文件;當找到文件時,則判斷該文件是否以.java文件為后綴,若是,則確定該文件為Java文件;將找到的所有Java文件的路徑保存到一個Java文件列表中;
步驟S102:依次遍歷Java文件列表中的每個Java文件路徑信息,根據每個Java文件路徑信息利用open函數打開對應的Java文件,然后調用read函數將該Java文件的內容讀取到字符串中,再通過正則表達式“R.drawable.[a-zA-Z0-9_]*”找到該Java文件中所有使用的圖片資源的字符串,批量去除字符串中的“R.drawable”前綴,得到圖片資源的文件名;將遍歷得到的Java文件中所有使用到的圖片資源的文件名保存到創建的使用圖片資源列表中;
步驟S2具體包括以下流程:
步驟S201:通過讀取所有的XML文件,找出所有的資源文件;
步驟S202:根據每個資源文件的路徑信息,利用open函數打開對應的資源文件,然后調用read函數將該資源文件的內容讀取到字符串中,再通過正則表達式“@drawable/[a-zA-Z0-9_]*”找到該資源文件中所有使用到的圖片資源的字符串;批量去除字符串中的“@drawable”前綴,得到圖片資源的文件名;將所有資源文件中使用到的所有圖片資源的文件名保存到所述使用圖片資源列表中。
2.如權利要求1所述的清除APK中無用圖片資源的方法,其特征在于,步驟S3具體包括以下流程:
步驟S301:通過python的目錄獲取函數os.listdir獲取res的子目錄列表;
步驟S302:調用字符的find函數,找到以drawable名開頭的文件目錄;
步驟S303:再次通過os.listdir函數獲取drawable文件目錄下的子文件列表;
步驟S304:通過python的os.path.splitext函數依次讀取到子文件列表中各文件對應的后綴,并找出后綴是以.png和.jpg為結尾的所有文件;
步驟S305:依次將查找到的所有文件對應的絕對路徑保存到創建的本地圖片資源列表中。
3.如權利要求1所述的清除APK中無用圖片資源的方法,其特征在于,步驟S4具體包括以下流程:以本地圖片資源列表為標準,從中遍歷每個圖片資源;將遍歷到的每個圖片資源放到所述使用圖片資源列表中進行對比查詢,如果能查詢到,表明該圖片資源被使用,不進行刪除;否則,表明該圖片資源是無用的圖片資源,則直接調用python的os.remove方法進行刪除。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢斗魚網絡科技有限公司,未經武漢斗魚網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611074845.0/1.html,轉載請聲明來源鉆瓜專利網。





