導航:首頁 > 程序命令 > 遠程adb命令

遠程adb命令

發布時間:2023-05-31 22:41:17

android—ADB命令

1、查看最上層成activity名字:

adb shell mpsys activity | findstr "mFocusedActivity"
或者 adb shell mpsys window w | findstr / | findstr name=
2、查看Activity的任務棧:

3、顯示所有的activities的信息,包括任務棧等:

adb shell mpsys activity
4、查看Android應用包名package和入口activity名稱 :

aapt mp badging E:\apk\es3.apk
5、顯示accounts信息:

adb shell mpsys account
5、顯示CPU信息 :

adb shell mpsys cpuinfo
查看CPU使用信息

adb shell top -n 1 -d 0.5 | findstr proc_ id
6、顯示鍵盤,窗口和它們的關系

adb shell mpsys window
當我們需要知道設備的解析度時

adb shell mpsys window displays
查看UI繪制的各個層級信息

adb shell mpsys SurfaceFlinger
7、顯示wifi信息

adb shell mpsys wifi
8、電量信息及CPU 使用時長

adb shell mpsys batteryinfo $package_name
9、獲取安裝包信息

adb shell mpsys package packagename
10、每個應用的啟動次數和時間

adb shell mpsys usagestats
11、顯示狀態欄相關的信息

adb shell mpsys statusbar
12、內存信息(meminfo package_name or pid 使用程序的包名或者進程id顯示內存信息)

adb shell mpsys meminfo
得到com.teleca.robin.test進程使用的內存的信息 adb shell mpsys meminfo com.teleca.robin.test
13、磁碟相關信息

adb shell mpsys diskstats
14、電池相關信息

adb shell mpsys battery
15、顯示Alarm信息

adb shell mpsys alarm
統計系統耗電量

adb shell mpsys batterystats
設置線程的優先順序

adb shell mpsys activity|grep oom_adj
16、強制關閉一個應用程序;

adb shell am force-stop <PACKAGE>
17、查看內存信息

adb shell cat proc/meminfo
指定進程內存地址映射

adb shell cat proc/pid/maps
指定進程內存詳細使用信息

adb shell cat proc/pid/smaps
VSS. RSS. PSS. USS 信息

adb shell procrank
指定進程VSS. RSS. PSS. USS 詳細信息

adb shell procmem pid
18、查看可輸入的設備

adb shell getevent -p
19、獲得特定設備的輸入信息

adb shell getevent /dev/input/event0
20、點擊

adb shell input tap x y
21、發送按鍵

adb shell input keyevent 82(keycode)
22、輸入文本

adb shell input text XXXX
23、查看報名中包含mobileqq的進程

adb shell ps | findstr mobileqq
24、遠程進程ID

adb jdwp
25、獲取序列號

adb get-serialno
26、重啟到bootloader,即刷機模式

adb reboot bootloader
27、重啟到recovery,即恢復模式

adb reboot recovery
28、獲取機器MAC地址:

adb shell cat /sys/class/net/wlan0/address
29、獲取CPU序列號

adb shell cat /proc/cpuinfo
30、覆蓋安裝(保留數據和緩存文件,重新安裝apk)

adb install -r <apkfile>
31、安裝apk到sd卡

adb install -s <apkfile>
32、卸載app但保留數據和緩存文件

adb uninstall -k <package>
33、查看設備cpu和內存佔用情況

adb shell top
34、查看佔用內存前6的app

adb shell top -m 6
35、刷新一次內存信息,然後返回

adb shell top -n 1
36、查詢各進程內存使用情況

adb shell procrank
37、查看指定進程狀態

adb shell ps -x [PID]
38、查看後台services信息

adb shell service list
39、查看當前內存佔用(該方式只能得出系統整個內存的大概使用情況) 車
如果你想查看所有進程的內存使用情況

adb shell procrank
40、查看IO內存分區

adb shell cat /proc/iomem
41、查看wifi密碼

adb shell cat /data/misc/wifi/*.conf
42、清除log緩存

adb logcat -c
43、查看設備信息

adb shell cat /system/build.prop
44、跑monkey

adb shell monkey -v -p your.package.name 500
45、列出目標設備上安裝的所有app的包名

adb shell pm list packages
46、截屏命令:

adb shell screencap -p /sdcard/screen.png

adb pull /sdcard/screen.png

adb shell rm /sdcard/screen.png
錄制手機屏幕,視頻格式為mp4,存放到手機sd卡里,默認錄制時間為180s:

adb shell screenrecord
限制視頻錄制時間為10s,如果不限制,默認180s:

adb shell screenrecord --time-limit 10 /sdcard/demo.mp4
指定視頻解析度大小:

adb shell screenrecord --size 1280*720 /sdcard/demo.mp4
指定視頻的比特率:

adb shell screenrecord --bit-rate 6000000 /sdcard/demo.mp4
在命令行顯示log:

adb shell screenrecord --time-limit 10 --verbose /sdcard/demo.mp4
47、設置、獲取屬性信息

adb shell getprop [key]

adb shell setprop [key] [value]
監聽系統屬性的變化,如果期間系統的屬性發生變化則把變化的值顯示出來

adb shell watchprops
48、adb logcat 每一條日誌消息都有一個標記和優先順序與其關聯。
(1)標記是一個簡短的字元串,用於標識原始消息的來源 (例如"View" 來源於顯示系統)。優先順序是下面的字元,順序是從低到高:

V — 明細 (最低優先順序)
D — 調試
I — 信息
W — 警告
E — 錯誤
F — 嚴重錯誤
S — 無記載 (最高優先順序,沒有什麼會被記載)
(2)查看過濾日誌

adb logcat ActivityManager:I *:S
*:S 用於設置所有標記的日誌優先順序為S,可以確保輸出符合指定的過濾器設置的一種推薦的方式,
這樣過濾器就成為了日誌輸出的「白名單」
顯示所有優先順序大於等於「warning」的日誌

adb logcat *:W
(3)日誌消息在標記和優先順序之外還有很多元數據欄位,這些欄位可以通過修改輸出格式來控制輸出結果, -v 選項加上下面列出的內容可以控制輸出欄位:

brief — 顯示優先順序/標記和原始進程的PID (默認格式)
process — 僅顯示進程PID
tag — 僅顯示優先順序/標記
thread — 僅顯示進程:線程和優先順序/標記
raw — 顯示原始的日誌信息,沒有其他的元數據欄位
time — 顯示日期,調用時間,優先順序/標記,PID
long —顯示所有的元數據欄位並且用空行分隔消息內容
使用 thread 輸出格式

adb logcat -v thread
(4)Android日誌系統為日誌消息保持了多個循環緩沖區,而且不是所有的消息都被發送到默認緩沖區,要想查看這些附加的緩沖區,可以使用-b 選項,以下是可以指定的緩沖區:

radio — 查看包含在無線/電話相關的緩沖區消息
events — 查看事件相關的消息
main — 查看主緩沖區 (默認緩沖區)
查看radio緩沖區

adb logcat -b radio
48、列印應用程序的log

adb logcat -b main -v time>app.log
49、列印射頻相關的log,SIM STK也會在裡面,modem相關的ATcommand等,當然跟QXDM差的很遠了

adb logcat -b radio -v time> radio.log
50、列印系統事件的日誌,比如觸屏事件

adb logcat -b events -v time
51、tcpmp 是很有用的,對於TCP/IP協議相關的都可以使用這個來抓

adb shell tcpmp -s 10000 -w /sdcard/capture.pcap
52、狀態信息,裡麵包含有dmesg,mpstate和mpsys

adb bugreport>bugreport.log
53、kernel的log凡是跟kernel相關的,比如driver出了問題(相機,藍牙,usb,啟動,等等吧)

adb shell dmesg > ldmesg_kernel.log
54、mpstate是系統狀態信息,裡面比較全,包括手機當前的內存信息、cpu信息、logcat緩存,kernel緩存等等 。

adb shell mpstate
55、關於系統service的內容都在這個裡面

adb shell mpsys
56、顯示內存信息

adb shell mpsys meminfo system

② 干貨|做App測試,那些必知必會的Adb常用命令

> 本文節選自霍格沃茲測試學院內部教材

為了讓大家更好的學習Adb常用命令,我們先從安裝Android環境搭建開始講解哦。

安裝jdk  

###  **  

**

 **  

**

### 因為 Android SDK 是依賴於 java 環境的,所以需要先把 java 的環境搭建好。Java

環境可以參考搭建帖子:https://ceshiren.com/t/topic/4001

安裝Android SDK  

###  

###  

### adb 包含在 Android SDK 平台工具軟體包中。具體的 Android SDK

環境搭建步驟請參考帖子:https://ceshiren.com/t/topic/4001

adb簡介  

adb 全稱為 Android Debug Bridge(Android 調試橋),是 Android SDK 中提供的用於管理 Android

模擬器或真機的工具。

adb 是一種功能強大的命令行工具,可讓 PC 端與 Android 設備進行通信。adb 命令可執行各種設備操作,例如安裝和調試應用。

adb組成  

採用了客戶端-伺服器(C/S)模型,包括三個部分:

  * adb client

  * adb server

  * adb daemon

ADB client:運行在電腦上,可以在命令行中運行 adb 命令來調用該客戶端。Client 本質上就是 Shell,用來發送命令給

Server。發送命令時,首先檢測 PC 上有沒有啟動 Server,如果沒有 Server,則會自動啟動一個,然後將命令發送到 Server。

ADB server:是運行在電腦上的後台進程,用於管理客戶端與運行在模擬器或真機的守護進程通信。

ADB Daemon:守護進程作為一個後台進程在 Android 設備或模擬器系統中運行。它的作用是連接 adb 服務端,並且為運行在主機上的 adb

客戶端提供一些服務。

adb工作原理  

當 adb 客戶端啟動時,客戶端會先檢查 adb 服務端是否啟動。如果沒有,會先啟動服務端進程。adb 服務端在啟動後,會與 5037 埠綁定,並監聽

adb 客戶端發出的命令。

然後,服務端會與所有正在運行的 Android 設備建立連接。它通過掃描 5555 到 5585 之間的奇數號埠查找 Android 設備。服務端一旦發現

Android 設備上的 adb 守護進程在運行,便會與相應的埠建立連接。每個 Android 設備都使用一對埠,偶數埠用於控制台連接,奇數埠用於

adb 連接。

例如:服務端與所有 Android 設備建立連接後,就可以使用 adb 命令來訪問這些設備了。服務端會管理已經建立的連接,並處理來自 adb 客戶端的命令。

啟動adb調試  

### Android 真機可以通過 USB 連接到 adb,連接時需要在設備的系統設置中啟用 USB 調試(位於開發者選項下),啟動 USB

調試後,設備上的 adb 守護進程就會被啟動,adb 服務端才可以和設備建立連接。除了用 USB 的方式連接之外,也可以通過 WLAN

的方式連接,這種方式不做贅述。

  1. 模擬器:不需要手動設置 USB 調試開關,默認是打開的

  2. 真機通過 USB 連接

    * 安裝 Android 手機驅動

    * 設備啟用 USB 調試

adb命令格式  

  * 

    adb [-d|-e|-s <serialNumber>] <command>

  * -d:指定當前唯一通過 USB 連接的 Android 設備為命令目標

  * -e:指定當前唯一運行的模擬器為命令目標

  * -s:指定相應 serialNumber 號的設備/模擬器為命令目標

方括弧中的內容是可選的,尖括弧內容的是必填的。方括弧中參數可以指定設備,關於設備的指定有三個參數可以使用。-d、-e 和 -s,其中使用最多的是 -s

參數,在連接多台設備的時候,一般都是使用 -s 加上設備的序列號這種方式去指定具體設備。

adb 可以同時連接多台設備,但是一次只能對一台設備執行命令。所有連接多台設備的時候,是必須要制定設備,命令才可以執行成功的。

查詢設備  

把 Android 設備連接到 adb 服務端後,需要確認設備的連接狀態。這時可以使用查詢命令進行查詢。

 **連接模擬器** (以 mumu 模擬器為例)

  *   * 

    adb connect 127.0.0.1:7555adb devices

  * `adb connect` 命令可以通過 WLAN 的方式連接到模擬器,7555 為 mumu 模擬器的埠

  * `adb devices` 可以查詢設備連接的狀態

Windows 系統中,連接模擬器需要先執行 connect 命令去連接模擬器,127.0.0.1 是本地的 IP

地址,因為模擬器就是安裝在本地的,所以要使用本地的 IP 地址,加上模擬器本身規定的一個埠號。mumu 的埠號是

7555,如果使用的是其他的模擬器的話,需要先去了解它的埠號是什麼,然後再去連接。MacOS 系統中連接模擬器不需要先執行 connect 命令,直接執行

`adb devices` 命令即可。

 **連接真機**

 **  

**

真機直接用 USB 連接到電腦,不需要執行 connect 命令。

直接用 `adb devices`命令查看已經連接的設備列表即可。

    feier@ ~ % adb devices  

    List of devices attached  

    emulator-5554    device

直接命令後,如果設備已經成功連接,那麼設備列表中就會展示已連接設備的信息。以圖中的信息為例:

  * emualotr-5554:設備序列號

  * device:設備連接狀態為成功

安裝卸載應用  

測試過程中,如果需要安裝或者卸載應用,可以直接用 adb 命令來操作。

  * 普通安裝:`adb install <apk路徑>`

  * 覆蓋安裝:`adb install -r <apk路徑>`

  * 完全卸載:`adb uninstall <包名>`

  * 保留配置文件:`adb uninstall -k <包名> `

設備與電腦傳輸文件  

adb 命令支持電腦和 Android 設備之間的文件互傳。比如我們需要提取 Android 設備中的日誌文件到本地,就可以通過 adb 命令的方式來完成。

  * 從電腦上傳文件至設備:`adb push <電腦路徑> <設備路徑>`

  * 從設備復制文件至電腦:`adb pull <設備路徑> <電腦路徑>`

日誌  

列印鏈接設備的 log 信息

  * 屏幕輸出日誌:`adb logcat`

  * 通過標簽過濾:`adb logcat -s 標簽`

  * 顯示時間:`adb logcat -v time`

  * 輸出所有信息:`adb logcat -v long`

  * 輸出日誌到文件:`adb logcat -v time > log.txt`

  * 清除舊日誌信息:`adb logcat -c`

adb shell命令  

使用 adb shell 命令相當於遠程登錄了 Android 系統,可以進入 Android 設備的系統內部。進入系統內部既可以執行一些簡單的 linux

命令也支持很多特有的命令。

使用 adb shell 命令有兩種方式。

一種是直接在 adb shell 後面跟上命令。

  * 

    adb [-s serial_number] shell <command>

比如:

  *   *   *   *   *   *   *   *   *   *   * 

    feier@ ~ % adb shell .propdevetc...

另一種方式是在設備上啟動互動式 shell

  * 

    adb [-s serial_number] shell

進入 shell 之後,再執行對應的命令。

比如我們進入設備內部,可以查看設備內部的目錄結構和內容

  *   *   *   *   *   *   *   *   *   *   * 

    feier@ ~ % adb shellroot@x86:/ # .propdev...

要退出互動式 shell,可以按 Ctrl + D 鍵或輸入 exit。

 **Android常用測試命令**  

下面整理出了Android常用的一些測試命令及用法。  

設備截圖/錄屏  

在測試過程中,如果需要截圖或者是錄屏,也可以直接使用 adb 命令來完成。

  * 截圖:`adb shell screencap <設備路徑>`

  * 錄屏:`adb shell screenrecord <設備路徑>`

調用Activity管理器  

在 adb shell 中,可以使用 Activity 管理器 (am) 工具發出命令以執行各種系統操作,如啟動

Activity、強行停止進程、修改設備屏幕屬性,等等。

在測試過程中,如果需要啟動 app 或者強制關閉 app,可以通過 adb 命令來實現。

  * 啟動應用:`adb shell am start -n <包名>/<Activity名>`

  * 強制停止應用:`adb shell am force-stop <包名>`

調用軟體包管理器  

在 adb shell 中,可以使用軟體包管理器 (pm) 工具發出命令,以對設備上安裝的應用軟體包執行操作和查詢。

如果需要查詢設備里都安裝了什麼應用,就可以使用 adb shell pm list 來查看,還可以加上不同的參數去查看不同類型的應用。而且也可以通過 adb

命令來清除應用相關的數據。

  * 顯示設備中安裝的所有應用:`adb shell pm list packages`

  * 只顯示系統應用:`adb shell pm list packages -s`

  * 只顯示第三方應用:`adb shell pm list packages -3`

  * 刪除與軟體包關聯的所有數據:`adb shell pm clear <包名>`

adb shell mpsys  

mpsys 是一種在 Android 設備上運行的工具,可提供有關系統服務的信息。可以使用 adb 從命令行調用

mpsys,獲取在連接的設備上運行的所有系統服務的診斷輸出。

比如在測試中,如果需要通過 adb 命令啟動 app,則需要知道 app 的包名和入口的 Activity

名。這個時候,就可以通過下面這條命令獲取到這兩個信息。

這個場景,需要先把要獲取信息的應用啟動,讓它在前台運行,然後執行命令

`adb shell mpsys activity | grep mFocusedActivity`

  *   *   * 

    feier@ ~ % adb shell mpsys activity | grep mFocusedActivity  mFocusedActivity: ActivityRecord{9dae968 u0 com.xueqiu.android/.common.MainActivity t139}  

下方的日誌中就會展示出來當前的包名和 Activity 名稱。

  * 包名:`com.xueqiu.android`

  * Activity 名:`.common.MainActivity`

adb shell mpsys  

adb 命令還支持直接獲取應用的頁面信息。這個頁面信息包含了頁面中元素的屬性,可以方便做自動化測試的時候去定位元素。獲取到的頁面布局會輸出到一個 xml

文件中。

  * 當前窗口的 UI 布局簡化信息:`adb shell uiautomator mp --compressed`

  *   * 

    feier@ ~ % adb shell uiautomator mp --compressedUI hierchary mped to: /sdcard/window_mp.xml

不指定輸出文件路徑時,mp 下來的文件默認存儲路徑為 `/sdcard/window_mp.xml`

可以通過 adb pull 命令把文件傳輸到電腦中,然後用 uiautomatorviewer 工具打開查看布局。

  * 指定輸出文件路徑:`adb shell uiautomator mp file <設備路徑>`

adb常用命令就先講到這里啦,下期我們分享App常見bug解析。大家還想看什麼內容的文章也可以留言告訴我們哦!

 ** _ 

來霍格沃茲測試開發學社,學習更多軟體測試與測試開發的進階技術,知識點涵蓋web自動化測試 app自動化測試、介面自動化測試、測試框架、性能測試、安全測試、持續集成/持續交付/DevOps,測試左移、測試右移、精準測試、測試平台開發、測試管理等內容,課程技術涵蓋bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相關技術,全面提升測試開發工程師的技術實力

QQ交流群:484590337

公眾號 TestingStudio

視頻資料領取:https://qrcode.testing-studio.com/f?from=jianshu&url=https://ceshiren.com/t/topic/15844

點擊查看更多信息

③ ADB是什麼 ADB常用命令介紹

當我們在給Android手機刷機時,需要ADB工具,不過即使是一些經常刷機的達人,也未必知道ADB是什麼意思。如果你想知道ADB是什麼,想了解ADB常用命令,下面就給你介紹一下。 ADB的全稱為Android Debug Bridge,字面意思就是安卓調試橋接,簡單點說,它是Android系統提供的一套工具,通過它,我們可以在電腦上建立一個連接到手機的通道,然後可以在電腦上向手機發送一些指令,完成一些我們需要做的工作。 ADB就是起到調試橋的作用。通過ADB我們可以在Eclipse中方面通過DDMS來調試Android程序,說白了就是debug工具。ADB的工作方式比較特殊,採用監聽Socket TCP 5554等埠的方式讓IDE和Qemu通訊,默認情況下ADB會daemon相關的網路埠,所以當我們運行Eclipse時ADB進程就會自動運行。 ADB是android sdk里的一個工具,用這個工具可以直接操作管理android模擬器或者真實的andriod設備(如G1手機)。 它的主要功能有: * 運行設備的shell(命令行) * 管理模擬器或設備的埠映射 * 計算機和設備之間上傳/下載文件 * 將本地apk軟體安裝至模擬器或android設備 ADB是一個客戶端-伺服器端程序,其中客戶端是你用來操作的電腦,伺服器端是android設備。 ADB常用的幾個命令 1. 查看設備 ADBdevices 這個命令是查看當前連接的設備, 連接到計算機的android設備或者模擬器將會列出顯示 2. 安裝軟體 ADBinstall 這個命令將指定的apk文件安裝到設備上 3. 卸載軟體 * ADBuninstall <軟體名> * ADBuninstall -k <軟體名> 如果加 -k 參數,為卸載軟體但是保留配置和緩存文件. 4. 登錄設備shell * ADBshell * ADBshell 這個命令將登錄設備的shell. 5. 從電腦上發送文件到設備 * ADBpush <本地路徑> <遠程路徑> 用push命令可以把本機電腦上的文件或者文件夾復制到設備(手機) 6. 從設備上下載文件到電腦 * ADBpull <遠程路徑> <本地路徑> 用pull命令可以把設備(手機)上的文件或者文件夾復制到本機電腦 7. 顯示幫助信息 * ADBhelp 這個命令將顯示幫助信息 Android端的ADB命令 更多 0

④ ADB連接手機和簡單命令

1、先安裝好ADB,手機要設置為 開發者模式 ,然後再開啟 USB調試(重點,一定要開始USB調試)

2、打開cmd,運行adb devices,查看連接設備

注意:這一步挺多人會碰到error: device not found問題,研究了一個:,原因1:5037埠被佔用。原因2:手機沒有開啟USB調試模式。

關於5037埠被佔用的解決方法,參考:https://blog.csdn.net/qq_41063141/article/details/84898289

1、先關閉ADB

adb kill-server

2、再開始ADB

adb start-server

3、查看ADB是否有進程,5037埠是否被佔用

adb nodaemon server

如果此時提示cannot bind 'tcp:5037',意思是5037埠被佔用

4、查看5037埠被哪個進程佔用了

netstat -ano | findstr 「5037」

5、找出佔用5037埠的線程名

tasklist | findstr 「8020」

6、殺掉佔用5037埠的進程

taskkill /f /pid 8020

以上步驟操作完後,執行adb devices就能看到連接設備了

可以直接在cmd命令窗口執行,不用進入安裝ADB的目錄下

簡單命令使用

1、查看安卓設備下所有的包

adb shell pm list packages

可以篩選某個包   adb shell pm list packages |findstr "taobao"

2、命令,對某個包進行1000次無規律點擊

格式:adb shell monkey -p 包名 -v 點擊次數

adb shell monkey -p com.taobao.taobao -v 1000

例如這個是對淘寶APP進行1000次無規律點擊,執行這個命令,手機會自動打開淘寶APP,命令執行後,會在cmd窗口列印出執行日誌

3、將執行日誌輸出到電腦的某個位置

adb shell monkey -p com.taobao.taobao -v 1000 >E:/test.txt

執行後cmd窗口不會列印出日誌,但是在E盤會生成一個test.txt文件,裡面存日誌信息

日誌主要查找「ANR」和「Exception」字樣,看程序是否報錯

命令使用參考:https://blog.csdn.net/niuniu0186/article/details/79866783

https://blog.csdn.net/cesor/article/details/99686194

https://blog.csdn.net/youzi749/article/details/79525528

⑤ ADB常用命令

Android 調試橋 (adb)  ,可與設備進行通信。adb 命令可用於執行各種設備操作(例如安裝和調試應用),並提供對 Unix shell(可用來在設備上運行各種命令)的訪問許可權。它是一種客戶端-伺服器程序,包括以下三個組件:

客戶端: 用於發送命令。客戶端在開發機器上運行。可以通過發出 adb 命令從命令行終端調用客戶端。(可以通過它對Android應用進行安裝、卸載、調試)

PC上的手機助手基本都是通過adb命令去完成的。有時候裝了這類手機助手的話,它自帶的adb程序可能會與Android SDK下的adb程序產生沖突,5037埠被佔用,導致adb命令無法連接到設備。Windows下通過netstat -ano|findstr "5037"

守護程序 (adbd): 用於在設備上運行命令。守護程序在每個設備上作為後台進程運行

執行adb shell ps | grep adbd, 可以找到該後台進程,Windows使用findstr替代grep.

adb nodaemon server

伺服器(Service): 用於管理客戶端與守護程序之間的通信。伺服器在開發機器上作為後台進程運行

adb服務啟動後,Windows可以在任務管理中找到adb.exe; linux ps -ef | gref adb 可以查看service

一般都是通過這樣子的格式 adb [-d|-e|-s <設備序列號>] <子命令>

通常只有一台設備就忽略 [-d|-e|-s ] 這一部分

這里介紹一些常用的命令:

獲取設備列表及設備狀態

獲取設備的狀態

注意:設備的狀態有 3 鍾,device , offline , unknown

device:設備正常連接

offline:連接出現異常,設備無響應

unknown:沒有連接設備

 結束 adb 服務

 啟動 adb 服務

注意:通常兩個命令一起用,有時候我們開啟server會失敗,這是因為我們裝了的手機助手,豌豆莢或者其他軟體自帶有自己的adb,導致埠沖突開啟失敗。一般在連接出現異常,使用 adb devices 未正常列出設備, 設備狀態異常時使用 kill-server,然後運行 start-server 進行重啟服務。

列印 Android 的系統日誌

 列印 mpsys、mpstate、logcat 的輸出,也是用於分析錯誤輸出比較多

列印日誌後重定向到一個文件中

 安裝應用,覆蓋安裝是使用 -r 選項

注意:有些adb版本無法支持安裝中文的apk

查看手機應用包名

查看應用對應的apk文件在手機上的安裝位置則可以在上面的命令後加-f參數

卸載應用,後面跟的參數是應用的包名,請區別於 apk 文件名

'-k' means keep the data and cache directories , -k 選項,卸載時保存數據和緩存目錄

 將 Android 設備上的文件或者文件夾復制到本地

adb pull /sdcard/test.txt C:\Users\Administrator\Desktop\log

推送本地文件至 Android 設備

獲取連接到的手機的序列號

獲取設備的連接狀態

等待設備連接成功

該命令將會阻塞一直到默認連接的那部機器狀態變為device,也就是連接成功。

其實adb shell命令就是調用的是Android設備中的system/bin目錄下的命令。

Android的內核本身就是Linux,所以Android本身也支持Linux命令,但是因為是手機系統,所以進行了一定的刪減,部分命令不支持,而不支持的部分,我們可以通過安裝busybox這個軟體進行。

如何在手機中執行Shell命令?

  每次都加上adb shell來進行命令的發送與執行

 先通過adb shell進入手機Shell執行狀態,然後直接輸入Linux命令。

使一個apk處於禁用狀態,相當於卸載了:

其中 PACKAGE_OR_COMPONENT的格式是 package/class, 如 com.UCMobile/.main.UCMobile

eg:adb shell su disable com.UCMobile/.main.UCMobile

同時我們在手機上發現,UC瀏覽器的圖標不見了

讓一個apk從禁用狀態恢復過來

其中 PACKAGE_OR_COMPONENT的格式是 package/class, 如 com.UCMobile/.main.UCMobileeg:

adb shell su enable com.UCMobile/.main.UCMobile

同時我們從手機上發現,UC瀏覽器的圖標又出現了。

查看一個apk所在的路徑

adb shell pm path com.UCMobile

查看手機中裝的所有的包

屏幕開始錄像並且儲存到/sdcard中,同時名字為demo.mp4

錄屏設置時長10s,命名為demo.mp4

注意:現在僅支持一部分手機錄屏,不支持的手機會出現以下提示

解決方法:

安裝了scrcpy之後,只需要輸入如下命令,即可錄取指定設備的屏幕

scrcpy -s device --render-expired-frames -Nr ./demo.pm4

--render-expired-frames:盡可能最大幀率

-N:不在PC端展示

-r:錄制mp4/mkv文件

關閉設備請求,開啟設備

設備關機以及重啟

pm(package manager)可以獲取一些安裝到Android設備上的app的信息

pm list packages 用法:list packages [ options] filter

獲取所有的應用的包名

列出系統應用

列出第三方應用

查看它們的關聯文件

adb shell pm list package -f

查看軟體包的安裝來源

pm mp 包名 很多mp信息

安裝應用

apk如果在電腦用 adb install 

如果在Android設備上用 adb shell pm install

卸載應用,同adb uninstall ,後跟包名

清除應用數據

am(activity manager,字面意思就跟activity有關,大家都知道Android的界面都是由一個個activity顯示的)

啟動一個Activity

獲取到package和launch_activity

AndroidSDK中aapt工具,檢索命令結果,可以獲取到package和launch_activity

這里涉及到一個點,如何找到程序的入口,首先你要知道是哪個activity才能啟動;

啟動華為系統相機

打開音樂播放器

播放指定音樂:

先停止目標應用,再啟動

等待應用完成啟動

啟動網頁(android.intent.action.VIEW具體參考Android官網)

結束應用

input

模擬輸入,向獲得焦點的EditText控制項輸入內容

返回主界面

發送一個點擊操作的指令,參數是<x> <y>坐標

從左往右滑動屏幕, /從 100 100 經歷300毫秒滑動到 200 200

長按操作,在 100 100 位置長按 1000毫秒

⑥ 什麼是adb命令行

adb命令行是androidsdk里的一個工具,用這個工具可以直接操作管理android模擬器或者真實的android設備(如G1手機),它的主要功能有:

1、運行設備的shell(命令行)

2、管理模擬器或設備的埠映射

3、計算機和設備之間上傳/下載文件

4、將本地apk軟體安裝至模擬器或android設備

ADB是一個客戶端-伺服器端程序,其中客戶端是你用來操作的電腦,伺服器端是android設備。

(6)遠程adb命令擴展閱讀:

常用命令

1. 查看設備 *adbdevices

這個命令是查看當前連接的設備, 連接到計算機的android設備或者模擬器將會列出顯示

2. 安裝軟體

*adbinstall <apk文件路徑>

這個命令將指定的apk文件安裝到設備上

3. 卸載軟體

*adbuninstall <軟體名>

*adbuninstall -k <軟體名>

如果加 -k 參數,為卸載軟體但是保留配置和緩存文件。

4. 登錄設備shell

*adbshell

*adbshell <command命令>

這個命令將登錄設備的shell。

後面加<command命令>將是直接運行設備命令,相當於執行遠程命令。

5. 從電腦上發送文件到設備

*adbpush <本地路徑> <遠程路徑>

用push命令可以把本機電腦上的文件或者文件夾復制到設備(手機)。

⑦ 常見的adb 和 mankey 命令

一、常用adb命令

1、adb devices:查看已連接的設備

2、adb version:查看adb的版本序列號

3、adb -s <設備名字>:指定某設備做什麼(設備名字用1的方法可以查看)

4、adb install <安裝包.apk>:安裝應用(寫清楚apk的完整路徑)adb -s <設備名字> install <安裝包.apk>:指定設備安裝應用

5、adb shell:通過遠程shell命令來控制模擬器/設備

6、exit:退出shell遠程連接,回到原路徑。(Ctrl+d,退出shell,回到默認路徑)

7、adb pull <設備端路徑> <pc端路徑>:將指定的文件從設備/模擬器上拷貝到pc端(後面的pc端路徑可以不指定,默認存儲在當前路徑下)。例: adb pull /sdcard/log.txt c:/monkey

8、adb push <pc端路徑> <設備端路徑>:將指定的文件從pc端拷貝到設備/模擬器上

9、adb shell pm list packages:列出電腦端所有apk的包名

10、adb logcat:查看pc端的日誌輸出。adb shell界面只需輸入logcat,查看設備端日誌輸出(退出Ctrl+c)

二、Monkey命令擴展

1、最簡單的monkey執行語句:(adb shell)monkey –p com.jianjiexuan.na –v 500 (對com.jianjiexuan.na 這個程序包單獨進行一次500次的monkey測試)

名詞解釋:-p:用於約束限制,用此參數指定一個或多個包。指定包之後,Monkey將只允許系統啟動指定的APP。如果不指定包,Monkey將允許系統啟動設備中的所有APP。指定多個包:monkey -p –p -p -v 500-v:用於指定反饋信息級別(信息級別就是日誌的詳細程度),總共分3個級別,分別對應的參數如下表所示:

日誌級別 Level 0

例 monkey –p com.jianjiexuan.na –v 500說明:預設值,僅提供啟動提示、測試完成和最終結果等少量信息

日誌級別 Level 1

例 monkey –p com.jianjiexuan.na –v -v 500說明:提供較為詳細的日誌,包括每個發送到Activity的事件信息

日誌級別 Level 2

例 monkey –p com.jianjiexuan.na –v -v -v 500

說明:最詳細的日誌,包括了測試中選中/未選中的Activity信息

2、延時及固定序列(adb shell)monkey -s 100 -p com.jianjiexuan.na – -throttle 1000 -v 500 (每次執行一次有效的事件後休眠1000毫秒)(adb shell)monkey -p com.jianjiexuan.na – -throttle 1000 – -randomize-throttle -v 500 (每次執行一次有效事件後隨機延時0-200毫秒)名詞解釋:-s:用於指定偽隨機數生成器的seed值,如果seed相同,則兩次Monkey測試所產生的事件序列也相同的。出現問題下次可以重復同樣的系列進行排錯。–throttle:固定延時,用於指定用戶操作(即事件)間的時延,單位是毫秒;–randomize-throttle:隨機延時,用於指定用戶操作(即事件)間的時延,單位是毫秒。

3、保存monkey運行結果1)保存在PC中adb shell monkey –p com.jianjiexuan.na –v 500 > d:\monkey\log.txt 2)保存在手機中手機端進入shell模式:adb shell monkey –p com.jianjiexuan.na –v 500 > /mnt/sdcard/monkey/log.txt

⑧ ADB是什麼 ADB常用命令介紹

adb是windows系統通過usb或者無線連接Android手機的一個介面

adb 常用命令大全
1. 顯示系統中全部Android平台:
android list targets
2. 顯示系統中全部AVD(模擬器):
android list avd
3. 創建AVD(模擬器):
android create avd --name 名稱 --target 平台編號
4. 啟動模擬器:
emulator -avd 名稱 -sdcard ~/名稱.img (-skin 1280x800)
5. 刪除AVD(模擬器):
android delete avd --name 名稱
6. 創建SDCard:
mksdcard 1024M ~/名稱.img
7. AVD(模擬器)所在位置:
Linux(~/.android/avd) Windows(C:\Documents and Settings\Administrator\.android\avd)
8. 啟動DDMS:
ddms
9. 顯示當前運行的全部模擬器:
adb devices
10. 對某一模擬器執行命令:
abd -s 模擬器編號 命令
11. 安裝應用程序:
adb install -r 應用程序.apk
12. 獲取模擬器中的文件:
adb pull <remote> <local>
13. 向模擬器中寫文件:
adb push <local> <remote>
14. 進入模擬器的shell模式:
adb shell
15. 啟動SDK,文檔,實例下載管理器:
android
16. 缷載apk包:
adb shell
cd data/app
rm apk包
exit
adb uninstall apk包的主包名
adb install -r apk包
17. 查看adb命令幫助信息:
adb help
18. 在命令行中查看LOG信息:
adb logcat -s 標簽名
19. adb shell後面跟的命令主要來自:
源碼\system\core\toolbox目錄和源碼\frameworks\base\cmds目錄。
20. 刪除系統應用:
adb remount (重新掛載系統分區,使系統分區重新可寫)。
adb shell
cd system/app
rm *.apk
21. 獲取管理員許可權:
adb root
22. 啟動Activity:
adb shell am start -n 包名/包名+類名(-n 類名,-a action,-d date,-m MIME-TYPE,-c category,-e 擴展數據,等)。
23、發布埠:
你可以設置任意的埠號,做為主機向模擬器或設備的請求埠。如:
adb forward tcp:5555 tcp:8000
24、復制文件:
你可向一個設備或從一個設備中復制文件,
復制一個文件或目錄到設備或模擬器上:
adb push
<source>
<destination></destination></source>
如:adb
push test.txt /tmp/test.txt
從設備或模擬器上復制一個文件或目錄:
adb
pull <source>
<destination></destination></source>
如:adb
pull /addroid/lib/libwebcore.so .
25、搜索模擬器/設備的實例:
取得當前運行的模擬器/設備的實例的列表及每個實例的狀態:
adb devices
26、查看bug報告:
adb bugreport
27、記錄無線通訊日誌:
一般來說,無線通訊的日誌非常多,在運行時沒必要去記錄,但我們還是可以通過命令,設置記錄:
adb shell
logcat -b radio
28、獲取設備的ID和序列號:
adb get-proct
adb get-serialno
29、訪問資料庫SQLite3
adb shell
sqlite3
#cd system/sd/data //進入系統內指定文件夾
#ls //列表顯示當前文件夾內容
#rm -r xxx //刪除名字為xxx的文件夾及其裡面的所有文件
#rm xxx //刪除文件xxx
#rmdir xxx //刪除xxx的文件夾

⑨ 常用的adb命令

Android Debug Bridge,我們一般簡稱為adb,主要存放在sdk安裝目錄下的platform-tools文件夾中,它是一個非常強大的命令行工具,通過這個工具你能夠與你的android設備進行交互,被稱為Android 調試橋。
它是一種客戶端-伺服器程序,包括以下三個組件:

adb shell 命令
adb shell 則是調用的 Android 系統中的命令,這些 Android 特有的命令都放在了 Android 設備的 system/bin 目錄下

monkey命令

當您啟動某個 adb 客戶端時,該客戶端會先檢查是否有 adb 伺服器進程正在運行。如果沒有,它會啟動伺服器進程。伺服器在啟動後會與本地 TCP 埠 5037 綁定,並監聽 adb 客戶端發出的命令 - 所有 adb 客戶端均通過埠 5037 與 adb 伺服器通信。

然後,伺服器會與所有正在運行的設備建立連接。它通過掃描 5555 到 5585 之間(該范圍供前 16 個模擬器使用)的奇數號埠查找模擬器。伺服器一旦發現 adb 守護程序 (adbd),便會與相應的埠建立連接。請注意,每個模擬器都使用一對按順序排列的埠 - 用於控制台連接的偶數號埠和用於 adb 連接的奇數號埠。例如:

模擬器 1,控制台:5554
模擬器 1,adb:5555
模擬器 2,控制台:5556
模擬器 2,adb:5557
依此類推

如上所示,在埠 5555 處與 adb 連接的模擬器與控制台監聽埠為 5554 的模擬器是同一個。

伺服器與所有設備均建立連接後,您便可以使用 adb 命令訪問這些設備。由於伺服器管理與設備的連接,並處理來自多個 adb 客戶端的命令,因此您可以從任意客戶端(或從某個腳本)控制任意設備。

要在通過 USB 連接的設備上使用 adb,您必須在設備的系統設置中啟用 USB 調試 (位於 開發者選項 下)。

在搭載 Android 4.2 及更高版本的設備上,「開發者選項」屏幕默認情況下處於隱藏狀態。如需將其顯示出來,請依次轉到 設置 > 關於手機 ,然後點按 版本號 七次。返回上一屏幕,在底部可以找到 開發者選項
在某些設備上,「開發者選項」屏幕所在的位置或名稱可能有所不同。
執行 adb devices 驗證設備是否已連接。如果已連接,您將看到設備名稱以「設備」形式列出。

一般情況下,adb 通過 USB 與設備進行通信,但您也可以在通過 USB 完成一些初始設置後,通過 WLAN 使用 adb,如下所述。

如果 adb 連接斷開:

如果有多個設備在運行,您在發出 adb 命令時必須指定目標設備。為此,請使用 devices 命令獲取目標設備的序列號。獲得序列號後,請結合使用 -s 選項與 adb 命令來指定序列號。如果您要發出很多 adb 命令,可以將 $ANDROID_SERIAL 環境變數設為包含序列號。如果您同時使用 -s 和 $ANDROID_SERIAL , -s 會替換 $ANDROID_SERIAL 。

$ adb -s emulator-5555 install helloWorld.apk
注意 :如果您在多個設備可用時發出命令但未指定目標設備,adb 會生成錯誤。
如果有多個可用設備,但只有一個是模擬器,請使用 -e 選項將命令發送至該模擬器。同樣,如果有多個設備,但只連接了一個硬體設備,請使用 -d 選項將命令發送至該硬體設備。

使用 forward 命令設置任意埠轉發,將特定主機埠上的請求轉發到設備上的其他埠。以下示例設置了主機埠 6100 到設備埠 7100 的轉發:

>adb forward tcp:6100 tcp:7100

您可以使用 pull 和 push 命令將文件復制到設備或從設備復制文件。與 install 命令(僅將 APK 文件復制到特定位置)不同,使用 pull 和 push 命令可將任意目錄和文件復制到設備中的任何位置。

如需從設備中復制某個文件或目錄(及其子目錄),請使用以下命令:

adb pull remote local
如需將某個文件或目錄(及其子目錄)復制到設備,請使用以下命令:

adb push loca remote

adb kill-server

您可以使用 shell 命令通過 adb 發出設備命令,也可以啟動互動式 shell。如需發出單個命令,請使用 shell 命令,如下所示:

adb [-d |-e | -s shell shell_command

在 adb shell 中,您可以使用 Activity 管理器 ( am ) 工具發出命令以執行各種系統操作,如啟動 Activity、強行停止進程、廣播 intent、修改設備屏幕屬性,等等。在 shell 中,相應的語法為:
您也可以直接從 adb 發出 Activity 管理器命令,無需進入遠程 shell。例如:

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

閱讀全文

與遠程adb命令相關的資料

熱點內容
哪個vlan技術對報文加密 瀏覽:570
單片機定時電路 瀏覽:672
山西平台伺服器雲主機 瀏覽:700
按摩肚臍解壓視頻 瀏覽:989
php55安裝教程 瀏覽:137
雲伺服器怎麼查找本機域名 瀏覽:22
qd123y壓縮機參數 瀏覽:385
程序員媽媽懷孕 瀏覽:490
金普國際編程 瀏覽:537
java什麼是引用類型 瀏覽:944
這是命令嗎txt 瀏覽:314
支付寶android包名 瀏覽:154
eclipsemaven命令 瀏覽:68
24路伺服器配什麼cpu 瀏覽:466
壓縮文件和解壓文件哪個快 瀏覽:675
亞馬遜雲伺服器視頻通話 瀏覽:912
金融知識app哪個好 瀏覽:978
農行理財app收益在哪裡 瀏覽:969
暗淡的命令名項目表示該命令 瀏覽:212
串口轉乙太網程序源碼 瀏覽:970