Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 安卓APK瘦身

安卓APK瘦身

編輯:關於Android編程

之前打包的時候直接就用eclipse或者android studio直接生成簽名文件,並沒有關心大小問題,最近有人問我有沒有對APK進行瘦身,對這方面內容一致沒有關注過,今天試用了各種方式把項目簽名apk減少了1/4大小,這樣對用戶節省了流量。

1、APK文件分析

APK是Android的安裝包。APK文件其實是zip格式,但是後綴被修改為apk,我們可以直接解壓目錄如下:

\

分析一下各個內容的作用

\


查看文件/目錄大小主要針對assets、classes.dex、lib、res內容進行精簡。

2、assets精簡

存放在assets下的文件不會生成ID,存放的文件形式可以是多樣的比如音頻、圖片、html相關的等等,精簡體積也就是精簡這些內容。

(1)音頻:主要用在鈴聲和通知方面,體積不要太大,使用壓縮格式的音頻

(2)圖片:在不降低圖片效果、保證APK顯示效果的前提下縮小圖片文件大小。

a、使用tinypng優化大部分圖片資源

\

tinypng的缺點是在壓縮某些帶有過渡效果(帶alpha值)的圖片時,圖片會失真,這種圖片可以采用webP格式,保證圖片質量前提下大幅減少圖片的大小。

b、使用webP圖片格式

webP是一種支持有損和無損壓縮的網絡圖片格式,如果在 App 中使用 WebP,除了 Android4.0 以上提供的原生支持外,其他版本以可以使用官方提供的解析庫webp-android-backport編譯成so使用,通常UI提供的圖片都是png或者jpg格式,我們可以通過智圖或者isparta將其它格式的圖片轉換成webP格式,isparta可實現批量轉換。

智圖:

\

\

(3)Html相關的

html主要涉及js和css這兩部內容采用壓縮格式減少體積

3、classes.dex

(1)盡量使用系統提供的字符串、ID、圖片資源等

(2)優化代碼結構,減少冗余代碼

(3)使用shape來替換圖片,能用代碼實現的圖片樣式都用代碼實現

(4)使用Proguard對代碼進行混淆、優化和壓縮,它有一個專門用來減少apk文件大小的功能叫做 tree-shaking。Proguard 會遍歷你的所有代碼然後找出無用處的代碼。所有這些不可達(或者不需要)的代碼都會在生成最終的apk文件之前被清除掉。Proguard 也會重命名你的類屬性,類和接口,然整個代碼盡可能地保持輕量級水平。

(5)靜態代碼分析工具,無需運行,無需測試用例 掃描整個項目,分析以下潛在的問題,分類指出問題描述、問題位置,並提供合理的修改建議

4、res

通過AndroidUnusedResources來檢查安卓應用程序中未使用的資源,使用方法如下:

把下載下來的jar放到項目目錄下面,在控制台中輸入:

\

找到用不到的資源刪除掉

5、lib

在手機上一般只要支持armabi就可以了對於x86的不需要,所以引入第三方庫的時候把用不到的so刪除掉。

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved