Android性能優化前因後果總結

1、性能問題

2、致使問題緣由

一、人爲在ui線程中作了輕微的耗時操做,致使ui線程卡頓。

在onCreate中讀pref,解析json數據。html

二、layout過於複雜,沒法在16ms完成渲染。算法

ConstraintLayout纔是一個更高性能的消滅佈局層級的神器。ConstraintLayout 基於Cassowary算法,而Cassowary算法的優點是在於解決線性方程時有極高的效率,事實證實,線性方程組是很是適合用於定義用戶界面元素的參數。json

三、同一時間執行的動畫過多,致使CPU或者GPU負載太重。佈局

四、view過分繪製的問題。性能

手機設置裏面的開發者選項,打開Show GPU Overdraw的選項,輕鬆發現這些問題,而後儘可能往藍色靠近。優化

五、gc過多的問題。動畫

六、資源加載致使執行緩慢。ui

a、預加載,即尚未來到路徑以前,就提早加載好,誒,好像x5內核就是醬紫哦。線程

b、實在是要等到用到的時候加載,請給一個進度條,不要讓用戶乾等着,也不知道何時結束而形成很差的用戶體驗。cdn

七、工做線程優先級設置不對,致使和ui線程搶佔cpu時間。

八、靜態變量。

3、解決問題

一、GPU過分繪製,定位過分繪製區域

a、減小布局層級,使用ConstraintLayout替換傳統的佈局方式。

b、檢查是否有多餘的背景色設置。

六、json反序列化問題

json反序列化是指將json字符串轉變爲對象,這裏若是數據量比較多,特別是有至關多的string的時候,解析起來不只耗時,並且還很吃內存。解決的方式是:

a、精簡字段,與後臺協商,相關接口剔除沒必要要的字段。保證最小可用原則。

b、使用流解析,以前我考慮過json解析優化,在Stack Overflow上搜索到這個。因而瞭解到Gson.fromJson是能夠這樣玩的,能夠提高25%的解析效率。

七、viewStub & merge的使用。

tools:showIn=""屬性,就能夠正常展現preview了。

4、代碼建議

轉載:wetest.qq.com/lab/view/39…

相關文章
相關標籤/搜索