Ⅰ ADB常用命令大全
安卓調試橋(android Debug Bridge),是Android SDK中的一個調試工具, 使用adb可以直接操作管理Android模擬器或Andriod真機設備,在開發測試過程中,起到調試的作用。
adb.exe的存放路徑:Android-SDKplatform-tools
adb help //查看幫助
adb version //查看adb版本號
adb devices //查看設備
adb connect IP:port //連接設備
adb disconnect //斷開連接的所有設備
adb disconnect IP:port //斷開連接指定設備
adb root //獲取root許可權
adb remount //重新掛載文件系統(默認只讀,執行命令後可寫)
adb install Package //安裝APK
adb install -r Package //強制覆蓋安裝
adb install -t Package //允許降級覆蓋安裝
adb install -d Package //允許測試包
adb uninstall PackageName //卸載APK
adb uninstall -k (keep) PackageName //保留用戶數據卸載
adb pull //將設備文件文件發送到PC
adb push //將PC文件發送到設備
adb logcat -c //清空日誌
adb logcat -v threadtime >D:111.log //抓日誌並輸出保存D:111.log
adb shell screencap /sdcard/screen.png //屏幕截圖(並存放sdcard目錄,命名screen.png)
adb shell screenrecord /sdcard/demo.mp4 //錄制屏幕(Android4.4以上可用)
adb shell mpsys activity activities //查看activity信息
adb shell mpsys activity |findstr mResumedActivity //獲取當前activity信息
adb shell mpsys window windows | findstr 「Current」 //查看當前app窗口activity
adb shell //進入設備內部
cd //切換目錄
pwd //查看當前路徑
ping //查看網路連接
rm* //刪除目錄下的所有文件
cp -r /path/filename /NewPath //拷貝文件
busybox find / -name FileName //查找文件
tcpmp -i any -p -s 0 -w /data/data/1111.pcap //抓取網路包
pm uninstall PackageName //卸載APK
pm path PackageName //查看APK存放位置
pm clear PackageName //清除APK緩存
mpsys package om.android.xxx //查看APK的具體信息
mpsys package om.android.xxx | grep version //查看APK版本
mpsys package com.tencent.mm | findstr versionName //查看APK版本
am start PackageName //拉起APK
am start -n com.android.xxx/.WelcomeActivity //直接拉起APK的指定WelcomeActivity
am start -a android.intent.action.VIEW -d http://www..com //拉起網路
am start -n om.android.xxx/.WelcomeActivity --es actionUrl "http://sns.is.xxxxx.com/CCTV/index.html?action=detail&object=5005153" //指定Activity上拉起H5
am force-stop + 報名 //殺死進程
kill `ps |grep -E "icntv|istv" | busybox awk '{print $2}'` //殺進程
md5 com.android.xxx //查看已安裝應用MD5
busybox vi hispreinstall.sh //編輯文件(命令行)
chmod 777 /system/bin/hispreinstall.sh //修改許可權
cat /system/build.prop | grep "proct" //查看設備信息
exit //退出shell交互模式
adb shell getprop ro.build.version.release //查看Android系統版本
adb get-serialno //獲取手機序列號
adb shell mpsys package //列出所有安裝應用的信息
adb shell pm list packages //查看設備中的所有應用的包名
adb shell cat/proc/cpuinfo //獲取CPU型號等信息(HardWare後面是CPU型號)
adb shell "ps | grep packageName" //查指定程序pid
adb shell getprop //查看手機信息
adb shell getprop ro.serialno //查看手機序列號
adb shell cat /proc/cpuinfo //查看手機CPU信息
adb shell cat /proc/meminfo //查看手機內存信息
adb reboot recovery //重啟手機到recovery刷機模式
adb reboot bootloader //重啟手機到bootloader界面
adb shell mpsys battery //獲取電池信息
adb shell mpsys battery set status 1 //設置手機進入非充電狀態,為2設置充電狀態
adb shell mpsys battery set level 100 //設置電量百分比
adb shell mpsys batterystats //獲取整個設備的電量消耗信息
adb shell mpsys batterystats | more //綜合電量消耗
adb shell mpsys batterystats com.android.xxx //獲取某個apk的電量消耗信息
adb shell mpsys batterystats packageName | more //獲取指定程序電量消耗信息
adb shell cat /proc/uid_stat/$PID/tcp_snd //發送的數據流量
adb shell cat /proc/uid_stat/$PID/tcp_rcv //接收的數據流量
procrank //查看內存
adb shell top | findstr com.android.xxx //查看指定APK內存
top -n 3 |grep -E "com.android.xxx|android.yyy" //查看內存
adb shell mpsys cpuinfo |findstr com.android.xxx //查看指定APK CPU
mpsys cpuinfo |grep -E "com.android.xxx|android.yyy" //查看CPU
adb shell settings put global http_proxy ip(PC):port(默認8888) //設置代理
adb shell settings get global http_proxy //查看代理
adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db //進入sqlite
delete from global where name in('global_http_proxy_host','global_http_proxy_port','http_proxy'); //移除代理
adb shell stop //關閉設備
adb shell start //開啟設備
adb start-server //啟動adb服務
adb kill-server //關閉adb服務
adb reboot //重啟手機
adb shutdown //關閉手機
1、首次使用USB線連接Android手機,然後打開Terminal輸入:adb tcpip 埠號(默認5555)
2、查看手機IP地址:設置->關於手機->狀態信息->IP地址
3、通過adb連接ip地址:adb connect IP:port
Ⅱ adb如何使用
首先要配置好adb,也就是要cmd能找到adb,這個你可以網路一下如何配置adb。x0dx0a然後就是adb的命令,如下:x0dx0a要使用adb命令,手機需要打開USB debug。x0dx0a安裝軟體x0dx0aadb install apk文件名稱.apkx0dx0a重新安裝該軟體x0dx0aadb install -r apk文件名稱.apkx0dx0a卸載apk軟體x0dx0aadb uninstall apk包名.apkx0dx0a查看手機上的運行日誌,此項可以用來查錯x0dx0aadb logcatx0dx0a查看手機是否連接,以及連接了幾台手機x0dx0aadb devicesx0dx0aA為手機路徑,B為電腦路徑,意思為:把文件從手機中復制到電腦上x0dx0aadb pull x0dx0aA為手機路徑,B為電腦路徑,意思為:把文件從電腦復制到手機上x0dx0aadb push x0dx0a進入手機的超級終端Terminal x0dx0aadb shellx0dx0a重新掛載文件系統x0dx0aadb remountx0dx0a重啟手機x0dx0aadb rebootx0dx0a重啟到Recovery界面x0dx0aadb reboot recoveryx0dx0a重啟到bootloader界面x0dx0aadb reboot bootloaderx0dx0a例子:刷官方高版本後重新獲取ROOT和降級方法(部份操作)x0dx0a進行adb運行環境x0dx0aadb shellx0dx0a設置超級用戶模式x0dx0asux0dx0a映射出目錄x0dx0amount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /systemx0dx0a退出sux0dx0aexitx0dx0a退出shell准備接受下一個adb命令x0dx0aexitx0dx0a增加flash_image文件到手機上x0dx0aadb push flash_image.zip /system/bin/flash_imagex0dx0arecovery先復制到卡上x0dx0aadb push recovery-RA-heroc-v1.6.2.img /sdcardx0dx0a再次進入adb環境x0dx0aadb shellx0dx0a修改文件屬性x0dx0achmod 0755 /system/bin/flash_imagex0dx0a重啟系統x0dx0arebootx0dx0ax0dx0a採納我吧
Ⅲ 使用adb查看別人家APP的數據
1.說明
2.使用adb命令獲取指定應用的包名和Activity名稱
3.使用adb命令啟動/關閉APP
4.使用adb命令把手機中的apk導到電腦上
5.查看apk中的AndroidManifest.xml文件
6.使用adb命令進行數據備份
7.查看數據
8.結語
查看其它APP數據的前提是該APP默認開啟數據備份,也就是allowBackup屬性。
想問一下大家在平時的開發中對應用的安全性有很在意么?有可能大家會想到加密、混淆、apk加固,但還有一些其他細節的東西需要大家去了解。今天就介紹一下android:allowBackup屬性。這個屬性在開發的過程中通常是默認開啟的,Google起初是為了防止數據丟失,留下了這個功能,但是這個屬性也容易造成一些隱私數據的泄露。如果你想關閉可以把它設置為false。那麼這個屬性在哪裡設置呢,就在AndroidManifest.xml文件中的application標簽中。
要備份APP的數據,首先我們要知道這個APP的包名才可以進行備份。
在手機或模擬器上面運行APP,然後輸入命令: adb shell mpsys activity top #
這時會輸出很多東西,你可以用查找功能Ctrl+F,找到TASK,下圖紅框中就是要找的包名
命令: adb logcat| findstr START
然後在手機或模擬器上點擊你想要獲取的應用,這時就會在cmd中出現相應的包名和類名了。
啟動APP的命令: adb shell am start -W -n package/activity
命令窗口通過adb shell 進入android 的linux命令界面,輸入am help看到如下信息:
它會展示出在不同場景下(比如start-activity、start-service等)不同參數代表的意義一些參數的意義,情況太多了這里就不細說了。
回到正題,後面的package和activity就是上面獲取包名第二種方法中提到的cmp,比如我們要啟動谷歌地圖: adb shell am start -W -n com.google.android.apps.maps/com.google.android.maps.MapsActivity
在這里我們再做一個延伸, 用命令做APP的冷啟動和熱啟動操作,然後記錄啟動的時間
我們看到上圖中有三個數字ThisTime、TotalTime和WaitTime,這三個數字就是本次啟動APP所花費的時間。
熱啟動時退出退出APP的命令: adb shell input keyevent 3 ,這就相當於按了手機的home鍵,然後我們再執行啟動APP的命令,這樣就完成了熱啟動。
我們看到熱啟動花費的時間比冷啟動少了很多,一套冷、熱啟動的流程我們就走完了。接下來就看我們怎麼去優化了,讓它們變的更少。所以我們在平時做啟動優化的時候可以把自己的APP和一些優秀的APP做一下對比看看還差多少。
上面已經說過了一種退出APP的方法了,接下來這個命令是相當於殺掉當前的APP進程。
命令: adb shell am force-stop package
這時候再使用啟動命令,就相當於冷啟動了。
有的時候我們在手機上查看和操作apk不是特別方便,而且通過文件管理找apk也很難找。接下來就介紹怎麼用adb命令把手機中的apk導到電腦上。
通過包名獲取apk在手機中的存儲路徑,命令 adb shell pm path package
導出apk文件,到當前目錄下
命令: adb pull 路徑
這一步就要看一下apk中有哪些東西了,主要還是看一下AndroidManifest.xml文件當中的allowBackup設置。
我平常用的方法就是吧apk文件的後綴該成zip,然後就可以看到裡面的東西了。下面的是谷歌地圖的apk的構成。
下面來看一下AndroidManifest.xml文件,會看到都是亂碼,但是關鍵的信息還是可以獲取的,我們目前想要的就是下圖紅框中的allowBackup屬性,像谷歌的APP肯定是把它設置成false的,所以我們沒辦法備份它的信息的。
那麼我們怎麼看一個應用的allowBackup屬性設置成true還是false呢,我的觀察和實踐出來的方法是看allowBackup後面有沒有小方框,有就代表設置了true。如果有哪位大神知道好的可靠的方法還請留言告知。
下面是其他apk中的AndroidManifest.xml文件,後面帶了個小方框。
在了解到APP可以備份之後,我們就可以開始做壞事了,哈哈。
備份的命令: adb backup -nosystem -all -noapk -noshared -f data.ab package
[-system | -nosystem] 是否備份系統
[-apk | -noapk] 是否備份apk安裝文件
[-shared | -noshared] 是否備份手機存儲空間
-f *.ab 存檔格式一定要是.ab
package:包名
在運行命令之後,手機或模擬器會出現一個頁面要求你輸入備份密碼,這個密碼你可以隨便輸入,但你要記住,在後面查看ab文件的時候會用到。
輸入密碼,點擊【備份我的數據】之後就開始備份了,備份完成之後會有提示,這時就是生產一個ab文件了。
ab文件大家很少接觸,這里使用abe工具(鏈接: https://pan..com/s/1NPbhtF1fyJcHOm1CXwi9Dg
寫這篇文章還是提醒大家在平時的開發中要注重APP數據的安全問題,畢竟數據還是相當重要的。
如果有哪裡寫的不對的地方,請指出,我會及時改正。
Ⅳ 常用的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
Ⅳ 常見的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 shell常用命令匯總
adb(Android Debug Bridge),SDK自帶的工具,可實現橋接功能,實現PC和android設備的交互
adb shell:基於Android linux系統操作,放在安卓設備的system/bin目錄下,手機端的命令
一:adb常用命令
1. PC連接android設備
(PC與android設備連接同一個wifi,或處於同一個區域網)
連接:adb connect ip:5555
斷開連接:adb disconnect ip
查看連接設備的信息:adb devices
獲取設備的狀態:adb get-state
2. 重啟adb server
打開adb服務:adb start-service
關閉adb服務:adb kill-service
3. 安裝卸載軟體
安裝:adb install apkpath(某個apk)
adb install -r :強制安裝
卸載: adb uninstall package(可用adb shell pm list packages查看包名)
4. 列印日誌
列印android系統日誌:adb logcat
將日誌列印並保存指定文件夾:adb logcat > /Users/apple/Desktop/log.txt
終止進程:control+C
列印mpsys,mpstate,logcat的輸出,用於分析錯誤:adb bugreport
5. PC與android設備上文件復制
android設備上文件復制到PC上:adb pull
PC上文件推至android設備:adb push
6.重新掛載system分區為可寫,需要root許可權./system分區默認掛載為只讀,但有些操作比如給android系統添加命令,刪除自帶應用等需對系統進行寫操作,得重新掛載為可寫
adb shell
su
或:adb root
adb remount 重新掛載文件系統,獲得可寫的許可權(默認情況是只有可讀許可權的),使用adb remount 的前提是要有root許可權
7. 刪除系統應用
adb root
adb remount
adb shell
cd system/app
rm *apk
二:adb shell命令
adb shell 進入系統子目錄,exit 退出
1. pm命令
列出系統應用的所有包名:adb shell pm list packages 可用grep來過濾:adb shell pm list packages | grep 關鍵字
清除應用數據與緩存:adb shell pm clear <packagename>
2. am命令
啟動應用:adb shell am start -n com.xxx.xxxxxxx|xxx.Activity(可通過adb shell mpsys activity activities | grep mFocusedActivity查看
強制停止應用:adb shell am force-stop <packagename>
3. input命令
模擬點擊事件,點擊坐標點(x,y):adb shell input tap x y
模擬滑動事件,從(x1,y1)到(x2,y2):adb shell input swipe x1 y1 x2 y2
發送文本內容:adb shell input text
模擬按下home:adb shell input keyevent KRYCODE_HOME
4. screencap命令
截屏:adb shell screencap
5. 查看網路狀態命令
查看當前網路狀態:adb shell netstat
通過配置文件配置和管理網路連接:adb shell netcfg
查看網路信息:ifconfig
測試網路聯網狀態:ping
5.其它相關命令
查看當前終端中進程:adb shell ps
獲取cpu信息:adb shell cat /proc/cpuinfo
查看內存信息:adb shell cat /proc/meminfo
查看屏幕解析度:adb shell wm size
查看設備ip地址:adb shell ifconfig | grep Mask
查看實時資源佔用情況:adb shell top
Ⅶ ADB命令對手機進行操作
連接設備後 adb shell 進入設備檢查是否有root(&表示沒root,#表示已經root)
沒root執行如下
exit
adb root
adb remount
執行這一步後仍舊不能對system進行讀寫。
再exit退出了執行下面命令
adb disable-verity
adb reboot -手機重啟
開機後執行adb root ----不用進入設備
adb remount
adb shell
cd 到你要修改文件的地方試試如:應用apk安裝在/system/priv-app/目錄下
rm –rf * 刪除當前文件夾所有文件 ---(慎重)
刪除掉文件後exit退出來,上傳文件命令如下
adb push 需要上傳的文件+空格+上傳的地方目錄
其他操作:Read-only file system
adb logcat -v time | findstr START --查看包名
rm XXXXX ---刪除文件 (帶中文的文件需要輸入前面的字元然後按Tab 自動聯想出文件名後去刪除,聯想會自動轉譯字元)
Ⅷ 手機adb命令怎麼使用
adb連接手機
【主要方式】
主要是通過adb命令進行鏈接手機或者查看手機連接的狀態。
【原理】
通過指令或者查看連接狀態確定是否開啟手機連接狀態。
【實現步奏】
通過usb連接電腦,注意一定要把360等手機助手關閉退出,這些軟體會佔用adb的使用。
然後打開cmd,adb devices 查看手機是否連接電腦。
Ⅸ 干貨|做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
點擊查看更多信息