Android 開發者選項詳述

Qisen Tang發表於2016-07-04

本文列舉了常用的 Android 開發者選項,瞭解和熟練使用這些開發者選項,能夠幫助我們定位開發中遇到的問題,輔助我們瞭解應用的效能問題,對提升開發和優化效率大有幫助。

1. Stay awake (不鎖定螢幕)

使用場景:在使用 USB 進行除錯的時候,經常除錯一段時間後,想在手機上進行下一步操作,突然發現手機就黑屏,需要解鎖。

使用說明:除錯時螢幕一直常亮,媽媽再也不用擔心除錯的時候,黑屏啦!

2. Process Stats (程式統計資訊)

process stats

使用場景: 檢視後臺程式和資源佔用,以圖形的方式展示了後臺執行的程式,以及相應的執行時間和記憶體佔用。

使用說明: 如圖,左上角是指其統計的時間範圍,而其下面的條形區域的進度顏色則顯示了當前記憶體使用的情況,綠色表示處於正常範圍,黃色則表示有些緊張,紅色則是告急狀態。再下面的列表區域則顯示了當前執行的程式,右上方的百分比標明其在這段時間內執行的相對時間,100% 就表示其在這段時間內都在執行。點選進入,能夠看到起記憶體佔用詳細資訊。

process detail

在圖中,分別顯示了記憶體(RAM)佔用情況,以及執行的 Services 列表。

這些資訊也可以通過 adb 來檢視,相應的命令如下:

adb shell dumpsys activity (ActivityManager 系統服務的相關資訊,這些資訊包括 Activity,Broadcast,Service 和 ContentProvider)

adb shell dumpsys meminfo (記憶體使用資訊)

adb shell dumpsys procstats –hours 3 (檢視過去 3 小時內,程式的使用情況)

更多資訊參考 連結

3. Wait for debugger & Select debug app (等待偵錯程式 和 選擇除錯應用)

使用場景: 遇到一些需要開啟 APP 急需 Debug 的情況,或者需要除錯 APP 啟動崩潰時。這時候通常來不急掛載斷點,App 程式就崩潰了。

使用說明: 在 Select debug app 選擇開發 APP,並勾選 Wait for debugger, 然後再啟動應用。

wait for debugger

4. Show touches & Pointer location (顯示觸控操作 和 指標位置)

使用場景: 在檢視 view 點選區域,或者檢視觸控手勢時,需要對點選位置和操作進行相應的檢視。

使用說明: show touches 顯示了觸控位置,Pointer location 則顯示了觸控手勢。

5. Animation scale (動畫程式時長縮放)

使用場景: 除錯複雜動畫,可以放慢動畫效果,以便仔細觀察和除錯動畫。

使用說明: 開啟後,選擇相應的縮放比,就能明顯感知。

6. Show layout bounds (顯示佈局邊界)

使用場景: 檢視 view 的區域,以及相應的 margin 和 padding.

使用說明: 開啟後就能看到效果.

layout bounds

7. Debug GPU OverDraw (除錯 GPU 過度繪製)

先來看看什麼是過度繪製。我們在繪製介面的時候,往往會有多個層級,例如在一塊白色背景上繪製了一張圖片,但圖片下面遮住的白色背景是我們所看不到的,這一部分也是不需要繪製的,我們稱這種現象為 過度繪製。顯然,過度繪製造成了額外的工作,是我們應該儘可能地避免的問題。

over draw

使用場景: 檢視開發的 APP 是否存在很嚴重的過度繪製問題。

使用說明: 開啟後就能看到效果,選擇 Debug GPU OverDraw, 並勾選 Show overdraw areas。過度繪製根據額外繪製的層級數,分為藍(1x),黃(2x), 紅(3x), 深紅(4x+), 應該儘可能地使得我們的介面層級保持在藍色或者黃色。

8. Profile GPU rendering(GPU 呈現模式分析)

Profile GPU  Rendering

使用場景: 如我們所知,如果一陣的繪製時間超過了 16 ms,那麼使用者就能實際地感受到視覺上的差異,這也就是我們常說的卡頓。GPU 呈現模式能使得我們以圖形化的方式檢視繪製每一幀花費的時間,以及其是否超過 16 ms,在這種模式下,可以比較粗略地定位在那一塊操作比較卡頓。我們分析下圖片,圖片中有很多豎著的線,這些豎著的線表示一幀,其中豎線的每個顏色都表示著這一陣在繪製中的某個步驟,高度就是其花費的時間。上方的這個橫線,表示16ms,任何一根豎著的線都可以和 16ms 進行比較,如果其超過 16ms,那麼它的繪製時間就超過了建議的時間範圍,會造成介面卡頓。開發者可以通過檢視進行什麼操作會使得豎線高度飆升,來初步定位卡頓問題。

使用說明: 點選 Profile GPU rendering, 選擇 On screen as bars.

9. Don’t keep activities (不保留活動)

使用場景: 在實際的生產環境往往會觸發一些比 Debug 環境更為嚴苛的問題,這裡通常用來模擬記憶體受限,不可見 Activity 被回收的情況。在這種模式下,容易觸發一些不常見的崩潰,便於開發者提升應用的穩定性。

使用說明: 開啟 Don't keep activities 即可。

相關文章