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