Android 開發(fā)者選項
前面的小節(jié)我們介紹了應(yīng)用構(gòu)建相關(guān)的知識,從本小結(jié)我們學(xué)習(xí)應(yīng)用調(diào)試相關(guān)的知識,首先我們要學(xué)習(xí)下開發(fā)者選項。
1. 什么是開發(fā)者選項
Android 上的“設(shè)置”應(yīng)用包含一個名為開發(fā)者選項的界面,我們可以使用該屏幕配置一些系統(tǒng)行為來幫助我們分析和調(diào)試應(yīng)用性能。例如,我們可以啟用 USB 調(diào)試、捕獲錯誤報告、啟用點按的視覺反饋、在窗口 surface 更新時刷寫 surface、使用 GPU 渲染 2D 圖形,等等。
Tips:開發(fā)者選項列表可能會因 Android 版本而異
1.1 啟用開發(fā)者選項和 USB 調(diào)試
在 Android 4.1 及更低版本上,開發(fā)者選項界面在默認(rèn)情況下處于啟用狀態(tài)。在 Android 4.2 及更高版本上,我們必須啟用此屏幕。要啟用開發(fā)者選項,請點按版本號選項 7 次。我們可以在以下位置之一找到此選項,具體取決于我們的 Android 版本:
-
Android 9(API 級別 28)及更高版本:設(shè)置 > 關(guān)于手機(jī) > 版本號。
-
Android 8.0.0(API 級別 26)和 Android 8.1.0(API 級別 26):設(shè)置 > 系統(tǒng) > 關(guān)于手機(jī) > 版本號。
-
Android 7.1(API 級別 25)及更低版本:設(shè)置 > 關(guān)于手機(jī) > 版本號。
在開發(fā)者選項屏幕頂部,我們可以開啟或關(guān)閉這些選項。調(diào)試應(yīng)用時此設(shè)置需要處于開啟狀態(tài)。關(guān)閉后,除了那些不需要在設(shè)備與開發(fā)計算機(jī)之間通信的選項外,大部分選項都會被停用。
我們需要先啟用 USB 調(diào)試,以便 Android Studio 和其他 SDK 工具能夠在設(shè)備通過 USB 連接時識別設(shè)備,然后才能使用調(diào)試程序和其他工具。要啟用 USB 調(diào)試,請在開發(fā)者選項菜單中開啟 USB 調(diào)試選項。我們可以在以下位置之一找到此選項,具體取決于我們的 Android 版本:
-
Android 9(API 級別 28)及更高版本:設(shè)置 > 系統(tǒng) > 高級 > 開發(fā)者選項 > USB 調(diào)試。
-
Android 8.0.0(API 級別 26)和 Android 8.1.0(API 級別 26):設(shè)置 > 系統(tǒng) > 開發(fā)者選項 > USB 調(diào)試。
-
Android 7.1(API 級別 25)及更低版本:設(shè)置 > 開發(fā)者選項 > USB 調(diào)試。
2. 常用選項
開發(fā)者選項中包含很多有助于應(yīng)用調(diào)試的選項,下面我們學(xué)習(xí)日常開發(fā)中最常用的一些。
2.1 調(diào)試
調(diào)試選項提供了配置設(shè)備端調(diào)試以及在設(shè)備與開發(fā)計算機(jī)之間建立通信的方式。
我們可以啟用 USB 調(diào)試,以便 Android 設(shè)備可以通過 Android 調(diào)試橋 (adb) 與開發(fā)機(jī)器通信。等待調(diào)試程序選項僅在我們使用選擇調(diào)試應(yīng)用選擇要調(diào)試的應(yīng)用后才可用。如果我們啟用等待調(diào)試程序,選定的應(yīng)用會先等待調(diào)試程序連接后才會執(zhí)行操作。
其他調(diào)試選項包括:
-
在設(shè)備上永久存儲日志記錄器數(shù)據(jù):選擇要在設(shè)備上永久存儲的日志消息類型。選項包括“關(guān)閉”、“全部”、“所有非無線電”和“僅限內(nèi)核”。
-
選擇模擬位置信息應(yīng)用:使用此選項可以模擬設(shè)備的 GPS 位置,以測試我們的應(yīng)用在其他位置時行為是否相同。要使用此選項,請下載并安裝 GPS 模擬位置應(yīng)用。
-
啟用視圖屬性檢查功能:將視圖屬性信息保存在 View 實例的 mAttributes 成員變量中,以便將這些信息用于調(diào)試。我們可以通過 Layout Inspector 界面訪問屬性信息(如果不啟用此選項,“屬性”項將不可用)。
-
啟用 GPU 調(diào)試層:在運行 Android 9(API 級別 28)及更高版本的設(shè)備上可用,啟用此選項可允許從本地設(shè)備存儲加載 Vulkan 驗證層。
2.2 網(wǎng)絡(luò)
網(wǎng)絡(luò)選項提供了配置 WLAN 和 DHCP 設(shè)置的方式。
點按選擇 USB 配置可以指定我們希望計算機(jī)如何識別設(shè)備。 如圖 5 所示,我們可以將設(shè)備配置為僅限充電、傳輸文件 (MTP)、傳輸照片 (PTP)、在 PC 上使用我們的移動互聯(lián)網(wǎng) (RNDIS),或者傳輸音頻或 MIDI 文件。
點按藍(lán)牙 AVRCP 版本,然后選擇要用來控制我們的設(shè)備有權(quán)訪問的所有藍(lán)牙 A/V 設(shè)備的配置文件版本。 此外,要微調(diào)設(shè)備上的音頻播放功能,請點按并設(shè)置以下選項:
-
藍(lán)牙音頻編解碼器:選擇某個編解碼器來調(diào)整設(shè)備的音質(zhì)。
-
藍(lán)牙音頻采樣范圍:通過選擇音頻編解碼器采樣率來調(diào)整每秒音頻樣本數(shù)量。采樣率越高,使用的資源越多。
-
藍(lán)牙音頻每樣本位數(shù):設(shè)置每個音頻樣本中信息的位數(shù)。比特率越高,音質(zhì)越好,但樣本文件越大。
-
藍(lán)牙音頻聲道模式:選擇單聲道或立體聲。
-
藍(lán)牙音頻 LDAC 編解碼器:優(yōu)化聲音以提高音質(zhì),平衡音頻和連接質(zhì)量,提高連接質(zhì)量,或者使用自適應(yīng)比特率平衡音頻和連接質(zhì)量。
以下列表介紹了配置 WLAN 和 DHCP 設(shè)置的其他方式:
-
無線顯示認(rèn)證:啟用高級配置控件和設(shè)置,按照“WLAN 聯(lián)盟 WLAN 顯示規(guī)范”中明確規(guī)定的規(guī)范進(jìn)行無線顯示認(rèn)證。此認(rèn)證適用于 Android 4.4(API 級別 19)及更高版本。
-
啟用 WLAN 詳細(xì)日志記錄功能:根據(jù)我們連接到的每個無線網(wǎng)絡(luò) (SSID) 的相對接收信號強度 (RSSI) 提高其 WLAN 日志記錄水平。
-
主動從 WLAN 網(wǎng)絡(luò)切換到移動數(shù)據(jù)網(wǎng)絡(luò):當(dāng)信號較弱時,讓 WLAN 更高效地將數(shù)據(jù)連接移交給移動數(shù)據(jù)網(wǎng)絡(luò)。
2.3 輸入
啟用顯示點按操作反饋可以在我們輕觸屏幕時顯示點按操作反饋。手指或觸控筆下會出現(xiàn)一個圓圈,這個圓圈會跟著我們在屏幕上移動。當(dāng)我們在設(shè)備上錄制視頻時,點按的作用就像指針一樣。
啟用指針位置可以用十字準(zhǔn)線在設(shè)備上顯示指針(點按)位置。 屏幕頂部會顯示一個條形,用于跟蹤十字準(zhǔn)線坐標(biāo)。在我們移動指針時,該條形中的坐標(biāo)會跟蹤十字準(zhǔn)線位置,且屏幕上會繪制出指針路徑。
2.4 繪制
繪制選項提供了有關(guān)應(yīng)用界面及其操作方式的視覺提示。
啟用顯示布局邊界可以顯示應(yīng)用的裁剪邊界、外邊距和設(shè)備上的其他界面結(jié)構(gòu)。
其他繪制選項包括:
-
強制使用從右到左的布局方向:強制屏幕布局方向為從右到左 (RTL) 或從左到右(默認(rèn)設(shè)置)。
-
窗口動畫縮放:設(shè)置窗口動畫播放速度,以便我們查看不同速度下的性能??s放越小,速度越快。
-
過渡動畫縮放:設(shè)置過渡動畫播放速度,以便我們查看不同速度下的性能??s放越小,速度越快。
-
模擬輔助顯示屏:以疊加層的形式在設(shè)備上創(chuàng)建輔助屏幕。 這在使用 Presentation API 支持其他屏幕時非常有用。
2.5 硬件加速渲染
借助硬件加速渲染選項,我們可以利用基于硬件的選項(如 GPU、硬件層和多重采樣抗鋸齒 (MSAA))針對目標(biāo)硬件平臺優(yōu)化應(yīng)用。
點按模擬顏色空間可以更改整個設(shè)備界面的配色方案。此設(shè)置下面的選項是指色盲類型。包括“已停用”(無模擬配色方案)、“全色盲”(黑色、白色和灰色)、“綠色弱視”(紅綠不分)、“紅色弱視”(紅綠不分)和“藍(lán)色弱視”(藍(lán)黃不分)。 其中“紅色弱視”是指紅綠色盲,紅色弱視;“綠色弱視”是指紅綠色盲,綠色弱視。
利用基于硬件的選項的一些其他方式包括:
-
設(shè)置 GPU 渲染程序:將默認(rèn)的 Open GL 圖形引擎更改為 Open GL Skia 圖形引擎。
-
強制進(jìn)行 GPU 渲染:如果應(yīng)用編寫時在默認(rèn)情況下不進(jìn)行 GPU 渲染,強制應(yīng)用使用 GPU 繪制 2D 圖形。
-
顯示 GPU 視圖更新:顯示使用 GPU 繪制的任何屏幕上的元素。
-
調(diào)試 GPU 過度繪制:顯示設(shè)備上的顏色編碼,以便我們可視化相同像素在同一幀中繪制的次數(shù)。可視化會顯示我們的應(yīng)用可能在哪里進(jìn)行了不必要的渲染。
-
調(diào)試非矩形剪裁操作:關(guān)閉畫布上的剪裁區(qū)域,創(chuàng)建非常規(guī)(非矩形)畫布區(qū)域。通常,剪裁區(qū)域不允許在圓形剪裁區(qū)域的邊界之外繪制任何圖形。
-
強制啟用 4x MSAA:在 Open GL ES 2.0 應(yīng)用中啟用多重采樣抗鋸齒 (MSAA)。
-
停用 HW 疊加層:通過使用硬件疊加層,在屏幕上顯示內(nèi)容的每個應(yīng)用將消耗更少的處理資源。如果不使用疊加層,應(yīng)用會共享視頻內(nèi)存且必須不斷地檢查沖突和剪裁區(qū)域才能渲染合適的圖像。檢查工作會消耗大量的處理資源。
2.6 媒體
啟用關(guān)閉 USB 音頻轉(zhuǎn)接可以停用自動路由到通過 USB 端口連接到計算機(jī)的外部音頻設(shè)備。 自動路由可能會干擾 USB 感知應(yīng)用。
2.7 監(jiān)控
監(jiān)控選項提供了有關(guān)應(yīng)用性能(如長時間的線程和 GPU 操作)的視覺信息。
依次點按 GPU 渲染模式分析和在屏幕上顯示為豎條,以豎條形式顯示 GPU 渲染模式分析。
2.8 應(yīng)用
應(yīng)用選項可以幫助我們了解應(yīng)用在目標(biāo)設(shè)備上的運行方式。
點按后臺進(jìn)程限制可以設(shè)置后臺一次能夠運行的進(jìn)程數(shù)量。
在測試過程中點按重置 ShortcutManager 速率限制,使后臺應(yīng)用可以繼續(xù)調(diào)用快捷鍵 API,直到再次達(dá)到速率限制。
啟用不保留 Activity 可以在用戶離開 Activity 的主視圖后立即銷毀該 Activity,從而延長電池續(xù)航時間。
3. 小結(jié)
本節(jié)課程我們主要學(xué)習(xí)了開發(fā)者選項。本節(jié)課程的重點如下:
- 掌握如何啟用開發(fā)者選項和 USB 調(diào)試;
- 掌握開發(fā)者選項中常用選項的含義。