那些年大家都在談論的Android性能優化

Android性能優化似乎是一個老生常談的問題,但我似乎只是一個新生。我不能像老生那樣告訴你N多的優化方法。從去年畢業一直到現在,大大小小的項目也寫了三個了。第一個是實習的時候自己一個人搞的,服務器帶客戶端。然後後兩個是畢業後來新公司和一個同事一起搞的,已經上線了,也都在更新維護。
那我也來談談如何進行優化?好像並不能。老闆需要的是速成,優化有卵用,還不如在大更一個版本。但事實好像並不是這樣的,用戶鋪天蓋地的反饋都證明了這樣做出來的app體驗不好。寫這篇博客我所想做的和我要說明的是,作爲一個不是老生的新生,我們該怎麼去在性能優化的道路上摸索前進。

WHAT?什麼是性能問題?

在性能測試中存在兩個概念:

(1). 響應時間

指從用戶操作開始到系統給用戶以正確反饋的時間。一般包括邏輯處理時間 + 網絡傳輸時間 + 展現時間。對於非網絡類應用不包括網絡傳輸時間。
展現時間即網頁或 App 界面渲染時間。
響應時間是用戶對性能最直接的感受。

(2). TPS(Transaction Per Second)

TPS爲每秒處理的事務數,是系統吞吐量的指標,在搜索系統中也用QPS(Query Per Second)衡量。TPS一般與響應時間反相關。
通常所說的性能問題就是指響應時間過長、系統吞吐量過低。
對後臺開發來說,也常將高併發下內存泄漏歸爲性能問題。
對移動開發來說,性能問題還包括電量、內存使用這兩類較特殊情況。

HOW?怎樣去進行性能優化?

明白了何爲性能問題之後,就能明白性能優化實際就是優化系統的響應時間,提高TPS。優化響應時間,提高TPS。方式不外乎這三大類:

(1) 降低執行時間

又包括幾小類

a. 利用多線程併發或分佈式提高 TPS
b. 緩存(包括對象緩存、IO 緩存、網絡緩存等)
c. 數據結構和算法優化
d. 性能更優的底層接口調用,如 JNI 實現
e. 邏輯優化
f. 需求優化

(2) 同步改異步,利用多線程提高TPS

(3) 提前或延遲操作,錯峯提高TPS

WHERE?Android中的性能問題常出現在哪裏?

(1)UI中的性能問題

a.佈局
b.繪製

(2)內存中的性能問題

a.內存泄露
b.響應速度
c.listview
d.OOM
e.對象的內存佔用過大以及不能重複利用
f.bitmap加載

(3)關於電量的性能問題

(4)關於網絡的性能問題

納尼?

其實這些都是那些老生總結過的經驗,雖然有些拿來主義,但是憑我現在的水平好像也總結不出花來。那要這篇博客何用?不急不急,這只是開胃菜而已。在以後的博客當中,我會就Android中經常出現性能問題,去一步一步提升我做過的項目的性能。
其實每個人都在成爲大神的路上,只不過有的人在走,而有的人在跑。不急不躁,腳踏實地,我們也可以————致不是老生的新生

發佈了40 篇原創文章 · 獲贊 143 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章