欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android圖片性能優(yōu)化詳解

 更新時間:2018年07月23日 09:12:21   作者:四級五次郎  
這篇文章給大家分享了關于Android性能優(yōu)化之圖片優(yōu)化的相關知識點內容,有興趣的朋友參考下。

1. 圖片的格式

目前移動端Android平臺原生支持的圖片格式主要有:JPEG、PNG、GIF、BMP、和WebP(自從Android 4.0開始支持),但是在Android應用開發(fā)中能夠使用的編解碼格式只有三種:JPEG、PNG、WebP,圖片格式可以通過查看Bitmap類的CompressFormat枚舉值來確定。

public static enum CompressFormat {
  JPEG、
  PNG、
  WebP;

  private CompressFormat() {

  }
}

如果要在應用層使用GIF格式圖片,那么需要自己引用第三方函數(shù)庫進行支持。

1.1 JPEG

JPEG是一種廣泛使用的有損壓縮圖像標準格式,它不支持透明和多幀動畫,一般攝像類作品最終都是以JPEG格式展示。通過控制壓縮比,可以調整圖片的大小。

1.2 PNG

PNG是一種無損壓縮圖片格式,它支持完整的透明通道,從圖像處理領域將,JPEG只有RGB三個通道,而PNG有ARGB四個通道。由于是無損壓縮,因此PNG圖片占用空間一般比較大,會無形中增加最終APP的大小,在做APP瘦身時一般都要對PNG圖片進行處理以減小其占用的體積。

1.3 GIF

GIF是一種古老的圖片格式,它誕生于1987年,它的特點是支持多幀動畫。

1.4 WebP

WebP由Google在2010年發(fā)布,它支持有損和無損壓縮、支持完整的透明通道、也支持多幀動畫,是一種比較理想的圖片格式。在既保證圖片質量又要限制圖片大小的需求下,WebP應該是首選。

2. 圖片的壓縮

目前大多數(shù)APP都是PNG格式圖片資源,我們可以通過幾個工具對PNG圖片進行壓縮來達到瘦身的目的。

2.1 無損壓縮ImageOptim

ImageOptim是一個無損的壓縮工具,它通過優(yōu)化PNG壓縮參數(shù),移除冗余元數(shù)據(jù)以及非必需的顏色配置文件等方式,在不犧牲圖片質量的前提下,既減少了PNG圖片占用的空間,又提高了加載的速度。

2.2 有損壓縮ImageAlpha

ImageAlpha是ImageOptim作者開發(fā)的一個有損的PNG壓縮工具,相比較而言,圖片大小得到極大的降低,當然圖片質量同事也會受到一定程度的影響,經(jīng)過該工具壓縮的圖片,需要經(jīng)過設計師的確認才能最終上線,否則可能回影響整個APP的視覺效果。

2.3 有損壓縮TinyPNG

TinyPNG也是比較知名的有損PNG壓縮工具,它以Web站點的形式提供,沒有獨立的APP安裝包,同所有的有損壓縮工具一樣,經(jīng)過壓縮的圖片,需要經(jīng)過設計師的確認才能最終上線,否則可能回影響整個APP的視覺效果。

還有很多無損壓縮工具,例如JPEGMini、MozJPEG等,大家自行選擇適合自己項目的一個就行,主要是在圖片大小和圖片質量之間找到一個折中點。

2.4 PNG/JPEG 轉換為WebP

如果你的APP最低支持到Android4.0,那么可以直接使用系統(tǒng)提供的能力來支持WebP,如果是4.0以下的系統(tǒng),也可以通過在APP中集成第三方函數(shù)庫例如webp-android-backport來實現(xiàn)對WebP的支持。根據(jù)Google測試,無損壓縮后的WebP比PNG文件少了45%的文件大小,即使這些PNG文件經(jīng)過其他壓縮工具例如ImageOptim壓縮后,WebP依然可以減少約28%的文件大小。

WebP轉換的工具可以選擇智圖和iSparta等

2.5 盡量使用NinePatch格式的PNG圖

.9.png圖片格式簡稱NinePatch圖,本質上仍然是PNG格式圖片,它是針對Android平臺的一種特殊PNG格式圖片,可以在圖片指定位置拉伸或者填充內容。NinePatch圖的優(yōu)點是體積小,拉伸不變形,能夠很好地適配Android各種機型。Android SDK自帶了NinePatch圖的編輯工具,位于sdk/tools/draw9patch,點擊即可啟動;當然,Android Studio也集成了PNG轉NinePatch的功能,我們只需右鍵點擊某個需要轉換的PNG圖片,在彈出的對話框中選擇Create 9-Patch File…即可自動完成轉換。

3. 圖片的緩存

圖片的緩存框架有很多,常見的有四種

  1. Android-Universal-Image-Loader
  2. Picasso
  3. Glide
  4. Fresco

這四種圖片加載框架的優(yōu)劣就不在一一說明,因為隨便一搜就可以知道答案,我們可以根據(jù)項目來權衡使用哪一個圖片加載框架。

相關文章

  • Android ProgressBar 模擬進度條效果的實現(xiàn)

    Android ProgressBar 模擬進度條效果的實現(xiàn)

    這篇文章主要介紹了Android ProgressBar 模擬進度條效果的實現(xiàn),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Android仿微信朋友圈圖片選擇器

    Android仿微信朋友圈圖片選擇器

    這篇文章主要為大家詳細介紹了Android仿微信朋友圈附加圖片功能,朋友圈圖片選擇器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android基于Flutter編寫文件下載管理器

    Android基于Flutter編寫文件下載管理器

    文件下載在很多類型的應用中會涉及,例如音樂、文檔、包括圖片(只是圖片可以使用一些組件完成無感知的下載)。本篇介紹使用Flutter中的Dio下載方法完成文件的下載,需要的可以參考一下
    2022-03-03
  • Android自定義view仿IOS開關效果

    Android自定義view仿IOS開關效果

    這篇文章主要為大家詳細介紹了Android自定義view仿IOS開關效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • android連續(xù)拖動導致掛起的解決方法

    android連續(xù)拖動導致掛起的解決方法

    本文給大家分享的是在安卓的項目開發(fā)中遇到連續(xù)拖動對象,導致掛起的問題的解決方法,也是經(jīng)過很多網(wǎng)友的提示,最終才找到解決方法,這里記錄一下,分享給大家。
    2015-05-05
  • Android開發(fā)中的錯誤及解決辦法總結

    Android開發(fā)中的錯誤及解決辦法總結

    本文屬于個人平時項目開發(fā)過程遇到的一些問題,記錄下來并總結解決方案,希望能幫到大家解決問題,需要的朋友可以參考下
    2022-02-02
  • 解決android studio引用遠程倉庫下載慢(JCenter下載慢)

    解決android studio引用遠程倉庫下載慢(JCenter下載慢)

    這篇文章主要介紹了解決android studio引用遠程倉庫下載慢(JCenter下載慢),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • Android Studio default not found錯誤解決辦法

    Android Studio default not found錯誤解決辦法

    這篇文章主要介紹了Android Studio gradle 編譯提示‘default not found’ 解決辦法的相關資料,需要的朋友可以參考下
    2017-01-01
  • Android中實現(xiàn)淘寶購物車RecyclerView或LIstView的嵌套選擇的邏輯

    Android中實現(xiàn)淘寶購物車RecyclerView或LIstView的嵌套選擇的邏輯

    這篇文章主要介紹了Android中實現(xiàn)淘寶購物車RecyclerView或LIstView的嵌套選擇的邏輯,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-12-12
  • Android制作一個錨點定位的ScrollView

    Android制作一個錨點定位的ScrollView

    這篇文章主要介紹了Android制作一個錨點定位的ScrollView,幫助大家更好的理解和學習使用Android,感興趣的朋友可以了解下
    2021-04-04

最新評論