Android 的「設定」應用程式包含「開發人員選項」畫面,您可以在此設定系統行為,方便分析應用程式效能並執行相關偵錯工作。舉例來說,您可以啟用 USB 偵錯功能、擷取錯誤報告、在輕觸時提供視覺回饋、在視窗更新時刷新介面、使用 GPU 算繪 2D 圖像等等。
啟用開發人員選項
在 Android 4.1 以下版本中,系統預設可使用「開發人員選項」畫面。在 Android 4.2 以上版本中,您必須啟用這個畫面。
注意:在某些裝置上,「開發人員選項」畫面的位置或名稱可能有所不同。
-
在裝置上找到「版本號碼」選項。下表列出各種裝置上「版本號碼」選項在設定中的位置:
裝置 設定 Google Pixel
「設定」>「關於手機」>「版本號碼」
Samsung Galaxy S8 以後的機型
「設定」>「關於手機」>「軟體資訊」>「版本號碼」
LG G6 以後的機型
「設定」>「關於手機」>「軟體資訊」>「版本號碼」
HTC U11 以後的機型
「設定」>「關於」>「軟體資訊」>「更多」>「版本號碼」,或者「設定」>「系統」>「關於手機」>「軟體資訊」>「更多」>「版本號碼」
OnePlus 5T 以後的機型
「設定」>「關於手機」>「版本號碼」
-
輕觸「版本號碼」選項七次,直到畫面上顯示
You are now a developer!
訊息。這樣就能在裝置上啟用開發人員選項。 返回上一個畫面,在底部找到「開發人員選項」。
如圖 1 所示,您可以在「開發人員選項」畫面頂端使用切換鈕啟用或停用這些選項。請將這個切換鈕保持開啟。如果此切換鈕設為關閉,除了不需在裝置與開發電腦之間通訊的選項外,大多數選項都會停用。
在裝置上啟用 USB 偵錯功能
開始使用偵錯等工具前,您需要啟用 USB 偵錯功能,才能讓 Android Studio 和其他 SDK 工具辨識以 USB 連接的裝置。
在裝置系統設定中,啟用「開發人員選項」下的「USB 偵錯」。這個選項的位置會因 Android 版本而異:
- Android 9 (API 級別 28) 以上版本:「設定」>「系統」>「進階」>「開發人員選項」>「USB 偵錯」
- Android 8.0.0 (API 級別 26) 和 Android 8.1.0 (API 級別 27):「設定」>「系統」>「開發人員選項」>「USB 偵錯」
- 在 Android 7.1 (API 等級 25) 以下版本:「設定」>「開發人員選項」>「USB 偵錯」
一般選項
輕觸「開發人員快速設定方塊」,即可將所選開發人員選項加入「快速設定」面板。
選取一或多個可用的設定方塊 (如圖 2 所示) 後,請開啟「快速設定」面板並輕觸鉛筆圖示,進入編輯模式。接著將開發人員設定方塊從設定方塊窗格拖曳到「快速設定」面板中,然後再次輕觸鉛筆圖示,就能退出編輯模式。
其他一般選項包括:
- 記憶體:顯示記憶體統計資料,例如記憶體平均用量、記憶體效能、記憶體總量、目前可用的記憶體容量,以及應用程式的記憶體用量。
- 取得錯誤報告:取得目前裝置的記錄檔,方便和他人分享。收到錯誤報告準備就緒的通知後,輕觸通知即可分享。
- 系統 UI 示範模式:顯示一般的預設通知列,但不顯示通知或低電量警示,方便擷取乾淨的螢幕截圖。開啟「啟用示範模式」後,即可使用
adb
示範模式指令變更狀態列外觀。您也可以開啟「顯示示範模式」,隱藏通知並顯示預設狀態列。 - 電腦備份密碼:設定備份密碼,即可在密碼保護下使用
adb
指令備份及還原裝置應用程式和資料。 - 保持啟用:將裝置設為在充電時不鎖定螢幕。
- 啟用藍牙主機控制器介面 (HCI) 窺探記錄:使用儲存在
/sdcard/btsnoop_hci.log
的檔案擷取所有藍牙 HCI 封包。您可以擷取封包,然後利用 Wireshark 等程式分析資訊並排解其中問題。
偵錯
透過偵錯選項,您可以設定裝置端偵錯功能,並建立裝置與開發電腦之間的通訊。
啟用 USB 偵錯功能 (如圖 3 所示) 後,Android 裝置即可透過 Android Debug Bridge (ADB) 與開發機器通訊。您必須先以「選取偵錯應用程式」選取要偵錯的應用程式,才能使用「等待偵錯工具」選項。一旦啟用「等待偵錯工具」,所選應用程式就會等到偵錯工具附加完成後才執行。
其他偵錯選項包括:
- 在裝置上永久儲存記錄器資料:選擇要在裝置永久儲存的記錄訊息類型。選項包括「關閉」、「全部」、「無線電以外」和「僅限核心」。
- 選取模擬位置應用程式:使用此選項即可假造裝置的 GPS 位置,測試應用程式在其他地區的運作行為是否相同。如果要使用此選項,請下載並安裝全球衛星定位系統模擬位置應用程式。
- 啟用檢視屬性檢查:使用
View
例項的mAttributes
成員變數儲存檢視屬性資訊,方便用來偵錯。您可以透過版面配置檢查器使用者介面存取屬性資訊,如圖 4 所示。如未啟用這個選項,就無法取得「屬性」項目。 - 啟用 GPU 偵錯圖層:適用於搭載 Android 9 (API 級別 28) 以上版本的裝置。啟用這個選項後,就能從本機裝置儲存空間載入 Vulkan 驗證層。詳情請參閱「Android 上的 Vulkan 驗證層」。
網路
網路選項提供多種設定 Wi-Fi 及 DHCP 的方法。
輕觸「Select USB Configuration」,指定電腦辨識裝置的方式。如圖 5 所示,您可以將裝置設定為僅供充電、傳輸檔案 (MTP)、傳輸圖片 (PTP)、在電腦使用行動網際網路 (RNDIS),或是傳輸音訊/MIDI 檔案。
輕觸「藍牙 AVRCP 版本」後,就能選取所需的設定檔版本,用於控管裝置有權存取的藍牙 A/V 設備。
此外,如要詳細調整在裝置上播放音訊的方式,請輕觸並設定下列選項:
- 藍牙音訊轉碼器:選擇以下任一種轉碼器,即可調整裝置音質 (轉碼器):
- SBC:將資料傳輸到藍牙音訊輸出裝置,例如耳機和喇叭。
- AAC:以相近的位元率,透過有線裝置提供優於 MP3 的音質。
- aptX:透過高品質智慧型手機、喇叭、單件式環繞劇院、耳機和平板電腦,以無線方式傳輸音訊。
- aptX HD:運用高解析度串流技術,將音訊傳輸至藍牙裝置。
- LDAC:透過無線連線提供優質的音樂聆聽體驗。
- 啟用選用的轉碼器和停用選用的轉碼器:如果已安裝其他轉碼器實作項目,可以使用這些選項啟用及停用轉碼器。
- 藍牙音訊樣本範圍:選擇音訊轉碼器取樣率,調整每秒的音訊樣本數。取樣率越高,使用的資源就越多。
- 藍牙音訊每單位樣本位元數:設定每個音訊樣本的資訊位元數。位元率越高,音質更好,但取樣檔案會比較大。
- 藍牙音訊聲道模式:選取單聲道或立體聲。
- 藍牙音訊 LDAC 轉碼器:對音效做出最佳化處理,進而提升音質、平衡音訊與連線品質、增進連線品質,或者採用自動調整的位元率來平衡音訊及連線品質。
以下清單說明其他設定 Wi-Fi 和 DHCP 的方式:
- 無線螢幕分享認證:依據 Wi-Fi 聯盟制定的 Wi-Fi 螢幕分享規格,啟用無線螢幕分享認證的進階控制選項和設定。
- 啟用 Wi‑Fi 詳細記錄設定:根據所連上每個無線網路 (SSID) 的相對接收信號強度 (RSSI),提升該網路的 Wi-Fi 記錄等級。若想進一步瞭解記錄,請參閱使用 Logcat 撰寫和檢視記錄。
- Wi-Fi 至行動數據轉換強化:如果信號低落,此選項可把數據連線交給行動網路,藉此加強 Wi-Fi 效率。
輸入
啟用「顯示觸控回應」,即可在輕觸螢幕時標示輕觸的位置。系統會在手指或觸控筆的位置顯示圓圈,如果您輕觸螢幕的其他地方,圓圈也會隨之移動。在裝置上錄製影片時,輕觸的效果就像指標。
啟用「指標位置」,即可在裝置上的指標 (輕觸) 位置顯示十字記號。如圖 6 所示,螢幕頂端會出現長條列,用於追蹤十字記號的座標。當您移動指標時,長條列中的座標會隨著十字記號的位置而改變,螢幕上也會畫出指標路徑。
繪圖
繪圖選項可提供應用程式使用者介面及運作方式的視覺提示。
啟用「顯示版面配置界限」,即可顯示應用程式的裁剪界線、邊界,以及裝置上的其他使用者介面結構,如圖 7 所示。
其他繪圖選項包括:
- 強制使用從右至左版面配置方向:強制將螢幕版面配置方向設為從右到左 (RTL) 或從左到右 (預設)。
- 視窗動畫比例:設定視窗動畫播放速度,您就能以不同速度檢查效能。尺寸越小,速度越快。
- 轉場動畫比例:設定轉場動畫播放速度,方便您以不同速度檢查效能。尺寸越小,速度越快。
- 模擬次要顯示器:建立次要顯示器,作為裝置上的疊加畫面。使用
Presentation
API 支援其他顯示裝置時,此選項非常實用。詳情請參閱「次要顯示器」。
硬體加速轉譯
透過硬體加速轉譯選項,您可以運用 GPU、硬體層和多重取樣反鋸齒 (MSAA) 等硬體選項,針對目標硬體平台將應用程式最佳化。
輕觸「模擬色彩空間」即可變更整個裝置使用者介面的色彩配置。選項是以色盲類型命名,包括:
- 已停用 (沒有模擬的色彩配置)
- 全色盲 (限制色彩配置只包含黑色、白色和灰色)
- 綠色弱 (影響紅色和綠色的顯示方式)
- 紅色弱 (影響紅色和綠色的顯示方式)
- 藍色弱 (影響藍色和黃色的顯示方式)
如果在模擬色彩空間中擷取螢幕截圖,圖片會正常顯示未變更色彩配置的情況。
以下是運用硬體選項的其他方式:
- 設定 GPU 轉譯器:將預設的 OpenGL 圖形引擎變更為 OpenGL Skia 圖形引擎。
- 強制使用 GPU 轉譯:如果應用程式在編寫時未預設採用 GPU 轉譯,就強制應用程式以 GPU 進行 2D 繪圖。
- 顯示 GPU 畫面更新:顯示螢幕上使用 GPU 繪製的所有元素。
- 針對 GPU 過度繪製進行偵錯:在裝置上顯示色彩編碼,方便清楚辨認同一像素在相同影格中的繪製次數。經過視覺化之後,可以瞭解應用程式是否有額外進行不必要的轉譯。詳情請參閱以視覺化方式呈現 GPU 重複繪圖。
- 針對非矩形裁剪操作進行偵錯:關閉畫布裁剪區域,方便建立特別的 (非方形) 畫布區域。一般來說,剪裁區域會防止在圓形剪裁區域的邊界之外繪圖。
- 強制 4x MSAA:在 OpenGL ES 2.0 應用程式中啟用多重取樣反鋸齒 (MSAA) 功能。
- 停用硬體重疊圖層:停用硬體重疊圖層。請注意,若使用重疊圖層,在螢幕上顯示內容的應用程式就會占用較少處理效能。如果不使用重疊圖層,應用程式將共用視訊記憶體,而且必須持續檢查衝突和裁剪情形,才能算繪適當圖像。檢查程序通常需耗費大量處理效能。
媒體
設定開啟「停用 USB 音訊路由」,這樣就不會自動路由到以 USB 連接埠連接電腦的外部音訊裝置。自動路由功能可能會干擾能偵測 USB 的應用程式。
在 Android 11 以上版本中,如果應用程式沒有 RECORD_AUDIO
權限,並使用 UsbManager
要求直接存取具備音訊擷取功能的 USB 音訊裝置 (例如 USB 耳機),畫面上會出現警示訊息,要求使用者確認授予裝置使用權限。系統會忽略所有「一律使用」選項,因此當應用程式要求存取權時,使用者每次都必須查看警示並授予權限。為了避免這個行為,應用程式應該要求 RECORD_AUDIO
權限。
監控
監控選項能以圖表呈現應用程式效能資訊,如長時間執行緒和 GPU 作業。
依序輕觸「剖析 GPU 轉譯」和「在螢幕上顯示長條圖」,就能以長條圖顯示 GPU 轉譯分析資料,如圖 9 所示。詳情請參閱「剖析 GPU 轉譯速度」。
應用程式
透過應用程式選項,您可以瞭解應用程式在目標裝置上的運作情形。
輕觸「背景程序限制」,即可設定一次能在背景執行多少程序。可能使用的設定如圖 10 所示。
在測試期間輕觸「Reset ShortcutManager rate-limiting」,讓背景應用程式可以繼續呼叫快捷 API,直到再度達到頻率限制為止。若要進一步瞭解快速指令和頻率限制,請參閱 ShortcutManager
。
啟用「Don't keep activities」可在使用者退出該活動的主要檢視畫面後立即刪除活動,藉此延長電池壽命。
如要在接下來的螢幕分享工作階段中,關閉敏感應用程式內容的系統保護功能,請輕觸「停用螢幕畫面分享防護」。此設定僅供示範或測試使用,不應做為永久設定。