Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android產品研發(四)--)減小Apk大小

android產品研發(四)--)減小Apk大小

編輯:關於Android編程

隨著移動技術的深入發展,各種炫酷效果的更新,在我們追求UI與UE的同時一個不如忽視的問題逐漸暴露出來,那就是apk文件越來越大,可能有的童鞋會說現在都是wifi環境,apk文件增大幾M不是什麼大不了的問題,這其實也是有一定道理的,但是作為開發人員的我們這絕不是我們認為可以忽略這個問題的理由。優化Apk大小也是優化我們App體驗的一個重要方面,雖然可能它不是那麼的重要。

那麼到底是那些原因讓我們的Apk文件變得越來越大呢?

多屏幕是適配問題,移動設備的多樣化導致了一個app需要N鐘不同尺寸的設置,從而增加了安裝文件中資源文件的種類與大小;

各種開發框架,開發工具的改進,雖然方便了我們開發者重復造輪子,但是這也間接的增加了安裝文件的大小;

在追求各種動畫、UI效果的內在需求,顯而易見的更加炫酷的UI、UE效果會客觀上增減Apk文件的大小;

開發人員溝通不足,冗余代碼過多造成打出來的apk文件增大;

為了滿足性能、安全性的需求,增添.so庫;

好吧,既然我們知道了為何我們的apk文件越來越大,我們就可以有針對性的提出解決辦法,為了更好的說明問題,這裡我簡單的列一下apk文件的組成:

源碼文件即源代碼文件等

資源文件包括apk文件中的各種布局文件,資源文件,圖片文件,原生文件等等

本地代碼文件這裡主要指的是.so文件

那麼在知道了apk文件的組成之後,如何減少apk文件的大小就很簡單了

減小apk文件的大小,已經是一件很重要的事情。上面我們知道了apk文件的組成部分,就可以根據這些組成部分做一些優化安裝文件的工作了。。下面是我總結的一些減小apk文件大小的方式:

源碼文件方面的優化方式:

掌握良好的編碼習慣,復用代碼,對於一些重復性的代碼邏輯復用;

使用Proguard對代碼混淆,優化,壓縮(它不僅僅是一個牛擦的混淆工具在代碼優化方面也是很棒滴)。

減少一些無用代碼庫的引用,經常的一個場景就是可能一些代碼庫已經不需要了,但是還是在代碼中引用著,這樣做的後果就是無用的代碼庫也會被編譯到apk文件中;

定期進行代碼review,這是一個很重要的工作,可以是團隊成員之間熟悉彼此代碼同時也可以查找出一些自己看不出來的bug以及減小一些無用代碼;

做一些代碼lint之類的工作,android studio已經提供了這樣的功能,定期執行代碼lint操作是一個比較不錯的習慣;

資源文件方面的優化方式:

對於一些不必要的設備尺寸,不必要全部設備(主要看產品需求)

對資源文件,主要是圖片資源進行壓縮;

一些UI效果可以使用代碼渲染替代圖片資源;

資源文件的復用,比如兩個頁面的背景圖片相同底色不同,就可以復用背景圖片,設置不同的底色;

本地代碼文件方面的優化方式:

限制app支持的cpu架構的數目,在當前的Android 生態系統中,讓你的app支持 armabi 和 x86 架構就夠了;

盡可能的重用so庫文件;

最後重點講一下圖片的壓縮工作,其實上面所講的所有的減小apk大小的技巧中最重要的就是對圖片的壓縮工作。一般而言圖片壓縮對減小Apk大小所產生的效果占到你所有減小Apk努力的效果50%以上,因而要想減小Apk大小就考慮一下怎麼減小圖片的大小吧。

這裡推薦一個比較不錯的圖片壓縮網站:https://tinypng.com/ 支持對jpg與png圖片資源的壓縮。

我們可以具體的測試一下不同大小圖片資源的壓縮情況:
這裡寫圖片描述vcHLMTAuNTJNo6y/ybz7YXBrzsS8/rz10KG1xNCnufu7ucrHutzD98/UtcShozwvcD4NCjxwPjxzdHJvbmc+19y94Twvc3Ryb25nPjwvcD4NCjxwPtLUyc+89cnZYXBrzsS8/rXEt73Kvc/gttTAtMu1o6zM5dHpt73D5r7N0OjSqtPQ0ru2qLXEyKHJ4aOsyei8xr7NysfU2tK7uPbUvMr4vK/A78Pm1dKz9tfuusO1xLe9sLiho8/UyLthcGvOxLz+tcS089Chvs3Kx9K7uPbUvMr4oaOyu9KquqbFws6qwcvIw7bguPa3vcPmseS1w7j8usO2+LfFy8nSu7j2t73D5rXE1LzK+KGjxOPQ6NKqvathcHC497e9w+a9+NDQ1fvM5b+8wsejrLb4srvKx732vfa8uLj2t73D5rXE1eXXw6GjPC9wPg0KPHA+PHN0cm9uZz6xvs7E0tTNrLK91sFnaXRodWLW0KO6PGEgaHJlZj0="https://github.com/yipianfengye/androidProject">https://github.com/yipianfengye/androidProject,歡迎star和follow

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