1. 程式人生 > >最佳實踐 —— 詳細談談如何減小APK體積

最佳實踐 —— 詳細談談如何減小APK體積

隨著Android移動開發的需求越來越複雜,我們不可避免的遇到釋出出去的apk體積越來越大的問題,目前超過10MB、20MB的apk已經是很常見的事情了,但是依然能夠看到一些apk的體積控制的很小。apk體積增大源於:

  • 新需求不斷的提出
  • 需要支援高解析度的螢幕而加入了高分圖片
  • 依賴了更多的第三方庫

本文將從我自己的經歷專案中探討如何有效減小apk的體積。減小Apk體積是一件很有用處的android優化手段,降低了使用者需要下載的位元數,同時也降低了分發安裝時失敗的概率。

將apk解壓後發現,體積佔大頭的分辨是lib資料夾、res資料夾和dex檔案。所以我們的降低apk體積的策略也應當從如何縮減so檔案、資源圖片、控制程式碼質量

上來入手。

使用Progruard

Proguard是Android很早就使用的程式碼混淆工具,除了用於混淆程式碼提高安全性以外,他在程式碼編譯的時候也會通過遍歷程式碼的方式來發現沒有被呼叫的程式碼,從而將其在打包成apk時剔除,最終一定程度上降低了apk的大小。

但是Proguard使用時候是要注意的,因為程式碼中利用反射機制的地方會被Proguard工具破壞,所以要慎重的編寫混淆例外檔案,同時對於混淆後打包出來的apk要重新充分迴歸測試下。

使用Android Lint

Proguard提供了程式碼的縮減方式,而Lint對於res下面的資源進行了充分的優化,他會提供一份報告給你,從而通知你哪些資源沒有被用到,顯然剔除這些資源是可以減少apk體積的。這些資源包括res資料夾下所有的內容,比如圖片、字串、尺寸等等。現在Android Lint已經整合到了Android Studio中,用法很簡單。

進入Android Studio的選單中選擇Analyze->Inspecting Code即可

分析完畢後在Inspection選項卡中會有一份詳細的報告,找到Android Lint專案

拉到下面Unused resource這一欄開啟,即是未被使用的資源列表,使用者可以參照來手動刪除資源

相關推薦

【轉】最佳實踐 —— 詳細談談如何減小APK體積

本篇文章轉載自http://www.cnblogs.com/soaringEveryday/p/5254520.html 作者寫的很詳細 格式略有調整 以下正文 隨著Android移動開發的需求越來越複雜,我們不可避免的遇到釋出出去的apk體積越來越

最佳實踐 —— 詳細談談如何減小APK體積

隨著Android移動開發的需求越來越複雜,我們不可避免的遇到釋出出去的apk體積越來越大的問題,目前超過10MB、20MB的apk已經是很常見的事情了,但是依然能夠看到一些apk的體積控制的很小。apk體積增大源於: 新需求不斷的提出 需要支援高解析度的螢幕而加入了高分圖片 依賴了更多的第

Android最佳實踐 —— 詳細談談如何減小APK體積

這是我們專案組安卓主力總結的如何減小APK體積的文章,很詳細,有很多大家平時不注意的技巧,分享下隨著Android移動開發的需求越來越複雜,我們不可避免的遇到釋出出去的apk體積越來越大的問題,目前超過10MB、20MB的apk已經是很常見的事情了,但是依然能夠看到一些apk

Android Studio如何減小APK體積

最近在用AndroidStudio開發一個小計算器,程式碼加起來還不到200行。但是遇到一個問題,匯出的APK檔案大小竟然達到了1034K。這不科學,於是就自己動手精簡APK。下面我們大家一起學習怎麼

減小apk體積減小圖片的大小

在我的一個安卓專案中apk肯定是有不少圖片資源,減少圖片的大小就直接的減少了apk不少大小,今天推薦2個方式來減少圖片的大小 一、將圖片進行壓縮: 對於設計師給過來的圖片,往往是沒有太多做壓縮處理,導致APK體積很大。我們可以通 過第三方工具做圖片壓縮處理,這個聲稱無損清

Studio減小APK體積

1. ProGuard Proguard可以刪除無效的Java code來減小apk的體積 2. Split Apk Split Apk谷歌官方支援的,可以為根據裝置密度和ABI建立特定的Apk包,大大減少每個apk的體積。 3. ReDex

減小apk體積

主流apk大小 一   開啟minifyEnabled程式碼混淆 除了能對程式碼優化混淆,還能對位元組碼檔案進行優化,縮減體積,一般能減小500k左右 Proguard示例程式碼 -optimizationpasses 5          # 指定程式碼的壓縮級別 -d

Android效能最佳實踐:為您的APK進行瘦身

大家都知道開發中應用程式的效能是非常重要的,但是這也是優化提升的難點,本章針對 Android效能實踐——從減少APK的大小開始,提升使用者的體驗。 原文地址 https://developer.android.com/topic/performance/reduce-apk-

安卓減小apk體積,整體優化程式碼

百度到的方法都太普通,還是通過as自帶的功能來實現吧,有兩種方法。 1、首先生成apk檔案,點選Build->Build Apk(s),然後再點選Build->Analyze Apk...會生成如下介面。可以直觀的看出到底是那一部分佔的記憶體大。

Android APK 瘦身實踐(減小apk的大小)

因為推廣的需要,公司需要把APK的大小再“減小”一下,4M以內! 當達到4M以內之後,公司建議說,能否再壓壓?2M如何? 瘦身前 因為平時就考慮到大小的限制,所以很多工作已經做過了,如下列舉現在的狀態: 7.3M(Debug版本)和6.5M(Release版本)

JQuery系列(7) - JQuery最佳實踐

get 參考 cti query jquer html .html bsp best 參考 【1】阮一峰 http://www.ruanyifeng.com/blog/2011/08/jquery_best_practices.htmlJQuery系

atitit.文件上傳帶進度條的實現原理and組件選型and最佳實踐總結O7

private tps cto 協議 post sch 頁面 system osc atitit.文件上傳帶進度條的實現原理and組件選型and最佳實踐總結O7 1. 實現原理 1 2. 大的文件上傳原理::使用applet 1 3. 新的bp 2 1. 性能提升

Translucent System Bar 的最佳實踐

灰色 bsp itl reat col 由於 技術分享 pac 自己的 轉自:http://www.jianshu.com/p/0acc12c29c1b 近幾天準備抽空總結Android一些系統UI的實踐使用,於是開始動手建了一個庫 AndroidSystemUiTrain

Atitit.angular.js 使用最佳實踐 原理與常見問題解決與列表顯示案例 attilax總結

依賴 實現 http dsi 概念 模板 style ctr net Atitit.angular.js 使用最佳實踐 原理與常見問題解決與列表顯示案例 attilax總結 1. 本文範圍 1 2. Angular的長處 1 2.1. 雙向數據綁定 1 2.2. d

運行容器的最佳實踐 - 每天5分鐘玩轉 Docker 容器技術(24)

oat add vertical poi can size 執行命令 後臺 運行 按用途容器大致可分為兩類:服務類容器和工具類的容器。 1. 服務類容器以 daemon 的形式運行,對外提供服務。比如 web server,數據庫等。通過 -d 以後臺方式啟動這類容器是非常

atitit.壓縮算法 ZLib ,gzip ,zip 最佳實踐 java .net php

mon 處理 匿跡 分享 打包成 ont 壓縮文件 comm b- atitit.壓縮算法 ZLib ,gzip ,zip 最佳實踐 java .net php 1. 壓縮算法的歸類::: 純算法,帶歸檔算法 1 2. zlib(適合字符串壓縮) 1 3. g

vue2.0 keep-alive最佳實踐

pat out blank 名稱 red 減少 基本用法 keep ref   轉自:https://segmentfault.com/a/1190000008123035 1.基本用法 vue2.0提供了一個keep-alive組件用來緩存組件,避免多次加載相應的組件,減

《virtual san 最佳實踐》節選 Virtual SAN的發展與現狀

改變 檢查 center ops 運行 對象 使用 qos 在線升級 Virtual SAN的發展與現狀Virtual SAN已經叠代更新到第四代,即Virtual SAN 6.2。通過三次主版本叠代,Virtual SAN已經成為一款非常成熟的軟件定義存儲軟件。在此,我們

maven+SSM+shiro+junit+jetty+log4j環境配置的最佳實踐

一次 bject catch mapping getbean tco 客戶 包名 目錄 思路大致是 jetty插件 -> junit -> SpringMVC -> Spring -> Mybatis整合 -> shiro整合 -> lo

微服務架構的兩大解耦利器與最佳實踐

架構 微服務 沈劍 這幾年,微服務架構這個術語漸成熱門詞匯,但它不是一個全新架構,更不是一個包治百病的架構。那麽,微服務架構究竟能夠解決什麽問題,又帶來哪些痛點?本文將與大家談談這個問題,以及微服務架構的兩大解耦利器配置中心和消息總線的最佳實踐。微服務架構解決的問題與帶來的痛點一互聯網高可用架構為