Android 調試橋

Android 調試橋

Android 調試橋 (adb) 是一個通用命令行工具,其允許您與模擬器實例或連接的 Android 設備進行通信。它可為各種設備操作提供便利,如安裝和調試應用,并提供對 Unix shell(可用來在模擬器或連接的設備上運行各種命令)的訪問。該工具作為一個客戶端-服務器程序,包括三個組件:

客戶端,該組件發送命令。客戶端在開發計算機上運行。您可以通過發出 adb 命令從命令行終端調用客戶端。

后臺程序,該組件在設備上運行命令。后臺程序在每個模擬器或設備實例上作為后臺進程運行。

服務器,該組件管理客戶端和后臺程序之間的通信。服務器在開發計算機上作為后臺進程運行。

您可以在?android_sdk/platform-tools/?中找到?adb?工具。

adb 的工作方式

啟動一個 adb 客戶端時,此客戶端首先檢查是否有已運行的 adb 服務器進程。如果沒有,它將啟動服務器進程。當服務器啟動時,它與本地 TCP 端口 5037 綁定,并偵聽從 adb 客戶端發送的命令—所有 adb 客戶端均使用端口 5037 與 adb 服務器通信。

然后,服務器設置與所有運行的模擬器/設備實例的連接。它通過掃描 5555 到 5585 之間(模擬器/設備使用的范圍)的奇數號端口查找模擬器/設備實例。服務器一旦發現 adb 后臺程序,它將設置與該端口的連接。請注意,每個模擬器/設備實例將獲取一對按順序排列的端口 — 用于控制臺連接的偶數號端口和用于 adb 連接的奇數號端口。例如:

模擬器 1,控制臺:5554

模擬器 1,adb:5555

模擬器 2,控制臺:5556

模擬器 2,adb:5557

以此類推...

如上所示,在端口 5555 與 adb 連接的模擬器實例與偵聽端口 5554 的控制臺的實例相同。

當服務器已設置與所有模擬器實例的連接后,您可以使用 adb 命令訪問這些實例。由于服務器管理與模擬器/設備實例的連接,并處理來自多個 adb 客戶端的命令,因此,您可以從任意客戶端(或從某個腳本)控制任意模擬器/設備實例。

在您的設備上啟用 adb 調試

要在通過 USB 連接的設備上使用 adb,您必須在設備系統設置中啟用?USB debugging(位于?Developer options?下)。

在運行 Android 4.2 及更高版本的設備上,Developer options 屏幕默認情況下處于隱藏狀態。如需將其顯示出來,請轉到?Settings > About phone?并點按?Build number?七次。返回上一屏幕,在底部可以找到?Developer options

在某些設備上,Developer options 屏幕所在的位置或命名方式可能有所不同。

現在,您可以將設備與 USB 連接。可以從?android_sdk/platform-tools/?目錄執行?adb devices?來驗證設備是否連接。如果已連接,您將看到設備名稱以“設備”形式列示。

:當您連接運行 Android 4.2.2 或更高版本的設備時,系統將顯示一個對話框,詢問您是否接受允許在這臺計算機上調試的 RSA 密鑰。這種安全機制可以保護用戶設備,因為它可以確保只有在您能夠解鎖設備并確認對話框的情況下才能執行 USB 調試和其他 ADB 命令。

如需了解有關通過 USB 連接到設備的詳細信息,請參閱在硬件設備上運行應用

通過 WLAN 連接到設備

一般情況下,通過 USB 使用 adb。不過,也可以按照下面的說明通過 WLAN 使用它。

將 Android 設備和 adb 主計算機連接到這兩者都可以訪問的常用 WLAN 網絡。請注意,并非所有訪問點均適用;您可能需要使用已正確配置防火墻的訪問點以支持 adb 的訪問點。

注:如果您嘗試連接到 Android Wear 設備,則通過關閉與其連接的手機的藍牙強制將它連接到 WLAN。

使用 USB 電纜將設備連接到主計算機。

設置目標設備以偵聽端口 5555 上的 TCP/IP 連接。

$ adb tcpip 5555

從目標設備斷開 USB 電纜連接。

查找 Android 設備的 IP 地址。例如,在 Nexus 設備上,您可以通過訪問?Settings?>?About tablet(或?About phone) >?Status?>?IP address?查找 IP 地址。或者,在 Android Wear 設備上,您可以通過訪問?Settings?>?Wi-Fi Settings?>?Advanced?>?IP address?查找 IP 地址。

連接至設備,通過 IP 地址識別此設備。

$ adb connectdevice_ip_address

請確認您的主計算機已連接至目標設備:

$ adb devicesList of devices attacheddevice_ip_address:5555 device

現在,您可以開始操作了!

如果 adb 連接丟失:

請確保您的主機仍與您的 Android 設備連接到同一個 WLAN 網絡。

通過再次執行?adb connect?步驟重新連接。

如果無法連接,則重置 adb 主機:

adb kill-server

然后,從頭開始操作。

查詢設備

在發出 adb 命令之前,知道哪些模擬器/設備實例已連接到 adb 服務器會很有幫助。您可以使用?devices?命令生成已連接的模擬器/設備的列表:

adb devices

在響應時,adb 針對每個實例輸出此狀態信息:

序列號 — 一個由 adb 創建的字符串,用于通過其控制臺端口號唯一標識模擬器/設備實例。序列號的格式為?type-console-port。下面是一個序列號示例:emulator-5554

狀態 — 實例的連接狀態可為下列狀態之一:

offline?— 實例未連接到 adb 或不響應。

device?— 實例現在已連接到 adb 服務器。請注意,此狀態并不表示 Android 系統已完全啟動且可以運行,因為在此實例連接到 adb 時系統仍在啟動。不過,在啟動后,這將是模擬器/設備實例的正常運行狀態。

no device?— 未連接模擬器/設備。

輸出的格式類似如下:

List of devices attachedserial_numberstate

以下示例向您展示了?devices?命令及其輸出:

adb devicesList of devices attachedemulator-5554??deviceemulator-5556??deviceemulator-5558??device

將命令發送至特定設備

如果多個模擬器/設備實例正在運行,在發出 adb 命令時您必須指定一個目標實例。為此,請在命令中使用?-s?選項。以下是?-s?選項的用法:

adb -sserial_numbercommand

如上所示,您使用由 adb 分配的序列號為命令指定目標實例。您可使用?devices?命令獲取正在運行的模擬器/設備實例的序列號。例如:

adb -s emulator-5556 install helloWorld.apk

注意,如果在多個設備可用時您未指定目標模擬器/設備實例就發出命令,那么 adb 將生成一個錯誤。

如果您有多個設備可用(硬件或模擬設備),但只有一個設備是模擬器,則使用?-e?選項將命令發送至該模擬器。同樣,如果有多個設備,但只連接了一個硬件設備,則使用?-d?選項將命令發送至該硬件設備。

安裝應用

您可以使用 adb 從開發計算機復制應用,并將其安裝到模擬器/設備實例上。為此,請使用?install?命令。使用此命令,您必須指定您要安裝的 APK 文件的路徑:

adb installpath_to_apk

如需有關如何創建可在模擬器/設備實例上安裝的 APK 文件的詳細信息,請參閱構建和運行您的應用

請注意,如果使用 Android Studio,則無需直接使用 adb(或 aapt)在模擬器/設備上安裝您的應用。而是由 Android Studio 為您處理應用的打包和安裝。

設置端口轉發

您可以使用?forward?命令設置任意端口轉發 — 將對特定主機端口的請求轉發到模擬器/設備實例上的其他端口。下面向您介紹如何設置主機端口 6100 到模擬器/設備端口 7100 的轉發:

adb forward tcp:6100 tcp:7100

您也可以使用 adb 設置傳輸到指定的抽象 UNIX 網域套接字的轉發,如下所示:

adb forward tcp:6100 local:logd

將文件復制到設備/從設備復制文件

您可以使用 adb 命令?pull?和?push?將文件復制到模擬器/設備實例或從其中復制文件。與?install?命令不同(其僅將 APK 文件復制到特定位置),pull?和?push?命令允許您將任意目錄和文件復制到模擬器/設備實例中的任意位置。

模擬器或設備復制文件或目錄(及其子目錄),請使用

adb pullremotelocal

要將文件文件或目錄(及其子目錄)復制模擬器或設備,請使用

adb pushlocalremote

在上述命令中,local?和?remote?指的是開發計算機(本地)和模擬器/設備實例(遠程)上目標文件/目錄的路徑。例如:

adb push foo.txt /sdcard/foo.txt

停止 adb 服務器

在某些情況下,您可能需要終止 adb 服務器進程,然后重啟它以解決問題(例如,如果 adb 不響應命令)。

要停止 adb 服務器,請使用?adb kill-server?命令。然后,您可以通過發出任意其他 adb 命令重啟服務器。

adb 命令參考

您可以在開發計算機上從命令行發出 adb 命令,或通過腳本發出。用法如下:

adb [-d|-e|-sserial_number]command

如果只有一個模擬器在運行或只連接了一個設備,則默認情況下將 adb 命令發送至該設備。如果有多個模擬器在運行和/或連接了多個設備,您需要使用?-d、-e?或?-s?選項指定應向其發送命令的目標設備。

下表列出了所有支持的 adb 命令并解釋其含義和用法。

表 1.?可用的 adb 命令

類別命令說明注釋

目標設備-d將 adb 命令發送至唯一連接的 USB 設備。如果連接了多個 USB 設備,將返回錯誤。

-e將 adb 命令發送至唯一運行的模擬器實例。如果有多個模擬器實例在運行,將返回錯誤。

-s?serial_number將 adb 命令發送至以其 adb 分配的序列號命名的特定模擬器/設備實例(如“emulator-5556”)。請參閱將命令發送至特定模擬器/設備實例

常規devices輸出所有連接的模擬器/設備實例的列表。如需了解詳細信息,請參閱查詢模擬器/設備實例

help輸出支持的 adb 命令的列表。?

version輸出 adb 版本號。?

調試logcat?[option] [filter-specs]將日志數據輸出到屏幕。?

bugreport將?dumpsys、dumpstate?和?logcat?數據輸出到屏幕,以用于報告錯誤。?

jdwp輸出給定設備上可用的 JDWP 進程的列表。您可以使用?forward jdwp:pid?端口轉發規范以連接到特定的 JDWP 進程。例如:

adb forward tcp:8000 jdwp:472

jdb -attach localhost:8000

數據install?path_to_apk將 Android 應用(使用 APK 文件的完整路徑表示)推送到模擬器/設備。?

pull?remote?local從模擬器/設備實例將指定文件復制到開發計算機。?

push?local?remote從開發計算機將指定文件復制到模擬器/設備實例。?

端口和網絡連接forward?local?remote將來自指定本地端口的套接字連接轉發到模擬器/設備實例上的指定遠程端口。端口規范可使用以下架構:

tcp:port_number

local:unix_domain_socket_name

dev:character_device_name

jdwp:pid

ppp?tty[parm]...通過 USB 運行 PPP。

tty?— 用于 PPP 流的 tty。例如,dev:/dev/omap_csmi_ttyl。

[parm]...?— 零個或多個 PPP/PPPD 選項,如?defaultroute、local、notty等。

請注意,不得自動啟動 PPP 連接。

腳本get-serialno輸出 adb 實例序列號字符串。如需了解詳細信息,請參閱查詢模擬器/設備實例

get-state輸出模擬器/設備實例的 adb 狀態。

wait-for-device阻止執行,直至設備處于在線狀態,即直至此實例狀態為?device。您可以將此命令附加到其他 adb 命令,在此情況下,adb 在發出其他命令前將處于等待狀態,直至模擬器/設備實例已連接。下面是一個示例:

adb wait-for-device shell getprop

請注意,此命令不會使 adb 等待整個系統已完全啟動。因此,您不應將其追加到需要系統完全啟動的其他命令。例如,install?需要使用 Android 軟件包管理器,其僅在系統完全啟動后才可用。如下命令

adb wait-for-device install app.apk

在模擬器或設備實例連接到 adb 服務器時立即發出?install?命令,但 Android 系統還未完全啟動,因此,它將引發錯誤。

服務器start-server檢查 adb 服務器進程是否在運行,如果未運行則啟動它。?

kill-server終止 adb 服務器進程。?

Shellshell在目標模擬器/設備實例中啟動遠程 shell。如需了解詳細信息,請參閱發出 shell 命令

shell?shell_command在目標模擬器/設備實例中發出 shell 命令,然后退出遠程 shell。

發出 shell 命令

您可以使用?shell?命令通過 adb 發出設備命令,可以進入或不進入模擬器/設備實例上的 adb 遠程 shell。要在不進入遠程 shell 的情況下發出一個命令,請使用如下?shell?命令:

adb [-d|-e|-sserial_number] shellshell_command

或者,使用如下命令進入模擬器/設備實例上的遠程 shell:

adb [-d|-e|-sserial_number] shell

當您準備退出遠程 shell 時,按 Control + D 或輸入?exit。

shell 命令二進制文件存儲在模擬器或設備的文件系統中,其路徑為?/system/bin/。

調用 Activity Manager (am)

在 adb shell 中,您可以使用 Activity Manager (am) 工具發出命令以執行各種系統操作,如啟動 Activity、強行停止進程、廣播 intent、修改設備屏幕屬性及其他操作。在 shell 中,此語法為:

amcommand

您也可以直接從 adb 發出 Activity Manager 命令,無需進入遠程 shell。例如:

adb shell am start -a android.intent.action.VIEW

表 2.?可用的 Activity Manager 命令

命令說明

start [options]?intent啟動?intent?指定的?Activity

請參閱?intent 參數的規范

選項包括:

-D:啟用調試。

-W:等待啟動完成。

--start-profiler?file:啟動分析器并將結果發送到?file。

-P?file:類似于?--start-profiler,但當應用進入空閑狀態時分析停止。

-R?count:重復 Activity 啟動?count?次數。在每次重復前,將完成頂部 Activity。

-S:啟動 Activity 前強行停止目標應用。

--opengl-trace:啟用 OpenGL 函數的跟蹤。

--user?user_id?| current:指定要作為哪個用戶運行;如果未指定,則作為當前用戶運行。

startservice [options]?intent啟動?intent?指定的?Service

請參閱?intent 參數的規范

選項包括:

--user?user_id?| current:指定要作為哪個用戶運行;如果未指定,則作為當前用戶運行。

force-stop?package強行停止與?package(應用的包名稱)關聯的所有應用。

kill [options]?package終止與?package(應用的包名稱)關聯的所有進程。此命令僅終止可安全終止且不會影響用戶體驗的進程。

選項包括:

--user?user_id?| all | current:指定將終止其進程的用戶;如果未指定,則終止所有用戶的進程。

kill-all終止所有后臺進程。

broadcast [options]?intent發出廣播 intent。

請參閱?intent 參數的規范

選項包括:

[--user?user_id?| all | current]:指定要發送到的用戶;如果未指定,則發送到所有用戶。

instrument [options]?component使用?Instrumentation?實例啟動監控。通常,目標?component?是表單?test_package/runner_class。

選項包括:

-r:輸出原始結果(否則對?report_key_streamresult?進行解碼)。與?[-e perf true]?結合使用以生成性能測量的原始輸出。

-e?name?value:將參數?name?設為?value。對于測試運行器,通用表單為?-e?testrunner_flag?value[,value...]。

-p?file:將分析數據寫入?file。

-w:先等待儀器完成,然后再返回。測試運行器需要使用此選項。

--no-window-animation:運行時關閉窗口動畫。

--user?user_id?| current:指定儀器在哪個用戶中運行;如果未指定,則在當前用戶中運行。

profile start?process?file啟動?process?的分析器,將結果寫入?file。

profile stop?process停止?process?的分析器。

dumpheap [options]?process?file轉儲?process?的堆,寫入?file。

選項包括:

--user [user_id|current]:提供進程名稱時,指定要轉儲的進程用戶;如果未指定,則使用當前用戶。

-n:轉儲原生堆,而非托管堆。

set-debug-app [options]?package將應用?package?設為調試。

選項包括:

-w:應用啟動時等待調試程序。

--persistent:保留此值。

clear-debug-app使用?set-debug-app?清除以前針對調試用途設置的軟件包。

monitor [options]啟動對崩潰或 ANR 的監控。

選項包括:

--gdb:在崩潰/ANR 時在給定端口上啟動 gdbserv。

screen-compat {on|off}?package控制?package?的屏幕兼容性模式。

display-size [reset|widthxheight]替換模擬器/設備顯示尺寸。此命令對于在不同尺寸的屏幕上測試您的應用非常有用,它支持使用大屏設備模仿小屏幕分辨率(反之亦然)。

示例:

am display-size 1280x800

display-density?dpi替換模擬器/設備顯示密度。此命令對于在不同密度的屏幕上測試您的應用非常有用,它支持使用低密度屏幕在高密度環境環境上進行測試(反之亦然)。

示例:

am display-density 480

to-uri?intent將給定的 intent 規范以 URI 的形式輸出。

請參閱?intent 參數的規范

to-intent-uri?intent將給定的 intent 規范以?intent:URI 的形式輸出。

請參閱?intent 參數的規范

?

intent 參數的規范

調用軟件包管理器 (pm)

在 adb shell 中,您可以使用軟件包管理器 (pm) 工具發出命令,以對設備上安裝的應用軟件包進行操作和查詢。在 shell 中,此語法為:

pmcommand

您也可以直接從 adb 發出軟件包管理器命令,無需進入遠程 shell。例如:

adb shell pm uninstall com.example.MyApp

表 3.?可用的軟件包管理器命令。

命令說明

list packages [options]?filter輸出所有軟件包,或者,僅輸出包名稱包含?filter?中的文本的軟件包。

選項:

-f:查看它們的關聯文件。

-d:進行過濾以僅顯示已停用的軟件包。

-e:進行過濾以僅顯示已啟用的軟件包。

-s:進行過濾以僅顯示系統軟件包。

-3:進行過濾以僅顯示第三方軟件包。

-i:查看軟件包的安裝程序。

-u:也包括卸載的軟件包。

--user?user_id:要查詢的用戶空間。

list permission-groups輸出所有已知的權限組。

list permissions [options]?group輸出所有已知權限,或者,僅輸出?group?中的權限。

選項:

-g:按組加以組織。

-f:輸出所有信息。

-s:簡短摘要。

-d:僅列出危險權限。

-u:僅列出用戶將看到的權限。

list instrumentation [options]列出所有測試軟件包。

選項:

-f:列出用于測試軟件包的 APK 文件。

target_package:列出僅用于此應用的測試軟件包。

list features輸出系統的所有功能。

list libraries輸出當前設備支持的所有庫。

list users輸出系統上的所有用戶。

path?package輸出給定?package?的 APK 的路徑。

install [options]?path將軟件包(通過?path?指定)安裝到系統。

選項:

-l:安裝具有轉發鎖定功能的軟件包。

-r:重新安裝現有應用,保留其數據。

-t:允許安裝測試 APK。

-i?installer_package_name:指定安裝程序軟件包名稱。

-s:在共享的大容量存儲(如 sdcard)上安裝軟件包。

-f:在內部系統內存上安裝軟件包。

-d:允許版本代碼降級。

-g:授予應用清單中列出的所有權限。

uninstall [options]?package從系統中移除軟件包。

選項:

-k:移除軟件包后保留數據和緩存目錄。

clear?package刪除與軟件包關聯的所有數據。

enable?package_or_component啟用給定軟件包或組件(作為“package/class”寫入)。

disable?package_or_component停用給定軟件包或組件(作為“package/class”寫入)。

disable-user [options]?package_or_component選項:

--user?user_id:要停用的用戶。

grant?package_name?permission向應用授予權限。在運行 Android 6.0(API 級別 23)及更高版本的設備上,可以是應用清單中聲明的任何權限。在運行 Android 5.1(API 級別 22)和更低版本的設備上,必須是應用定義的可選權限。

revoke?package_name?permission從應用中撤銷權限。在運行 Android 6.0(API 級別 23)及更高版本的設備上,可以是應用清單中聲明的任何權限。在運行 Android 5.1(API 級別 22)和更低版本的設備上,必須是應用定義的可選權限。

set-install-location?location更改默認安裝位置。位置值:

0:自動—讓系統決定最佳位置。

1:內部—安裝在內部設備存儲上。

2:外部—安裝在外部介質上。

:此命令僅用于調試目的;使用此命令會導致應用中斷和其他意外行為。

get-install-location返回當前安裝位置。返回值:

0 [auto]:讓系統決定最佳位置。

1 [internal]:安裝在內部設備存儲上

2 [external]:安裝在外部介質上

set-permission-enforced?permission?[true|false]指定是否應強制執行給定的權限。

trim-caches?desired_free_space減少緩存文件以達到給定的可用空間。

create-user?user_name使用給定的?user_name?創建新用戶,輸出新用戶的標識符。

remove-user?user_id移除具有給定的?user_id?的用戶,刪除與該用戶關聯的所有數據。

get-max-users輸出設備支持的最大用戶數。

進行屏幕截圖

screencap?命令是一個用于對設備顯示屏進行屏幕截圖的 shell 實用程序。在 shell 中,此語法為:

screencapfilename

要從命令行使用?screencap,請輸入以下命令:

$ adb shell screencap /sdcard/screen.png

以下屏幕截圖會話示例向您展示使用 adb shell 捕獲屏幕截圖,并使用?pull?命令從設備下載此文件:

$ adb shell

shell@ $ screencap

/sdcard/screen.png

shell@ $

exit

$ adb pull

/sdcard/screen.png

錄制視頻

screenrecord?命令是一個用于錄制設備(運行 Android 4.4(API 級別 19)及更高版本)顯示屏的 shell 實用程序。此實用程序將屏幕 Activity 錄制到 MPEG-4 文件。

:音頻不與視頻文件一起錄制。

開發者可以使用此文件創建宣傳視頻或培訓視頻。在 shell 中,此語法為:

screenrecord [options]filename

要從命令行使用?screenrecord,請輸入以下命令:

$ adb shell screenrecord /sdcard/demo.mp4

按 Control + C 停止屏幕錄制,否則,到三分鐘或?--time-limit?設置的時間限制時,錄制將自動停止。

要開始錄制設備屏幕,請運行?screenrecord?命令以錄制視頻。然后,運行?pull?命令從設備將此視頻下載到主計算機。下面是一個錄制會話示例:

$ adb shell

shell@ $ screenrecord

--verbose /sdcard/demo.mp4

(press Control + C to stop)

shell@ $

exit

$ adb pull

/sdcard/demo.mp4

screenrecord?實用程序可以任何支持的分辨率和所需的比特率進行錄制,同時保留設備顯示屏的縱橫比。默認情況下,此實用程序以原生顯示分辨率和屏幕方向進行錄制,最大時長為三分鐘。

下面是?screenrecord?實用程序的一些已知限制,您在使用時應注意:

某些設備可能無法以它們的原生顯示分辨率進行錄制。如果在錄制屏幕時出現問題,請嘗試使用較低的屏幕分辨率。

不支持在錄制時旋轉屏幕。如果在錄制期間屏幕旋轉了,則部分屏幕的錄制將被切斷。

表 4.?screenrecord?選項

選項說明

--help顯示命令語法和選項

--size?widthxheight設置視頻大小:1280x720。默認值是設備的原生顯示分辨率(如果支持),如果不支持,則使用 1280x720。為實現最佳結果,請使用設備的 Advanced Video Coding (AVC) 編碼器支持的大小。

--bit-rate?rate設置視頻的視頻比特率(以兆比特每秒為單位)。默認值為 4Mbps。您可以增加比特率以提升視頻質量,但這么做會導致影片文件變得更大。以下示例將錄制比特率設為 6Mbps:

screenrecord --bit-rate 6000000 /sdcard/demo.mp4

--time-limit?time設置最大錄制時長(以秒為單位)。默認值和最大值均為 180(3 分鐘)。

--rotate將輸出旋轉 90 度。此功能是實驗性的。

--verbose顯示命令行屏幕上的日志信息。如果您不設置此選項,則運行時此實用程序不會顯示任何信息。

讀取應用的 ART 配置文件

從 Android 7.0(API 級別 24)開始,Android Runtime (ART) 會收集已安裝應用的執行配置文件,其可用于優化應用性能。您可能想要檢查收集的配置文件,以了解在應用啟動期間,系統決定頻繁執行哪些方法和使用哪些類。

要生成配置文件信息的文本表單,請使用以下命令:

$ adb shell cmd package dump-profilespackage

要檢索生成的文件,請使用:

$ adb pull /data/misc/profman/package.txt

其他 shell 命令

如需所有可用 shell 程序的列表,請使用以下命令:

adb shell ls /system/bin

大多數命令都提供幫助說明。

表 5 列出了一些比較常用的 adb shell 命令。

表 5.?其他一些 adb shell 命令

Shell 命令說明注釋

dumpsys將系統數據轉儲到屏幕。Dalvik Debug Monitor Server?(DDMS) 工具提供了一個集成調試環境,讓您用起來更方便。

dumpstate將狀態轉儲到文件。

logcat?[option]...[filter-spec]...啟用系統和應用日志記錄,并將輸出傳輸到屏幕。

dmesg將內核調試消息輸出到屏幕。

start啟動(重啟)模擬器/設備實例。?

stop停止執行模擬器/設備實例。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,572評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,071評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,409評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,569評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,360評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,895評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,979評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,123評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,643評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,559評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,742評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,250評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,981評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,363評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,622評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,354評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,707評論 2 370

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,593評論 25 707
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,765評論 2 59
  • 時間果真如奇跡般變化 游走于海拔5190米的山口 看風吹起寫滿藏文的經幡 享受高原的稀薄空氣 輾轉于藏民朝圣的寺廟...
    南唐六月閱讀 315評論 4 3
  • 小女兒剛出生那會,一下子覺得需要買的東西太太太多了。 一個人帶孩子,出門購物不方便,網購便成了首要選擇。 于是,每...
    深潭水閱讀 432評論 0 1
  • 方銳下意識開始玩兒桌板上的紙杯,林敬言看著笑了一會兒,方銳的小動作實在太多了,比方說緊張時喜歡扣手心,琢磨事兒的時...
    梧桐葉上三更雨閱讀 373評論 0 0