千萬不要用webp作app的logo,logo仍是老老實實用png吧。html
webp相比於png最明顯的問題是加載稍慢,不過如今的智能設備硬件配置愈來愈高,這點差別愈來愈小。騰訊以前有一篇對於webp的分析文十分不錯,若是你準備要用webp了,那麼它絕對值得一看。android
webp的編碼時間較長,是png的5倍以上,但解碼速度與png差很少,甚至不少時候比png快。而webp在編碼時佔用內存比png高25%,解碼時比png低30%。——摘自《WebP原理和Android支持現狀介紹》git
官方文檔中說只有在4.2.1+以上的機型,才能解析無損或者有透明度調整的webp圖片,4.0+纔開始支持無透明度的webp圖片。我經過雲測發現,在4.0~4.2.1的系統中,帶有透明度的webp圖片雖然不會崩潰,可是徹底沒法顯示。github
《APK瘦身記,如何實現高達53%的壓縮效果》一文中也提到有alpha值的jpg圖片通過webp轉換後,沒法在4.0、4.1的Android系統上運行的問題,具體緣由見官方文檔:web
除了兼容性問題外,webp在某些機型和rom上可能會出現一些詭異的問題。在三星的部分機型上,部分有alpha通道的圖中會有一條很明顯的黑線(三星的rom對於shape的alpha的支持也有問題,是紅線)。在小米2刷成4.xx的手機上,系統未能正確識別xml文件中描述的webp圖片,也會致使加載webp失敗。chrome
由於webp的圖片格式是很難預覽的,as也沒有辦法直接預覽webp格式,我通常是經過chrome瀏覽器打開webp,十分不方便。瀏覽器
咱們知道gradle在build時,有一個mergeXXXResource Task,它將項目的各個aar中全部的res資源統一整合到/build/intermediates/res/flavorName/{buildType}
目錄下。app
webpConvertPlugin這個gradle插件能夠在mergeXXXResource Task和processXXXResource Task之間插入一個task,這個task會將上述目錄下的drawable進行統一處理,將項目目錄裏的png、jpg圖片(不包含.9圖片,webp轉換後顯示效果不佳)批量處理成webp圖片,這樣可讓咱們在平常開發時用png、jpg,正式發包時用webp。ide