Android優化(1)--佈局優化

手頭的項目預計在九月份的時候需要進行整理改版,進行比較大動作的整改。整體功能的優化可能要提上日程。嗯,所以需要對內部的優化工作做一個提前的設計和整理工作。大概想了想,優化的工作大致可分三方面:

1.佈局優化
2.設計模式的優化
3.代碼的優化

佈局的優化稍微簡單一些,主要是對一些,重複資源文件進行整理規劃。保證在承載layout的xml文件的時候儘可能的減小系統的開銷,保證流暢性;設計模式的優化,打算從網絡層,一些基本類型的適配器封裝方面着手;代碼的優化,感覺就比較繁瑣了,由於現在的這個版本,當初開發的週期非常的短,加上又是從別人手上接過來的,所以很多邏輯比較繁瑣,在後臺的小版本迭代過程中,也沒做大修改,至於導致的什麼內存泄露等等一些問題,需要在九月份的時候進行檢測修改!

今天就先對佈局優化方面一些技術做一些記錄。

一、過渡繪製問題

佈局的問題,最直觀的就是打開你的真機
開發者選項—>調試GPU過渡繪製
打開之後,會發現我們的手機變的花花綠綠的,還有淺藍色等等,下面是B站android客戶端的首頁繪製情況
這裏寫圖片描述

是不是很炫!炫的直晃寡人的狗眼!
這裏寫圖片描述

OK,那是否是過渡渲染了呢?請看下圖評測標準:

這裏寫圖片描述

藍色,淡綠,淡紅,深紅代表了4種不同程度的Overdraw情況,我們的目標就是儘量減少紅色Overdraw,看到更多的藍色區域。
產生的主要原因是:
1.不必要的背景顏色或背景圖片
2.被遮擋的不可見部分

既然知道了導致過渡繪製的問題,那接下來就需要實施優化的方案了。
1.減少不必要的背景繪製,主要是xml文件
2.設置window的背景爲空
3.安需顯示佔位背景圖資源

當然,主要造成過渡渲染的原因是,背景的疊加造成的,所以佈局的時候我們需要注意;還有一部分是我們自定義控件造成的,比如說drawRect()造成的重複繪製區域。
解決辦法可參考:https://github.com/udacity/ud825-render/tree/1.21_overlapping_cards

二、佈局的嵌套
其實佈局的嵌套也是過渡渲染問題,之所以把它單獨領出來說明,是因爲它涉及到的是我們寫佈局的習慣,看似簡單的佈局,當使用不同的控件組合實現之後,View的層級關係可能就發生了變化,就可能造成過度渲染問題。

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