常用 Android 開發(fā)者選項(xiàng)詳述

本文列舉了常用的 Android 開發(fā)者選項(xiàng),了解和熟練使用這些開發(fā)者選項(xiàng),能夠幫助我們定位開發(fā)中遇到的問題,輔助我們了解應(yīng)用的性能問題,對(duì)提升開發(fā)和優(yōu)化效率大有幫助。

1. Stay awake (不鎖定屏幕)

使用場(chǎng)景:在使用 USB 進(jìn)行調(diào)試的時(shí)候,經(jīng)常調(diào)試一段時(shí)間后,想在手機(jī)上進(jìn)行下一步操作,突然發(fā)現(xiàn)手機(jī)就黑屏,需要解鎖。

使用說明:調(diào)試時(shí)屏幕一直常亮,媽媽再也不用擔(dān)心調(diào)試的時(shí)候,黑屏啦!

2. Process Stats (進(jìn)程統(tǒng)計(jì)信息)

process stats

使用場(chǎng)景: 查看后臺(tái)進(jìn)程和資源占用,以圖形的方式展示了后臺(tái)運(yùn)行的進(jìn)程,以及相應(yīng)的運(yùn)行時(shí)間和內(nèi)存占用。

使用說明: 如圖,左上角是指其統(tǒng)計(jì)的時(shí)間范圍,而其下面的條形區(qū)域的進(jìn)度顏色則顯示了當(dāng)前內(nèi)存使用的情況,綠色表示處于正常范圍,黃色則表示有些緊張,紅色則是告急狀態(tài)。再下面的列表區(qū)域則顯示了當(dāng)前運(yùn)行的進(jìn)程,右上方的百分比標(biāo)明其在這段時(shí)間內(nèi)運(yùn)行的相對(duì)時(shí)間,100% 就表示其在這段時(shí)間內(nèi)都在運(yùn)行。點(diǎn)擊進(jìn)入,能夠看到起內(nèi)存占用詳細(xì)信息。

process detail

在圖中,分別顯示了內(nèi)存(RAM)占用情況,以及運(yùn)行的 Services 列表。

這些信息也可以通過 adb 來查看,相應(yīng)的命令如下:

adb shell dumpsys activity (ActivityManager 系統(tǒng)服務(wù)的相關(guān)信息,這些信息包括 Activity,Broadcast,Service 和 ContentProvider)

adb shell dumpsys meminfo (內(nèi)存使用信息)

adb shell dumpsys procstats --hours 3 (查看過去 3 小時(shí)內(nèi),進(jìn)程的使用情況)

更多信息參考 鏈接

3. Wait for debugger & Select debug app (等待調(diào)試器 和 選擇調(diào)試應(yīng)用)

使用場(chǎng)景: 遇到一些需要開啟 APP 急需 Debug 的情況,或者需要調(diào)試 APP 啟動(dòng)崩潰時(shí)。這時(shí)候通常來不急掛載斷點(diǎn),App 進(jìn)程就崩潰了。

使用說明: 在 Select debug app 選擇開發(fā) APP,并勾選 Wait for debugger, 然后再啟動(dòng)應(yīng)用。

wait for debugger

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

使用場(chǎng)景: 在查看 view 點(diǎn)擊區(qū)域,或者查看觸摸手勢(shì)時(shí),需要對(duì)點(diǎn)擊位置和操作進(jìn)行相應(yīng)的查看。

使用說明: show touches 顯示了觸摸位置,Pointer location 則顯示了觸摸手勢(shì)。

5. Animation scale (動(dòng)畫程序時(shí)長(zhǎng)縮放)

使用場(chǎng)景: 調(diào)試復(fù)雜動(dòng)畫,可以放慢動(dòng)畫效果,以便仔細(xì)觀察和調(diào)試動(dòng)畫。

使用說明: 開啟后,選擇相應(yīng)的縮放比,就能明顯感知。

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

使用場(chǎng)景: 查看 view 的區(qū)域,以及相應(yīng)的 margin 和 padding.

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

layout bounds

7. Debug GPU OverDraw (調(diào)試 GPU 過度繪制)

先來看看什么是過度繪制。我們?cè)诶L制界面的時(shí)候,往往會(huì)有多個(gè)層級(jí),例如在一塊白色背景上繪制了一張圖片,但圖片下面遮住的白色背景是我們所看不到的,這一部分也是不需要繪制的,我們稱這種現(xiàn)象為 過度繪制。顯然,過度繪制造成了額外的工作,是我們應(yīng)該盡可能地避免的問題。

over draw

使用場(chǎng)景: 查看開發(fā)的 APP 是否存在很嚴(yán)重的過度繪制問題。

使用說明: 開啟后就能看到效果,選擇 Debug GPU OverDraw, 并勾選 Show overdraw areas。過度繪制根據(jù)額外繪制的層級(jí)數(shù),分為藍(lán)(1x),黃(2x), 紅(3x), 深紅(4x+), 應(yīng)該盡可能地使得我們的界面層級(jí)保持在藍(lán)色或者黃色。

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

Profile GPU Rendering

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

使用說明: 點(diǎn)擊 Profile GPU rendering, 選擇 On screen as bars.

9. Don't keep activities (不保留活動(dòng))

使用場(chǎng)景: 在實(shí)際的生產(chǎn)環(huán)境往往會(huì)觸發(fā)一些比 Debug 環(huán)境更為嚴(yán)苛的問題,這里通常用來模擬內(nèi)存受限,不可見 Activity 被回收的情況。在這種模式下,容易觸發(fā)一些不常見的崩潰,便于開發(fā)者提升應(yīng)用的穩(wěn)定性。

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


文檔信息


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容