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

Android最佳實踐 —— 詳細談談如何減小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這一欄開啟,即是未被使用的資源列表,使用者可以參照來手動刪除資源

相關推薦

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

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

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

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

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

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

Android Studio如何減小APK體積

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

Android最佳實踐之性能 - 多線程

ndt andro 單位 多線程 same Coding amount other err 在單獨線程執行代碼 參考地址:http://developer.andr

聽說你還不會用Dagger2?Dagger2 For Android最佳實踐教程

前言 Dagger2是現在非常火的一個依賴注入框架,目前由Google維護,在Github上面已經有12K star了。Dagger2的入門門檻其實是比較高的,據瞭解,目前有很多Android工程師對Dagger2還不甚瞭解,沒有用上Dagger2或者是用法有問題,本文的主旨就是讓Android工程

Android最佳實踐之SystemBar狀態列全版本適配方案

前言 自從MD設計規範出來後,關於系統狀態列的適配越受到關注,因為MD在5.0以後把系統狀態列的顏色改為可由開發者配置的,而在5.0之前則無法指定狀態列的顏色,所以這篇就說說使用Toolbar對系統狀態列的適配策略 主流App的適配效果 手Q在這方面適

Android最佳實踐之觸控手勢

普通手勢 為Activity 或View捕捉觸控事件 使用getActionMasked()來提取event中的action。 public class MainActivity extends Activity { ... // This e

Android最佳實踐之流暢(Seamlessness)設計

即使你的應用程式是快速且響應靈敏的,但一些設計仍然會給使用者造成問題——與其它應用程式或對話方塊未事先計劃的互動,意外的資料丟失,意料之外的阻塞等等。避免這些問題,有助於理解應用程式執行的上下文和系統的互動過程,而這些又正影響著你的應用程式。簡而言之,你應該竭盡全力去開發一個與系統和其它應用程式流暢

Android最佳實踐之效能

Doze和App Standby的優化(API23) 參考地址:http://developer.android.com/training/monitoring-device-state/doze-standby.html 從Android 6.0 (API

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

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

Studio減小APK體積

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

Android最佳實踐——深入淺出WebSocket協議

首先明確一下概念,WebSocket協議是一種建立在TCP連線基礎上的全雙工通訊的協議。概念強調了兩點內容: TCP基礎上 全雙工通訊 那麼什麼是全雙工通訊呢? 全雙工就是指客戶端和服務端可以同時進行雙向通訊,強調同時、雙向通訊 WebSoc

減小apk體積

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

Android最佳實踐

為效能設計: 1)避免建立物件 物件的建立從來不是免費的。雖然GC使得記憶體申請代價不再高昂,但是申請總是比不申請來得昂貴。如果你在一個使用者介面迴圈中申請物件,你將會強行執行週期性的GC,在使用者體驗上出現一些小

[轉]Android最佳實踐之:StrictMode介紹

【IT168技術】最新的Android平臺中(Android 2.3起),新增加了一個新的類,叫StrictMode(android.os.StrictMode)。這個類可以用來幫助開發者改進他們編寫的應用,並且提供了各種的策略,這些策略能隨時檢查和報告開發者開發應用中存在的問題,比如可以監視那些本不應

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

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

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

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

Android 應用兼容性最佳實踐 | 中文教學視頻

-s 播放 新特性 cmp 一起 更多 ide tar video 本期中文視頻向各位開發者介紹如何現代化您的應用,其中包括 Android?O、Android P?(預覽版)?的新特性、行為變更、應用開發中常見的兼容性最佳實踐,以及測試、兼容系統時需要註意的一些事項。希

Android Apk體積優化

Android Apk體積優化 原文地址:How you can decrease application size by 60% (In only 5 minutes)? 看到這個標題,你可能很感興趣,當我看到這個標題的時候,我也很感興趣。其實也就是減小應用體積的一些技巧