Android Bitmap&Drawable&動畫的優化建議

  1. 加載大圖片或者一次性加載多張圖片,應該在異步線程中進行圖片的加載,涉及到 IO 操作,以及 CPU 密集操作,很可能引起卡頓。

  2. 在 ListView,ViewPager,RecyclerView,GirdView 等組件中使用圖片時,應做好圖片的緩存避免始終持有圖片導致內存溢出,也避免重複創建圖片,引起性能問題。使用Glide等圖片庫

  3. 使用 webp 替換 png 格式,或者使用 TinyPNG 類似工具壓縮處理,減少包體積

  4. 應根據實際展示需要,壓縮圖片,而不是直接顯示原圖。手機屏幕比較小,直接顯示原圖,並不會增加視覺上的收益,但是卻會耗費大量寶貴的內存。

  5. 在 Activity#onPause()或 Activity#onStop()回調中,關閉當前 activity 正在執行的的動畫

  6. 在動畫或者其他異步任務結束時,應該考慮回調時的環境是否還支持業務處理。Activity 的 onStop()函數已經執行,且在該函數中主動釋放了資源,此時回調中如果不做判斷就會空指針崩潰。

  7. 使用 RGB_565 代替 RGB_888,減少內存佔用。大多數場景使用的是ARGB_8888 和 RGB_565,RGB_565 能夠在保證圖片質量的情況下大大減少內存的開銷,是解決 OOM 的一種方法。但是一定要注意 RGB_565 是沒有透明度的,如果圖片本身需要保留透明度,那麼就不能使用 RGB_565

  8. 大圖片資源不要直接打包到 apk,可以考慮通過文件倉庫遠程下載,減小包體積

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章