1. 程式人生 > >安卓優化之apk瘦身(27.7M-->17.5M)

安卓優化之apk瘦身(27.7M-->17.5M)

概述

apk瘦身作為優化的一部分,它的大小決定安裝的時間與佔用的記憶體,進行鍼對性的瘦身也能夠提高使用者體驗,下面就看我怎樣將一個27.7M的安裝包減肥到17.5M,足足減少了37.18%。

這裡寫圖片描述

一、優化圖片

圖片佔用了大部分體積,所以圖片的優化首當其衝。

我使用的是TinyPng線上壓縮工具,壓縮前主要圖片的大小(10.5M):

這裡寫圖片描述

接下來我使用iSparta軟體將一部分圖片轉為web格式,.9圖片我轉出來後as報錯,暫時還沒有去找解決方案,知道的夥伴可以留言指導一下哦,來看看壓縮後的大小(2.68M):

這裡寫圖片描述

效果是不是很可觀啊,而且壓縮後的圖片質量也很好,完全滿足應用所需的質量要求,專案中一些簡單的圖片也可以使用SVG向量圖;

二、優化無用資源

通過lint刪除沒有用過的資源:
選擇inspect code…

這裡寫圖片描述

然後我選擇的是分析app,點選ok:

這裡寫圖片描述

接下來就處理沒有用到的資源了:

這裡寫圖片描述

三、使用微信AndResGuard優化資源
在project的gradle中新增依賴:

//微信資源混淆工具
        classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.10'

在app的gradle中新增配置:

apply plugin: 'AndResGuard'

andResGuard {
    // mappingFile = file("./resource_mapping.txt")
mappingFile = null use7zip = true useSign = true // it will keep the origin path of your resources when it's true keepRoot = false //白名單,不混淆的資源 whiteList = [ // your icon "R.drawable.icon", // for fabric "R.string.com.crashlytics.*"
, // for google-services "R.string.google_app_id", "R.string.gcm_defaultSenderId", "R.string.default_web_client_id", "R.string.ga_trackingId", "R.string.firebase_database_url", "R.string.google_api_key", "R.string.google_crash_reporting_api_key" ] compressFilePattern = [ "*.png", "*.jpg", "*.jpeg", "*.webp", "*.gif", "resources.arsc" ] sevenzip { artifact = 'com.tencent.mm:SevenZip:1.2.10' //path = "/usr/local/bin/7za" } }

AndResGuard優化使用了7zzip工具。
配置好之後在as右側的gradle選項中會出現andresguard的task:

這裡寫圖片描述

我們可以選擇需要打包的apk型別進行優化;
看一下task流程:
這裡寫圖片描述

最後一步就是在優化資原始檔啦,優化之後是啥樣的姑娘呢,瞧瞧去…

這裡寫圖片描述

圖片的路徑變成了r/a5/…了;

優化前安裝包大小:
這裡寫圖片描述

優化後安裝包大小:

這裡寫圖片描述

減少了10.2M,還算不錯吧;

四、總結

    優化工作到此告一段段落,還可以優化的地方還有,需要在工作中一步一步來,就這樣吧!下午茶去了......