Android 效能優化

2021-08-18 08:03:04 字數 1620 閱讀 4448

android應用的效能優化是乙個容易被忽視的技術點,當乙個專案以功能和開發迭代速度為主要考核的時侯,那麼極少會關注到它的效能問題。另外隨著手機硬體配置的不斷提公升,對於效能的要求在軟體開發上也就顯得不那麼苛刻。但是乙個真正成功的產品,或者說是追求極致體驗的產品,效能優化還是值得考慮,尤其時乙個應用的被更多的使用者和更頻繁的使用的時候,效能的重要性就更得以體現。具體如何在效能和功能上平衡根據不同的應用而定,但效能優化仍舊需要考慮。

通過平時的學習和總結,記錄一些效能優化方面值得注意和遺漏的知識點,一方面是面試的相關知識,另外是開發過程中需要注意的地方。

1.android介面渲染大多數使用者感知到的卡頓等效能問題的最主要根源都是因為渲染效能。android系統每隔16ms發出vsync訊號,觸發對ui進行渲染,如果每次渲染都成功,這樣就能夠達到流暢的畫面所需要的60fps。有很多原因可以導致丟幀

2.過度繪製overdraw

overdraw(過度繪製)描述的是螢幕上的某個畫素在同一幀的時間內被繪製了多次.

overdraw有時候是因為你的ui布局存在大量重疊的部分,還有的時候是因為非必須的重疊背景。例如某個activity有乙個背景,然後裡面的layout又有自己的背景,同時子view又分別有自己的背景。僅僅是通過移除非必須的背景,這一措施能夠顯著提公升程式效能。

3.導致gc頻繁執行有兩個原因

android中的物件的記憶體模型

android裡面是乙個**generation的記憶體模型,最近分配的物件會存放在young generation區域,當這個物件在這個區域停留的時間達到一定程度,它會被移動到old generation,最後到permanent generation區域。

通過memory monitor我們可以檢視到記憶體的占用情況,每一次瞬間的記憶體降低都是因為此時發生了gc操作,如果在短時間內發生大量的記憶體**與降低的事件,這說明很有可能這裡有效能問題。我們還可以通過heap and allocation tracker工具來檢視此時記憶體中分配的到底有哪些物件

分析記憶體洩漏的方法

為了尋找記憶體的效能問題,android studio提供了工具來幫助開發者。

allocation tracker:使用此工具來追蹤記憶體的分配,前面有提到過。

heap tool:檢視當前記憶體快照,便於對比分析哪些物件有可能是洩漏了的。

電池管理

有下面一些措施能夠顯著減少電量的消耗:

1.我們應該儘量減少喚醒螢幕的次數與持續的時間,使用wakelock來處理喚醒的問題,能夠正確執行喚醒操作並根據設定及時關閉操作進入睡眠狀態。

2.某些非必須馬上執行的操作,例如上傳歌曲,處理等,可以等到裝置處於充電狀態或者電量充足的時候才進行。

3.觸發網路請求的操作,每次都會保持無線訊號持續一段時間,我們可以把零散的網路請求打包進行一次操作,避免過多的無線訊號引起的電量消耗。關於網路請求引起無線訊號的電量消耗,還可以參考這裡

Android效能優化

android效能優化 1.http用gzip壓縮,設定連線超時時間和響應超時時間 http請求按照業務需求,分為是否可以快取和不可快取,那麼在無網路的環境中,仍然通過快取的httpresponse瀏覽部分資料,實現離線閱讀。2.listview 效能優化 1 復用convertview 在geti...

Android效能優化

1.節制地使用service 如果應用程式當中需要使用service來執行後台任務的話,請一定要注意只有當任務正在執行的時候才應該讓service執行起來。另外,當任務執行完之後去停止service的時候,要小心service停止失敗導致記憶體洩露的情況 2.當介面不可見時釋放記憶體 當使用者開啟另...

Android效能優化

本篇主要是對 google推出的效能優化典範 進行乙個通篇的整理 主要在於一些具體的優化技巧 至於60fps 掉幀 gc 記憶體抖動 閾值 等等這些效能術語的概念裡面不做多概括,請自行查閱 本篇從以下幾點延伸擴充套件 systrace systrace 在android ddms 裡自帶,可以用來跟...