App優化建議

Android App性能優化可以從代碼,圖片,佈局,耗電量,App瘦身等方面來分析入手。以下主要是總結了在這幾方面編碼的一些建議。

代碼

1.避免內存泄漏
Handler,Thread的生命週期與activity不一致
靜態變量持有Activity context的引用
數據庫流,網絡流使用完後未關閉

2.優化數據結構
需要字符串拼接的操作時用StringBuffer(線程安全),StringBuilder替代String
執行效率 StringBuilder > StringBuffer(線程安全) > String
利用sparseArray替代HashMap
service運行週期不便於控制,容易造成service泄漏,儘量使用IntentService

3.耗時操作需要在線程中執行,避免ANR

4.正確認識強,軟,弱,虛四種引用

圖片

1.圖片使用png無損格式,利用tinypng等軟件進行壓縮
2.多用xml方式繪製圖片或.9圖片以減小圖片大小
3.設計多套分辨率圖片按比例放入drawable文件夾,mdpi(160dpi基準)、hdpi(240dpi)、xhdpi(320dpi)、xxhdpi(480dpi)、xxxhdpi(640dpi)的圖片load比例是2:3:4:6:8,能大大減小APP的內存佔用
4.按實際大小縮放加載圖片。讀取BitmapFactory.Options,計算出縮放比例並設置參數inSampleSize
5.降低每個像素佔用的字節,圖片色彩rgb。 Bitmap.Config RGB_8888:一個像素佔用4個字節,android系統使用該值做爲默認值
6.緩存圖片:LruCache 內存緩存算法,DiskLruCache 磁盤緩存算法
7.使用第三方庫 glide(square),picasso(google),fresco(facebook)

圖片佔用APP內存=圖片寬度 X 圖片高度/((資源文件夾密度/手機屏幕密度)^2) * 色彩格式每一個像素佔用字節數

LRU(Least Recently Used)近期最少使用的算法,它的核心思想是當緩存滿時,會優先淘汰那些近期最少使用的緩存對象。如GridView顯示大量圖片時,運用二級緩存,先在內存中讀取,再到磁盤讀取,最後到網絡上下載。

佈局

1.減少代碼嵌套層級。可利用約束佈局constraintlayout。
2.合理使用佈局標籤:include(代碼複用),viewstub(代碼延時加載),megre(上級元素需是ViewGroup)

電量

核心是減少耗電大戶功能的使用
1.減少BroadcastReceiver的使用
2.減少使用GPS
3.減少數據傳輸,壓縮傳輸數據
4.減少AlarmManager使用

APP瘦身

1.優化圖片佔用空間
使用tinypng等工具壓縮資源圖片大小
多用xml方式繪製圖片或.9圖片以減小圖片大小
2.使用Lint工具刪除無用資源
3.開啓代碼混淆,設置shrinkResources
4.App插件化

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