A. 各模擬器adb連接埠
模擬器名稱 默認連接埠
夜神安卓模擬器 62001
逍遙模擬器 21503
藍疊模擬器 5555
雷電 5555
天天 5037
mumu 7555
Genymotion 5555
騰訊手游助手 adb connect 127.0.0.1:5555
通用方法:
如何查看安卓模擬器的ADB埠號?
B. adb 命令獲取手機ip地址
1、用windows + r 打開命令行
2、 adb devices 看是否連接到手機
3、adb shell netcfg 這個命令可以查看埠信息
4、adb shell ifconfig wlan0 wlan0就是查看的埠
C. 如何查看模擬器的adb 埠&adb常用命令
在開發中經常會藉助一下模擬器進行測試
在不同模擬器中切換時經常會發現android studio 及monitor不能找到我們需要調試的模擬器
以天天模擬器為例 ,已經有2台模擬器,只成功鏈接1台
用tasklist查看進程pid(當然任務管理器是更好用的)
查看佔用埠1992、8716的進程(10836是多開控制台)
30054 埠是與30055配對的
那麼我們可以得知另外一台模擬器的adb埠應該是30104
在cmd下面執行命令
PID , 埠 互查,tasklist,netstat_網路文庫
Android 調試系統是一個面對客戶服務系統,包括三個組成部分:
接著伺服器將所有運行中的模擬器或設備實例建立連接。它通過掃描所有5555到5585范圍內的奇數埠來定位所有的模擬器或設備。一旦伺服器找到 了adb守護程序,它將建立一個到該埠的連接。請注意任何模擬器或設備實例會取得兩個連續的埠——一個偶數埠用來相應控制台的連接,和一個奇數埠 用來響應adb連接。比如說:
模擬器1,控制台:埠5554
模擬器1,Adb埠5555
adb 鏈接多手機開發
分享是一種美德,牽手是一種生活方式。
最後感謝提供的分享平台,你覺得有用可以收藏方便以後查閱。
個人分享內容分類
今日頭條號--牽手生活 :android 破解與逆向(暫未接觸ios逆向)
csdn--牽手生活 :android 入門級介紹、部分工具類分享。
--牽手生活 :側重ios開發方面的知識點
D. 真機測試:adb和360MobileLink.exe 埠沖突怎麼辦
安裝好android SDK後,使用360助手連接真機,adb命令 adb devices 查看設備,運行停止報錯。
adb命令:netstat -aon|findstr 5037 查看佔用5037埠的的進程的pid號
嘗試根據pid號殺死進程失敗,因為流氓360會中途佔用5037埠。
解決方案:卸載360助手,或者使用豌豆莢
E. adb shell 埠佔用
某天,使用adb shell連接手機時,提示以下出錯信息:
error: device offline
以下是解決方法,記錄一下.
運行命令:adb nodaemon server
提示如下:
cannot bind 'tcp:5037'
怪了,5037埠好像是被佔用了
運行命令查看是哪個進程佔用的:
netstat -ano|findstr "5037"
這樣查到是pid為11068的進程佔用了
這樣就好辦了。
運行任務管理器,找到pid為11068的那行,右鍵「打開文件位置」,這里發現我的C:\windows\下居然也有一個adb.exe,估計是裝手機軟體時,不知哪家帶著安裝上去的(之前是沒有的),這樣就把這個adb先在任務管理器中,右鍵-結束進程,然後把C:\windows\adb.exe刪除。
然後執行adb shell,問題解決!
看來是電腦中存在多個adb的問題,造成了埠佔用。
F. 干貨|做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
點擊查看更多信息
G. 如何查看adb埠佔用情況
AS在連接真機的時候除了USB連接失敗,還會發生adb埠被佔用的情況,如5037被埠佔用,這里將介紹如何查看埠、查找對應程序、關閉佔用埠的程序,恢復AS的測試功能;
出現上面的錯,我們通常使用的adb kill-server方式是沒有用的,因為此時是其他進程的監聽了該埠,而不是adb。我們需要找到這個進程並關閉它;
.
H. 電腦怎麼使用adb
先打開winows菜單輸入cmd命令,然後點確定並進入命令模式,之後輸入命令D:,再回車輸入cd,緊接著選你的sdk路徑並復制路徑,緊接點擊cmd和選擇編輯、粘貼並將復制的路徑粘貼到命令行回車,最後打開adb即可。ADB就是起到調試橋的作用,用這個工具可以直接操作管理android模擬器或者真實的andriod設備(如手機)。它的主要功能有運行設備的shell(命令行);管理模擬器或設備的埠映射等。
更多關於電腦怎麼使用adb,進入:https://www.abcgonglue.com/ask/9c68041616094533.html?zd查看更多內容
I. Android adb埠佔用解決方法
在開發過程中,有時候會遇到adb埠(adb默認埠是:5037)被其他的進程佔用,導致手機無法正常連接調試。這就需要我們找到佔用adb埠的進程並殺掉,保證adb埠正常運行。
輸入命令行: adb nodaemon server
輸入命令行: netstat -ano | findstr "5037"
1)使用快捷鍵 Esc + Shift + Ctrl 打開任務管理器,選擇 查看 —— 選擇列 ;
2)在 進程頁列 勾選 PID 並 確定 。
根據 PID 選擇佔用進程,然後結束進程。
打開DOS命令窗口,輸入SDK安裝目錄(因人而異): cd E:android-sdk-windowsplatform-tools 回車,再輸入所在盤符 e: 回車,進入adb所在目錄; 再輸入 adb kill-server 結束服務,然後輸入 adb start-server 成功啟動服務即可。