Android 調(diào)試橋 (adb) ?,可與設(shè)備進(jìn)行通信。adb 命令可用于執(zhí)行各種設(shè)備操作(例如安裝和調(diào)試應(yīng)用),并提供對(duì) Unix shell(可用來(lái)在設(shè)備上運(yùn)行各種命令)的訪(fǎng)問(wèn)權(quán)限。它是一種客戶(hù)端-服務(wù)器程序,包括以下三個(gè)組件:
樅陽(yáng)網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
客戶(hù)端: 用于發(fā)送命令。客戶(hù)端在開(kāi)發(fā)機(jī)器上運(yùn)行。可以通過(guò)發(fā)出 adb 命令從命令行終端調(diào)用客戶(hù)端。(可以通過(guò)它對(duì)Android應(yīng)用進(jìn)行安裝、卸載、調(diào)試)
PC上的手機(jī)助手基本都是通過(guò)adb命令去完成的。有時(shí)候裝了這類(lèi)手機(jī)助手的話(huà),它自帶的adb程序可能會(huì)與Android SDK下的adb程序產(chǎn)生沖突,5037端口被占用,導(dǎo)致adb命令無(wú)法連接到設(shè)備。Windows下通過(guò)netstat -ano|findstr "5037"
守護(hù)程序 (adbd): 用于在設(shè)備上運(yùn)行命令。守護(hù)程序在每個(gè)設(shè)備上作為后臺(tái)進(jìn)程運(yùn)行
執(zhí)行adb shell ps | grep adbd, 可以找到該后臺(tái)進(jìn)程,Windows使用findstr替代grep.
adb nodaemon server
服務(wù)器(Service): 用于管理客戶(hù)端與守護(hù)程序之間的通信。服務(wù)器在開(kāi)發(fā)機(jī)器上作為后臺(tái)進(jìn)程運(yùn)行
adb服務(wù)啟動(dòng)后,Windows可以在任務(wù)管理中找到adb.exe; linux ps -ef | gref adb 可以查看service
一般都是通過(guò)這樣子的格式 adb [-d|-e|-s 設(shè)備序列號(hào)] 子命令
通常只有一臺(tái)設(shè)備就忽略 [-d|-e|-s ] 這一部分
這里介紹一些常用的命令:
獲取設(shè)備列表及設(shè)備狀態(tài)
獲取設(shè)備的狀態(tài)
注意:設(shè)備的狀態(tài)有 3 鐘,device?,?offline?,?unknown
device:設(shè)備正常連接
offline:連接出現(xiàn)異常,設(shè)備無(wú)響應(yīng)
unknown:沒(méi)有連接設(shè)備
結(jié)束 adb 服務(wù)
啟動(dòng) adb 服務(wù)
注意:通常兩個(gè)命令一起用,有時(shí)候我們開(kāi)啟server會(huì)失敗,這是因?yàn)槲覀冄b了的手機(jī)助手,豌豆莢或者其他軟件自帶有自己的adb,導(dǎo)致端口沖突開(kāi)啟失敗。一般在連接出現(xiàn)異常,使用 adb devices 未正常列出設(shè)備, 設(shè)備狀態(tài)異常時(shí)使用 kill-server,然后運(yùn)行 start-server 進(jìn)行重啟服務(wù)。
打印 Android 的系統(tǒng)日志
打印 dumpsys、dumpstate、logcat 的輸出,也是用于分析錯(cuò)誤輸出比較多
打印日志后重定向到一個(gè)文件中
安裝應(yīng)用,覆蓋安裝是使用 -r 選項(xiàng)
注意:有些adb版本無(wú)法支持安裝中文的apk
查看手機(jī)應(yīng)用包名
查看應(yīng)用對(duì)應(yīng)的apk文件在手機(jī)上的安裝位置則可以在上面的命令后加-f參數(shù)
卸載應(yīng)用,后面跟的參數(shù)是應(yīng)用的包名,請(qǐng)區(qū)別于?apk 文件名
'-k' means keep the data and cache directories , -k 選項(xiàng),卸載時(shí)保存數(shù)據(jù)和緩存目錄
將 Android 設(shè)備上的文件或者文件夾復(fù)制到本地
adb pull /sdcard/test.txt C:\Users\Administrator\Desktop\log
推送本地文件至 Android 設(shè)備
獲取連接到的手機(jī)的序列號(hào)
獲取設(shè)備的連接狀態(tài)
等待設(shè)備連接成功
該命令將會(huì)阻塞一直到默認(rèn)連接的那部機(jī)器狀態(tài)變?yōu)閐evice,也就是連接成功。
其實(shí)adb shell命令就是調(diào)用的是Android設(shè)備中的system/bin目錄下的命令。
Android的內(nèi)核本身就是Linux,所以Android本身也支持Linux命令,但是因?yàn)槭鞘謾C(jī)系統(tǒng),所以進(jìn)行了一定的刪減,部分命令不支持,而不支持的部分,我們可以通過(guò)安裝busybox這個(gè)軟件進(jìn)行。
如何在手機(jī)中執(zhí)行Shell命令?
每次都加上adb shell來(lái)進(jìn)行命令的發(fā)送與執(zhí)行
先通過(guò)adb shell進(jìn)入手機(jī)Shell執(zhí)行狀態(tài),然后直接輸入Linux命令。
使一個(gè)apk處于禁用狀態(tài),相當(dāng)于卸載了:
其中 PACKAGE_OR_COMPONENT的格式是 package/class, 如 com.UCMobile/.main.UCMobile
eg:adb shell su disable com.UCMobile/.main.UCMobile
同時(shí)我們?cè)谑謾C(jī)上發(fā)現(xiàn),UC瀏覽器的圖標(biāo)不見(jiàn)了
讓一個(gè)apk從禁用狀態(tài)恢復(fù)過(guò)來(lái)
其中 PACKAGE_OR_COMPONENT的格式是 package/class, 如 com.UCMobile/.main.UCMobileeg:
adb shell su enable com.UCMobile/.main.UCMobile
同時(shí)我們從手機(jī)上發(fā)現(xiàn),UC瀏覽器的圖標(biāo)又出現(xiàn)了。
查看一個(gè)apk所在的路徑
adb shell pm path com.UCMobile
查看手機(jī)中裝的所有的包
屏幕開(kāi)始錄像并且儲(chǔ)存到/sdcard中,同時(shí)名字為demo.mp4
錄屏設(shè)置時(shí)長(zhǎng)10s,命名為demo.mp4
注意:現(xiàn)在僅支持一部分手機(jī)錄屏,不支持的手機(jī)會(huì)出現(xiàn)以下提示
解決方法:
安裝了scrcpy之后,只需要輸入如下命令,即可錄取指定設(shè)備的屏幕
scrcpy -s device --render-expired-frames -Nr ./demo.pm4
--render-expired-frames:盡可能最大幀率
-N:不在PC端展示
-r:錄制mp4/mkv文件
關(guān)閉設(shè)備請(qǐng)求,開(kāi)啟設(shè)備
設(shè)備關(guān)機(jī)以及重啟
pm(package manager)可以獲取一些安裝到Android設(shè)備上的app的信息
pm list packages 用法:list packages [?options]?filter
獲取所有的應(yīng)用的包名
列出系統(tǒng)應(yīng)用
列出第三方應(yīng)用
查看它們的關(guān)聯(lián)文件
adb shell pm list package -f
查看軟件包的安裝來(lái)源
pm dump?包名?很多dump信息
安裝應(yīng)用
apk如果在電腦用 adb install?
如果在Android設(shè)備上用 adb shell pm install
卸載應(yīng)用,同adb uninstall ,后跟包名
清除應(yīng)用數(shù)據(jù)
am(activity manager,字面意思就跟activity有關(guān),大家都知道Android的界面都是由一個(gè)個(gè)activity顯示的)
啟動(dòng)一個(gè)Activity
獲取到package和launch_activity
AndroidSDK中aapt工具,檢索命令結(jié)果,可以獲取到package和launch_activity
這里涉及到一個(gè)點(diǎn),如何找到程序的入口,首先你要知道是哪個(gè)activity才能啟動(dòng);
啟動(dòng)華為系統(tǒng)相機(jī)
打開(kāi)音樂(lè)播放器
播放指定音樂(lè):
先停止目標(biāo)應(yīng)用,再啟動(dòng)
等待應(yīng)用完成啟動(dòng)
啟動(dòng)網(wǎng)頁(yè)(android.intent.action.VIEW具體參考Android官網(wǎng))
結(jié)束應(yīng)用
input
模擬輸入,向獲得焦點(diǎn)的EditText控件輸入內(nèi)容
返回主界面
發(fā)送一個(gè)點(diǎn)擊操作的指令,參數(shù)是x y坐標(biāo)
從左往右滑動(dòng)屏幕,?/從?100 100?經(jīng)歷300毫秒滑動(dòng)到?200 200
長(zhǎng)按操作,在?100 100?位置長(zhǎng)按?1000毫秒
在平時(shí)的工作中,會(huì)經(jīng)常用到adb命令,在這里稍微整理了一下。
一.概要
1.什么是adb?
adb全稱(chēng)為Android Debug Bridge,就是起到調(diào)試橋的作用。顧名思義,adb就是一個(gè)debug工具。
2.adb工作原理
不是很理解?那就來(lái)看看它的工作原理吧。
上圖是一個(gè)簡(jiǎn)單的adb工作原理圖。adb客戶(hù)端服務(wù)器端程序,由上圖可以看出它主要三個(gè)組件組成:Client,Server,Daemon。
(1)當(dāng)你啟動(dòng)一個(gè)adb Client(客戶(hù)端),Client首先會(huì)選確認(rèn)是否已有一個(gè)adb
Server(服務(wù)器)進(jìn)程在運(yùn)行,如果沒(méi)有,則會(huì)啟動(dòng)Server進(jìn)程。此時(shí),adb Server就會(huì)綁定本地的TCP端口5037,并監(jiān)聽(tīng)adb
Client發(fā)來(lái)的命令。
(2)接著,Server將會(huì)掃描所有5555到5585范圍內(nèi)的奇數(shù)端口來(lái)定位所有的模擬器或設(shè)備,并與之建立連接。一旦Server找到
了adb
daemon(守護(hù)程序),它將建立一個(gè)到該端口的連接,這樣,我們就可以使用adb命令控制和訪(fǎng)問(wèn)模擬器或設(shè)備了。在這里,需注意的是任何模擬器或設(shè)備實(shí)例會(huì)取得兩個(gè)連續(xù)的端口:一個(gè)偶數(shù)端口用來(lái)相應(yīng)控制臺(tái)的連接,和一個(gè)奇數(shù)端口用來(lái)響應(yīng)adb連接。
3.adb的作用
借助adb工具,我們可以管理設(shè)備或手機(jī)模擬器的狀態(tài),還可以進(jìn)行很多手機(jī)操作,如安裝軟件、系統(tǒng)升級(jí)、運(yùn)行shell命令等等。簡(jiǎn)而言之,adb就是連接Android手機(jī)和PC端的橋梁,可以讓用戶(hù)在電腦上對(duì)手機(jī)進(jìn)行全面的操作。
二.常用命令
這個(gè)部分主要介紹adb的使用方法和一些常用的命令。
設(shè)置adb環(huán)境:將android sdk工作目錄添加到系統(tǒng)環(huán)境變量中,則可使用adb命令了。
1. adb devices
查看當(dāng)前連接的設(shè)備(連接計(jì)算機(jī)的Android設(shè)備或者模擬器)。
2.adb install
adb install apk文件路徑,將指定的apk安裝到設(shè)備上,安裝的apk包會(huì)放在/data/app目錄下。
幾個(gè)參數(shù):
-r 強(qiáng)制安裝
-d(真機(jī),多個(gè)設(shè)備中只有一個(gè)真機(jī)時(shí)適用)
-e(模擬器,多個(gè)設(shè)備中只有一個(gè)模擬器時(shí)適用)
-s(指定設(shè)備,后接序列號(hào))
adb –s 44a188f9 install –r test.apk(其中44a188f9即序列號(hào),通過(guò)adb devices可獲?。?/p>
3.adb uninstall
adb uninstall apk包名
adb uninstall –k apk包名
-k參數(shù)為卸載軟件時(shí)保留配置和緩存文件
4.adb reboot
重啟android設(shè)備
5.adb shell
通過(guò)adb shell 命令,就可以進(jìn)入設(shè)備或者模擬器的shell環(huán)境了,在這個(gè)Linux shell中,我們就可以執(zhí)行各種Linux命令了。
如果只想執(zhí)行一條shell命令,就可以采用:adb shell [shell_command]
在實(shí)際使用中,經(jīng)常與grep或findstr一起使用,起到過(guò)濾作用,查看自己需要的關(guān)鍵信息。
6.adb shell su
前提手機(jī)已經(jīng)root。獲取adb shell的root權(quán)限。
使用su提權(quán),用戶(hù)命令提示符有$變成#,如果手機(jī)沒(méi)有root,會(huì)提示su:permission denied。
7.adb shell ps/top
查看當(dāng)前終端中的進(jìn)程信息,如pid等。
8.adb shell am/pm
am全稱(chēng)為activity manager,可使用am命令模擬各種系統(tǒng)的行為,如去啟動(dòng)一個(gè)activity,強(qiáng)制停止進(jìn)程,發(fā)送廣播進(jìn)程,修改設(shè)備屏幕屬性等。
如:adb shell am start apk包名/activityName:啟動(dòng)一個(gè)activity。
pm全稱(chēng)為package manager,利用pm命令可模擬android行為或查詢(xún)?cè)O(shè)備上的應(yīng)用等。
如:adb shell pm list packages
列出當(dāng)前設(shè)備所有已安裝的程序的包名。
說(shuō)明:
管道符“|”:可以把標(biāo)準(zhǔn)的輸入流與標(biāo)準(zhǔn)的輸出流進(jìn)行合并,或者把某個(gè)命令的標(biāo)準(zhǔn)輸出流作為另一個(gè)命令的標(biāo)準(zhǔn)輸入流。
exit退出shell。
由于grep為linux命令,運(yùn)行單條adb shell 時(shí)并沒(méi)有進(jìn)入linux
shell環(huán)境,并不能用grep等其他linux命令,只能用window cmd的命令。在這里可以用findstr來(lái)代替grep,使用方法為
findstr/grep [keyword]
更詳細(xì)的內(nèi)容可查看 參考文獻(xiàn)3 和 參考文獻(xiàn)4 。
對(duì)于常用的linux命令和常用的windows 控制臺(tái)命令,以后再作總結(jié)。
9.adb pull 和 adb push
adb pull 設(shè)備中的文件路徑 本地路徑:從模擬器或設(shè)備中復(fù)制文件到本地。
adb push 本地文件路徑 設(shè)備中的路徑:將本地文件或目錄復(fù)制到模擬器或設(shè)備。
這里還涉及到一個(gè)權(quán)限的問(wèn)題,在后續(xù)的博文中再作介紹。
10.adb shell dumpsys
Android提供的dumpsys工具用于查看感興趣的系統(tǒng)服務(wù)信息與狀態(tài)。
參考下表:
11.adb shell monkey
跑monkey是android自動(dòng)化測(cè)試的一種手段,所謂monkey測(cè)試就是模擬用戶(hù)的按鍵輸入,觸摸屏輸入,手勢(shì)輸入等。當(dāng)Monkey程序在模擬器或設(shè)備運(yùn)行的時(shí)候,如果用戶(hù)比如點(diǎn)擊,觸摸,手勢(shì)或一些系統(tǒng)級(jí)別的事件的時(shí)候,它就會(huì)產(chǎn)生隨機(jī)脈沖,所以可以用Monkey的隨機(jī)重復(fù)的方法對(duì)apk作壓力測(cè)試,來(lái)測(cè)試android
app的穩(wěn)定性。
如下為測(cè)試騰訊新聞apk的一個(gè)簡(jiǎn)單實(shí)例:
說(shuō)明:第一個(gè)-s指定設(shè)備,如果只連接了一臺(tái)設(shè)備,可不用該參數(shù)。
-p apk包名只允許系統(tǒng)啟動(dòng)指定的app,如果不指定,將允許系統(tǒng)啟動(dòng)設(shè)備中的所有app,也可指定多個(gè)包。
--throttle 毫秒數(shù) 指定用戶(hù)操作(事件)間的時(shí)延。
--ignore-crashes 指定當(dāng)應(yīng)用程序崩潰時(shí),Monkey依然發(fā)送事件,直到事件計(jì)數(shù)完成。
--ignore-timeouts 當(dāng)應(yīng)用程序發(fā)生ANR錯(cuò)誤時(shí),Monkey依然會(huì)發(fā)送事件,直到事件計(jì)數(shù)完成。
第2個(gè)-s,用于指定偽隨機(jī)數(shù)生成器的seed值,如果seed相同,則兩次Monkey測(cè)試所產(chǎn)生的事件序列也相同的。
-v 用于指定反饋信息級(jí)別,總共分為level 0、level 1、level 2三個(gè)級(jí)別,級(jí)別越高,輸出的日志越詳細(xì)。
最后的數(shù)字(這里是500):表示Monkey程序模擬500次隨機(jī)用戶(hù)操作事件。
輸出測(cè)試結(jié)果到D:\monkeylog.txt
更詳細(xì)的參數(shù)可查看 參考文獻(xiàn)5 。
部分測(cè)試結(jié)果如下:
對(duì)于測(cè)試結(jié)果的分析,通過(guò)搜索關(guān)鍵詞來(lái)定位錯(cuò)誤,主要包括以下四個(gè)方面:
1)ANR(Application Not
Response):程序無(wú)響應(yīng),一般主線(xiàn)程超過(guò)5秒沒(méi)處理就會(huì)出現(xiàn)ANR錯(cuò)誤。通過(guò)搜索ANR關(guān)鍵詞來(lái)定位關(guān)鍵的事件信息。除了導(dǎo)出日志外,還可以將/data/anr/目錄下的trace.txt文件導(dǎo)出,用來(lái)定位分析問(wèn)題。使用adb
pull /data/anr/trace.txt d:\ 將trace.txt文件導(dǎo)出到d盤(pán)。
2)ForceClosed或其他異常退出信息:通過(guò)搜索Fatal關(guān)鍵詞來(lái)定位。
3)崩潰問(wèn)題:通過(guò)搜索Exception關(guān)鍵詞來(lái)定位。
4)發(fā)生異常后,通過(guò)搜索Crash關(guān)鍵詞來(lái)定位到詳細(xì)的堆棧信息。
12.kill
kill用來(lái)中止一個(gè)進(jìn)程。
比如我們?cè)谂躮onkey的時(shí)候,怎么強(qiáng)制關(guān)閉monkey呢,可以用kill monkey進(jìn)程PID
說(shuō)明:另開(kāi)啟一個(gè)cmd,找到monkey的pid號(hào),然后殺掉即可。
參考文獻(xiàn):
1.Android調(diào)試橋:
2.Android性能分析工具dumpsys的使用:
3.adb shell 中的am pm命令:
4.adb shell 啟動(dòng)應(yīng)用程序的方法:
5.Monkey壓力測(cè)試詳解:
1、adb devices 獲取模擬器或物理手機(jī)設(shè)備
2、adb install 安裝軟件
adb -s emulator-5554 install E:\CalculatorOfTwoNum.apk 連接了多個(gè)設(shè)備
adb install -r E:\CalculatorOfTwoNum.apk 覆蓋安裝已有的軟件
adb install E:\CalculatorOfTwoNum.apk只有一個(gè)設(shè)備且未安裝
3、adb uninstall 卸載軟件
adb -s emulator-5554 uninstall com.example.calculatoroftwonum 卸載指定設(shè)備的軟件
adb -s emulator-5554 shell pm uninstall -k com.example.calculatoroftwonum 保留配置及緩存
4、adb pull 把文件從手機(jī)設(shè)備發(fā)送到本地計(jì)算機(jī)
adb pull /sdcard/tmp/error.data d:/
adb -s emulator-5554 pull /sdcard/tmp/error.data d:/ 連接了多個(gè)設(shè)備個(gè)
5、adb push 把文件從本地計(jì)算機(jī)發(fā)送到手機(jī)設(shè)備
adb -s emulator-5554 push d:/example/error.data /sdcard/pass
6、adb shell ls 顯示當(dāng)前目錄的所有內(nèi)容
7、adb shell 查看手機(jī)安裝的應(yīng)用
su root
cd /data/data
ls
8、adb shell dumpsys battery 查看電量信息
9、adb shell dumpsys wifi 查看無(wú)線(xiàn)網(wǎng)絡(luò)信息
10、adb shell dumpsys power 查看電源信息
11、adb shell dumpsys telephony.registry 查看電話(huà)相關(guān)信息
12、adb shell cat /proc/cpuinfo 查看CPU硬件信息
13、adb shell cat /proc/meminfo 查看內(nèi)存信息
14、adb shell cat /proc/iomen 查看I/O內(nèi)存分區(qū)的信息
15、adb shell cat /system/build.prop | findstr "ro.product.model" 獲取手機(jī)型號(hào)
16、adb shell cat /proc/cpuinfo | findstr "Processor" 獲取手機(jī)處理器信息
17、adb shell cat /proc/meminfo | findstr "MemTotal" 獲取手機(jī)內(nèi)存信息
18、adb shell dumpsys windows | findstr "Display" 獲取手機(jī)屏幕分辨率信息
19、adb shell getprop ro.build.version.release 獲取系統(tǒng)版本信息
20、adb shell cat /proc/version 獲取內(nèi)核版本信息
21、adb shell getprop gsm.operator.alpah 獲取運(yùn)營(yíng)商信息
22、adb shell getprop gsm點(diǎn)虐 work.type 獲取網(wǎng)絡(luò)類(lèi)型信息
23、adb shell dumpsys iphonesubinfo | findstr "Devices ID" 獲取手機(jī)串號(hào)信息
24、adb shell df 獲取系統(tǒng)分區(qū)信息
25、adb shell dmesg 獲取linux內(nèi)核環(huán)形緩沖區(qū)信息
26、adb shell dumpstate 獲取系統(tǒng)當(dāng)前狀態(tài)
27、adb get-serialno 獲取設(shè)備序列號(hào)
28、adb get-state 獲取設(shè)備當(dāng)前狀態(tài)
29、adb logcat 查看日志信息
adb logcat *:W 輸出優(yōu)先級(jí)大于警告級(jí)的信息
adb logcat -b main 查看主緩沖區(qū)信息
30、adb bugreport 查看啟動(dòng)過(guò)程日志
31、adb jdwp 列出指定設(shè)備的IDWP相關(guān)進(jìn)程的ID
32、adb start-server 啟動(dòng)adb服務(wù)
33、adb kill-server 關(guān)閉adb服務(wù)
34、adb forward 將本機(jī)的端口重定向到模擬器或者設(shè)備端口上
adb forward tcp:2211 tcp:5566
35、am 模擬系統(tǒng)行為
adb shell am start -n com.sec.android.app.camera/.Camera 啟動(dòng)照相功能
adb shell am broadcast -a android.intent.action.BATTERY_CHANGED --ei "level"5 --ei "scale" 100 向手機(jī)發(fā)送模擬手機(jī)低電環(huán)境的信息
36、pm 模擬行為或者查詢(xún)?cè)O(shè)備上的應(yīng)用
adb shell pm list packages
37、向模擬器發(fā)送短信、打電話(huà)
20181021141213.png 20181021141213.png 20181021141252.png 20181021141252.png
cmd telnet localhost 5554
20181021141306.png 20181021141306.png
network speed 14.4:20 設(shè)定網(wǎng)速
network delay 5 設(shè)定網(wǎng)絡(luò)延時(shí)5毫秒
network capture start/stop 開(kāi)始/停止數(shù)據(jù)包的捕獲
windows scale 0.5 修改模擬器大小比例
quit退出
39、android list targets 查看模擬器的Android系統(tǒng)版本
40、android create avd 創(chuàng)建模擬器
android create avd --name Android4.4.2 --target 2 --abi armeabi-v7a
41、android move avd -n Android4.4.2 -r mytestdev4.4.2 重命名模擬器
42、android list avd 查看模擬器列表
43、android delete avd -n hhh 刪除模擬器
44、emulator -avd Android4.4.2 啟動(dòng)模擬器
ADB(Android Debug Bridge)是Android
提供的一個(gè)通用的調(diào)試工具,借助這個(gè)工具,我們可以很好的調(diào)試開(kāi)發(fā)的程序,adb.exe在你安裝的android的sdk開(kāi)發(fā)包platform-tools目錄下。
ADB是一個(gè)C/S架構(gòu)的應(yīng)用程序,由三部分組成:
1)adb client, 運(yùn)行在PC上(為DDMS,即IDE工作)
2)adb daemon(守護(hù)進(jìn)程),運(yùn)行于Emulator(為與Emulator中的VM交互工作);
3)adb server(服務(wù)進(jìn)程),運(yùn)行在PC(任務(wù)管理器上有),管理著adb client和adb
daemon的通信。
server與client通信的端口是是5037,adb
server會(huì)與emulator交互的,使用的端口有兩個(gè),一個(gè)是5554專(zhuān)門(mén)用于與Emulator實(shí)例的連接,那么數(shù)據(jù)可以從Emulator轉(zhuǎn)發(fā)給IDE控制臺(tái)了,另一個(gè)則是5555,專(zhuān)門(mén)與adb
daemon連接為后面調(diào)試使用。
adb使用方法:
adb [-d|-e|-s ]
當(dāng)你發(fā)出一個(gè)命令,系統(tǒng)啟用Android客戶(hù)端。客戶(hù)端并不與模擬器實(shí)例相關(guān),所以如果雙服務(wù)器/設(shè)備是運(yùn)行中的,你需要用-d選項(xiàng)去為應(yīng)被控制的命令確定目標(biāo)實(shí)例。關(guān)于使用這個(gè)選項(xiàng)的更多信息,可以查看模擬器/設(shè)備實(shí)例術(shù)語(yǔ)控制命令。
1、查詢(xún)模擬器/設(shè)備實(shí)例
在發(fā)布adb命令之前,有必要知道什么樣的模擬器/設(shè)備實(shí)例與adb服務(wù)器是相連的。可以通過(guò)使用 devices
命令來(lái)得到一系列相關(guān)聯(lián)的模擬器/設(shè)備
adbdevices
2、安裝應(yīng)用到模擬器/設(shè)備:
你可以使用adb從你的開(kāi)發(fā)電腦上復(fù)制一個(gè)應(yīng)用程序,并且將其安裝在一個(gè)模擬器/設(shè)備實(shí)例。
像這樣做,使用install命令。這個(gè)install命令要求你必須指定你所要安裝的.apk文件的路徑:
adbinstall
例如:Weibo_4.1.1.apk是在我的C盤(pán)中,
C:\adbinstallweibo_4.1.1-apk
3、卸載應(yīng)用程序:
adbuninstall
注意:卸載軟件時(shí),卸載的是包名,后面跟的是包的名字,而不是.APK.
4、從模擬器/設(shè)備中拷入或拷出文件:
可以使用adbpull、push命令將文件從模擬器/設(shè)備中拷貝出來(lái)或從電腦拷入。
adbpull
用pull命令可以把設(shè)備(手機(jī))上的文件或者文件夾復(fù)制到本機(jī)電腦
adbpush
用push命令可以把本機(jī)電腦上的文件或者文件夾復(fù)制到設(shè)備(手機(jī))
5、啟動(dòng)Linux命令界面shell
adbshell
Android本來(lái)就是一個(gè)linux操作系統(tǒng),通過(guò)上面的命令,就可以進(jìn)入設(shè)備或模擬器的shell環(huán)境中,所以大部分都是linux的命令,如mkdir,ls,netstat,mount
等。
主要介紹幾個(gè)Android特有的。
Getprop:返回Android的所有系統(tǒng)屬性。
Getevent:打印所有的鍵盤(pán)和觸摸事件
Logcat:輸出日志
LS:用于顯示目錄內(nèi)容
6、查看bug報(bào)告:
adb bugreport
7、記錄無(wú)線(xiàn)通訊日志:
一般來(lái)說(shuō),無(wú)線(xiàn)通訊的日志非常多,在運(yùn)行時(shí)沒(méi)必要去記錄,但我們還是可以通過(guò)命令,設(shè)置記錄:
adb shell
logcat -b radio
8、獲取設(shè)備的ID和序列號(hào):
adb get-product
adb get-serialno
網(wǎng)站標(biāo)題:linuxabd命令 linux adb命令大全
網(wǎng)頁(yè)地址:http://chinadenli.net/article28/ddgdjjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、面包屑導(dǎo)航、網(wǎng)頁(yè)設(shè)計(jì)公司、品牌網(wǎng)站建設(shè)、域名注冊(cè)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)