『壹』 android通過ADB降級安裝軟體方法
adb安裝apk常用命令如下:
adb install D:\demo.apk
即install後面接包在電腦上的路徑,這里要確保已經通過adb連接到設備,常用以下命令連接,確保電腦與設備處於同一個區域網:
adb connect 設備ip
查看已連接設備,確保手機已連接到電腦:
adb devices
如果需要替換原來的應用,上面的安裝命令是行不通的,需要加上「-r」,即替換原來的應用:
adb install -r D:\demo.apk
那如果是降級安裝呢?再加「-d」:
adb install -r -d D:\demo.apk
這里的「r」指的是「replace」,替換原來的應用;「-d」指的是「downgrade」,降級安裝。
『貳』 手機運行adb命令軟體
【主要方式】
主要是通過adb命令進行鏈接手機或者查看手機連接的狀態。
【原理】
通過指令或者查看連接狀態確定是否開啟手機連接狀態。
【實現步奏】
通過usb連接電腦,注意一定要把360等手機助手關閉退出,這些軟體會佔用adb的使用。
然後打開cmd,adb devices 查看手機是否連接電腦。
注意點二:一定要打開手機的開發者模式,以下是連接的狀態,顯示設備的名稱。
【最後】
連接時候請注意2個注意點,如果發現adb 被莫名其妙的佔用,可以打開任務管理器進行關閉adb即可。
『叄』 Android手機軟重啟adb命令是什麼
運行設備的shell(命令行)。
管理模擬器或設備的埠映射。
計算機和設備之間上傳/下載文件。
將本地apk軟體安裝至模擬器或android設備。
ADB一個 客戶端-伺服器端 程序, 其中客戶端是用來操作的電腦,伺服器端是android設備。
1、 查看設備 *adbdevices。這個命令是查看當前連接的設備, 連接到計算機的android設備或者模擬器將會列出顯示。
2、 安裝軟體:adbinstall <apk文件路徑>。
這個命令將指定的apk文件安裝到設備上。
3、 卸載軟體
adbuninstall <軟體名>。
adbuninstall -k <軟體名>。
如果加 -k 參數,為卸載軟體但是保留配置和緩存文件。
『肆』 什麼是adb命令行
ADB(Android Debug Bridge)是Android
提供的一個通用的調試工具,藉助這個工具,我們可以很好的調試開發的程序,adb.exe在你安裝的android的sdk開發包platform-tools目錄下。
ADB是一個C/S架構的應用程序,由三部分組成:
1)adb client, 運行在PC上(為DDMS,即IDE工作)
2)adb daemon(守護進程),運行於Emulator(為與Emulator中的VM交互工作);
3)adb server(服務進程),運行在PC(任務管理器上有),管理著adb client和adb
daemon的通信。
server與client通信的埠是是5037,adb
server會與emulator交互的,使用的埠有兩個,一個是5554專門用於與Emulator實例的連接,那麼數據可以從Emulator轉發給IDE控制台了,另一個則是5555,專門與adb
daemon連接為後面調試使用。
adb使用方法:
adb [-d|-e|-s
當你發出一個命令,系統啟用Android客戶端。客戶端並不與模擬器實例相關,所以如果雙伺服器/設備是運行中的,你需要用-d選項去為應被控制的命令確定目標實例。關於使用這個選項的更多信息,可以查看模擬器/設備實例術語控制命令。
1、查詢模擬器/設備實例
在發布adb命令之前,有必要知道什麼樣的模擬器/設備實例與adb伺服器是相連的。可以通過使用 devices
命令來得到一系列相關聯的模擬器/設備
adbdevices
2、安裝應用到模擬器/設備:
你可以使用adb從你的開發電腦上復制一個應用程序,並且將其安裝在一個模擬器/設備實例。
像這樣做,使用install命令。這個install命令要求你必須指定你所要安裝的.apk文件的路徑:
adbinstall
例如:Weibo_4.1.1.apk是在我的C盤中,
C:\>adbinstallweibo_4.1.1-apk
3、卸載應用程序:
adbuninstall
注意:卸載軟體時,卸載的是包名,後面跟的是包的名字,而不是.APK.
4、從模擬器/設備中拷入或拷出文件:
可以使用adbpull、push命令將文件從模擬器/設備中拷貝出來或從電腦拷入。
adbpull <遠程路徑(手機)> <本地路徑(電腦)>
用pull命令可以把設備(手機)上的文件或者文件夾復制到本機電腦
adbpush <本地路徑(電腦)> <遠程路徑(手機)>
用push命令可以把本機電腦上的文件或者文件夾復制到設備(手機)
5、啟動linux命令界面shell
adbshell
Android本來就是一個linux操作系統,通過上面的命令,就可以進入設備或模擬器的shell環境中,所以大部分都是linux的命令,如mkdir,ls,netstat,mount
等。
主要介紹幾個Android特有的。
Getprop:返回Android的所有系統屬性。
Getevent:列印所有的鍵盤和觸摸事件
Logcat:輸出日誌
LS:用於顯示目錄內容
6、查看bug報告:
adb bugreport
7、記錄無線通訊日誌:
一般來說,無線通訊的日誌非常多,在運行時沒必要去記錄,但我們還是可以通過命令,設置記錄:
adb shell
logcat -b radio
8、獲取設備的ID和序列號:
adb get-proct
adb get-serialno
『伍』 ADB 命令
查詢設備
adb devices
查詢手機中的用戶
adb shell pm list users
查看設備上的應用包名:
adb shell pm list packages
adb shell pm list packages 列印設備/模擬器上的所有軟體包
adb shell pm list packages -f 輸出包和包相關聯的文件
adb shell pm list packages -d 只輸出禁用的包。由於本機禁用沒有,輸出為空。
adb shell pm list packages -e 只輸出啟用的包。
adb shell pm list packages -s 只輸出系統的包。
adb shell pm list packages -3 只輸出第三方的包。
adb shell pm list packages -i 只輸出包和安裝信息(安裝來源)。
adb shell pm list packages -u 只輸出包和未安裝包信息(安裝來源)
adb shell pm list packages -u -3 -e 組合使用
查詢帶有test的包名
adb shell pm list packages | findstr test
查詢安裝包路徑
adb shell pm path [PackageName]
查詢包對應的啟動activity
adb shell pm query-activities -a android.intent.action.MAIN -c android.intent.category.LAUNCHER [PackageName]
啟動應用
adb shell am start -n "[PackageName]/[ActivityName]" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
如:adb shell am start -n "com.example.test/com.example.test.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
卸載應用
adb shell pm uninstall -k --user 0 [PackageName] -k 表示保存數據 --user 指定用戶 id,Android 系統支持多個用戶,默認用戶只有一個,id=0
如 adb shell pm uninstall com.example.test 對所有用戶卸載com.example.test且不保存數據
停用應用
adb shell pm disable [PackageName]
啟用應用
adb shell pm enable [PackageName]
清除應用數據
adb shell pm clear [PackageName]
設置應用安裝位置
adb shell pm set-install-location
--[0/auto]:默認為自動
--[1/internal]:默認為安裝在手機內部
--[2/external]:默認安裝在外部存儲
獲取應用安裝位置
adb shell pm get-install-location
查詢操作過程中輸出的日誌
adb logcat > d:\log.txt
『陸』 一些App的adb啟動命令
記錄一些需要adb運行的app,所用的命令,也方便本人粘貼:
黑閾:
V2.4.1:
adb shell sh /data/data/me.piebridge.brevent/brevent.sh
V3.6.7.1:
adb -d shell sh /data/data/me.piebridge.brevent/brevent.sh
Shizuku 的 : App Ops的非root模式的依賴,是個管理工具。
酷安地址: Shizuku
adb shell sh /sdcard/android/data/moe.shizuku.privileged.api/files/start.sh
App OpsX: 管理App許可權的工具
adb shell sh /sdcard/Android/data/com.zzzmode.appopsx/opsx.sh &
煉妖壺(設備管理員):
dpm set-device-owner com.oasisfeng.island/.IslandDeviceAdminReceiver
冰箱(設備管理員):
adb shell dpm set-device-owner com.catchingnow.icebox/.receiverDPMReceiver
『柒』 [Android] 命令行工具adb
adb:Android Debug Bridge (安卓調試橋)
是一個命令行工具,用於電腦端和模擬器或者是設備之間的交互。
它是一個C/S架構程序,由3部分組成:
我們來看看adb是如何工作的。
時序圖:
這里講的是先安裝了android studio,然後使用adb的步驟。
這里以MAC系統添加為例
apt-get install adb
如果安裝某個apk不成功,可以使用adb安裝下,就可以看到具體不成功的錯誤。
adb install xxx.apk
adb devices
adb shell pm list packages
adb shell mpsys battery
adb exec-out screencap -p > test.png
參考:
https://developer.android.google.cn/studio/run/device
https://anqz.github.io/2015-05-21-Intro-adb
『捌』 常用的adb命令
在平時的工作中,會經常用到adb命令,在這里稍微整理了一下。
一.概要
1.什麼是adb?
adb全稱為Android Debug Bridge,就是起到調試橋的作用。顧名思義,adb就是一個debug工具。
2.adb工作原理
不是很理解?那就來看看它的工作原理吧。
上圖是一個簡單的adb工作原理圖。adb客戶端伺服器端程序,由上圖可以看出它主要三個組件組成:Client,Server,Daemon。
(1)當你啟動一個adb Client(客戶端),Client首先會選確認是否已有一個adb
Server(伺服器)進程在運行,如果沒有,則會啟動Server進程。此時,adb Server就會綁定本地的TCP埠5037,並監聽adb
Client發來的命令。
(2)接著,Server將會掃描所有5555到5585范圍內的奇數埠來定位所有的模擬器或設備,並與之建立連接。一旦Server找到
了adb
daemon(守護程序),它將建立一個到該埠的連接,這樣,我們就可以使用adb命令控制和訪問模擬器或設備了。在這里,需注意的是任何模擬器或設備實例會取得兩個連續的埠:一個偶數埠用來相應控制台的連接,和一個奇數埠用來響應adb連接。
3.adb的作用
藉助adb工具,我們可以管理設備或手機模擬器的狀態,還可以進行很多手機操作,如安裝軟體、系統升級、運行shell命令等等。簡而言之,adb就是連接Android手機和PC端的橋梁,可以讓用戶在電腦上對手機進行全面的操作。
二.常用命令
這個部分主要介紹adb的使用方法和一些常用的命令。
設置adb環境:將android sdk工作目錄添加到系統環境變數中,則可使用adb命令了。
1. adb devices
查看當前連接的設備(連接計算機的Android設備或者模擬器)。
2.adb install
adb install <apk文件路徑>,將指定的apk安裝到設備上,安裝的apk包會放在/data/app目錄下。
幾個參數:
-r 強制安裝
-d(真機,多個設備中只有一個真機時適用)
-e(模擬器,多個設備中只有一個模擬器時適用)
-s(指定設備,後接序列號)
adb –s 44a188f9 install –r test.apk(其中44a188f9即序列號,通過adb devices可獲取)
3.adb uninstall
adb uninstall <apk包名>
adb uninstall –k <apk包名>
-k參數為卸載軟體時保留配置和緩存文件
4.adb reboot
重啟android設備
5.adb shell
通過adb shell 命令,就可以進入設備或者模擬器的shell環境了,在這個Linux shell中,我們就可以執行各種Linux命令了。
如果只想執行一條shell命令,就可以採用:adb shell [shell_command]
在實際使用中,經常與grep或findstr一起使用,起到過濾作用,查看自己需要的關鍵信息。
6.adb shell su
前提手機已經root。獲取adb shell的root許可權。
使用su提權,用戶命令提示符有$變成#,如果手機沒有root,會提示su:permission denied。
7.adb shell ps/top
查看當前終端中的進程信息,如pid等。
8.adb shell am/pm
am全稱為activity manager,可使用am命令模擬各種系統的行為,如去啟動一個activity,強制停止進程,發送廣播進程,修改設備屏幕屬性等。
如:adb shell am start <apk包名>/<activityName>:啟動一個activity。
pm全稱為package manager,利用pm命令可模擬android行為或查詢設備上的應用等。
如:adb shell pm list packages
列出當前設備所有已安裝的程序的包名。
說明:
管道符「|」:可以把標準的輸入流與標準的輸出流進行合並,或者把某個命令的標准輸出流作為另一個命令的標准輸入流。
exit退出shell。
由於grep為linux命令,運行單條adb shell 時並沒有進入linux
shell環境,並不能用grep等其他linux命令,只能用window cmd的命令。在這里可以用findstr來代替grep,使用方法為
findstr/grep [keyword]
更詳細的內容可查看 參考文獻3 和 參考文獻4 。
對於常用的linux命令和常用的windows 控制台命令,以後再作總結。
9.adb pull 和 adb push
adb pull <設備中的文件路徑> <本地路徑>:從模擬器或設備中復制文件到本地。
adb push <本地文件路徑> <設備中的路徑>:將本地文件或目錄復制到模擬器或設備。
這里還涉及到一個許可權的問題,在後續的博文中再作介紹。
10.adb shell mpsys
Android提供的mpsys工具用於查看感興趣的系統服務信息與狀態。
參考下表:
11.adb shell monkey
跑monkey是android自動化測試的一種手段,所謂monkey測試就是模擬用戶的按鍵輸入,觸摸屏輸入,手勢輸入等。當Monkey程序在模擬器或設備運行的時候,如果用戶比如點擊,觸摸,手勢或一些系統級別的事件的時候,它就會產生隨機脈沖,所以可以用Monkey的隨機重復的方法對apk作壓力測試,來測試android
app的穩定性。
如下為測試騰訊新聞apk的一個簡單實例:
說明:第一個-s指定設備,如果只連接了一台設備,可不用該參數。
-p <apk包名>只允許系統啟動指定的app,如果不指定,將允許系統啟動設備中的所有app,也可指定多個包。
--throttle <毫秒數> 指定用戶操作(事件)間的時延。
--ignore-crashes 指定當應用程序崩潰時,Monkey依然發送事件,直到事件計數完成。
--ignore-timeouts 當應用程序發生ANR錯誤時,Monkey依然會發送事件,直到事件計數完成。
第2個-s,用於指定偽隨機數生成器的seed值,如果seed相同,則兩次Monkey測試所產生的事件序列也相同的。
-v 用於指定反饋信息級別,總共分為level 0、level 1、level 2三個級別,級別越高,輸出的日誌越詳細。
最後的數字(這里是500):表示Monkey程序模擬500次隨機用戶操作事件。
>輸出測試結果到D:\monkeylog.txt
更詳細的參數可查看 參考文獻5 。
部分測試結果如下:
對於測試結果的分析,通過搜索關鍵詞來定位錯誤,主要包括以下四個方面:
1)ANR(Application Not
Response):程序無響應,一般主線程超過5秒沒處理就會出現ANR錯誤。通過搜索ANR關鍵詞來定位關鍵的事件信息。除了導出日誌外,還可以將/data/anr/目錄下的trace.txt文件導出,用來定位分析問題。使用>adb
pull /data/anr/trace.txt d:\ 將trace.txt文件導出到d盤。
2)ForceClosed或其他異常退出信息:通過搜索Fatal關鍵詞來定位。
3)崩潰問題:通過搜索Exception關鍵詞來定位。
4)發生異常後,通過搜索Crash關鍵詞來定位到詳細的堆棧信息。
12.kill
kill用來中止一個進程。
比如我們在跑monkey的時候,怎麼強制關閉monkey呢,可以用kill <monkey進程PID>
說明:另開啟一個cmd,找到monkey的pid號,然後殺掉即可。
參考文獻:
1.Android調試橋: http://www.iteye.com/topic/260042
2.Android性能分析工具mpsys的使用: http://www.open-open.com/lib/view/open1405061994872.html
3.adb shell 中的am pm命令: http://www.android100.org/html/201312/09/4957.html
4.adb shell 啟動應用程序的方法: http://blog.chinaunix.net/uid-26997997-id-3350449.html
5.Monkey壓力測試詳解: http://blog.csdn.net/huangbiao86/article/details/8490743
『玖』 干貨|做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
點擊查看更多信息