你不知道的:開發者選項

b10l07發表於2017-07-21

本文章轉載於搜狗測試

一、你不知道的:除錯GPU過度繪製(Debug GPU overdraw)

(1)什麼是Overdraw?

Overdraw就是過度繪製,是指在一幀的時間內(16.67ms)畫素被繪製了多次,正確的繪製方式應該是一個畫素每次只繪製一次,由於重疊佈局導致一些畫素會被多次繪製,每次繪製都會佔用CPU,當繪製操作超時時,就會出現卡頓現象。

(2)如何開啟工具?

Android系統為測試人員提供了一個簡單的檢測工具,如下圖所示:

5432903-fc271a50433328d7

該功能會用幾種不同的顏色繪製螢幕,來標識overdraw發生的位置以及程度如何,各種顏色的意義如下:

原色: 意味著沒有overdraw。畫素只畫了一次。

藍色: 意味著overdraw 1倍。畫素繪製了兩次。大片的藍色還是可以接受的(若整個視窗是藍色的,可以擺脫一層)。

綠色: 意味著overdraw 2倍。畫素繪製了三次。中等大小的綠色區域是可以接受的但你應該嘗試優化、減少它們。

淺紅: 意味著overdraw 3倍。畫素繪製了四次,小範圍可以接受。

暗紅: 意味著overdraw 4倍。畫素繪製了五次或者更多。這是錯誤的,要修復它們。

(3)哪裡用得到?

小編之前是測試新聞型別APP的,需要關注新聞列表滾動時的流暢度,使用者需要重複滾動一個列表從而達到獲取新聞的需求,之前不知道原因時都是提交這樣的BUG:“某新聞頻道列表出現卡頓”但是後來知道原因後就提交這樣的BUG:“由於過度繪製原因導致某新聞頻道列表出現卡頓”直接告訴開發原因在哪裡,是不是成就感倍增呢,我們來看下例項圖:

優化之前:

5432903-471dd74316fe5748

優化之後:

5432903-1023463496b6d4bb

二、你不知道的:不保留活動(Don’t keep activities)

(1)什麼是Activity?

Activity是為使用者提供視覺化介面並可以與使用者互動的元件。

(2)如何開啟?

當然也是在開發者選項中,如下圖:

5432903-b2f398f9564010db

(3)哪裡用的到?

小記憶體手機測試:當你從Activity A跳轉到Activity B時,Activity A就會被立即銷燬,這一般用來模擬裝置記憶體不足時後臺Activity被銷燬的場景

相容不同ROM:ROM版本繁多各大廠商在形成自己系統風格過程中,也會對Activity管理方式做改動,會銷燬不使用的Activity,我們來看下例項圖:

5432903-654b32300fff4816


細心的同學會發現Activity B返回Activity A時,Activity A重新建立了,同時造成了UI顯示異常。

相關文章