1、adb shell?am force-stop? 后跟包名,結束應用

創(chuàng)新互聯建站從2013年成立,先為昭平等服務建站,昭平等地企業(yè),進行企業(yè)商務咨詢服務。為昭平企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
2、adb install +包名? ? ? ?adb安裝apk (覆蓋安裝是使用 -r 選項)
3、adb uninstall +包名? ? ? adb卸載apk
? adb uninstall -k cnblogs.apk? ?卸載app但保留數據和緩存文件
4、adb reboot? ? ? ?重啟Android設備
5、adb devices? ? ? 獲取連接的設備列表及設備狀態(tài)
6、adb push (PC到Android設備)
? 例:adb push E:\0713\ellip_factroy__debug.apk storage/self/primary
7、adb pull(Android設備到PC)
? 例:adb pull /storage/self/primary/EL_v3.0.0.6_release.apk E:\0713
8、adb shell pm list package? ? ? 列出所有的應用的包名 (-s:列出系統(tǒng)應用? -3:列出第三方應用 -f:列出應用包名及對應的apk名及存放位置? -i:列出應用包名及其安裝來源)
9、input : 向 Android 設備發(fā)送按鍵
? 1)adb shell?input keyevent +?按鍵事件? ?發(fā)送按鍵事件?例如:adb shell input keyevent KEYCODE_HOME?模擬按下Home鍵
? 2)3 adb shell?input tap +觸摸事件的位置 , 對屏幕發(fā)送一個觸摸事件?例如:點擊屏幕上坐標為 500 500 的位置(adb shell input tap 500 500)
?3)adb shell input swipe? ?滑動事件? 例如:從右往左滑動屏幕 (adb shell input swipe 800 600 100 600)
10、screencap 截圖命令??adb shell screencap -p /sdcard/qq/1.png
11、screenrecord 錄屏命令 adb shell screenrecord /sdcard/qq/1.mp4,執(zhí)行命令后操作手機,ctrl + c 結束錄制
12、clear 清除應用數據? ?adb shell pm clear com.baidu
13、復制、刪除 、查看文件、新建文件夾
? ? adb shell進入Android Linux命令中,
? ? 復制cp: cp -f /sdcard/qq/1.png /sdcard/aa
? ? 刪除文件rm:rm? /sdcard/qq/1.png
? ? 刪除文件夾rm -r:rm? -r /sdcard/qq
? ? 查看文件cat:cat /sdcard/qq/1.txt
? ? 新建文件夾:mkdir /sdcard/cc
? ? ? ? ? ? ? ? ? ? ? ? ? adb shell mkdir -m 777?/sdcard/cc? ?創(chuàng)建文件夾cc并給文件夾賦予讀寫執(zhí)行的權限
? ? ? ? ? ? ? ? ? ? ? ? ? adb shell mkdir -p/sdcard/Download/Demo/test1,如果Demo目錄不存在,執(zhí)行該條命令會創(chuàng)建Demo目錄和其子目錄test1
? ? ?新建文件:touch /sdcard/cc/1.txt? ?
? ? ? 移動文件:adb shell mv /sdcard/Download/test1.log? /sdcard/Download/Demo/
? ? ? ?重命名:adb shell mv /sdcard/Download/Demo/test1.log? /sdcard/Download/Demo/test.lg
14、adb logcat D:\log.txt 將日志打印到電腦上
15、獲取手機內部存儲信息: adb shell df /data
? ? 獲取sdcard存儲信息:adb shell df /storage/sdcard
現象是輸入adb命令之后,終端無響應,既沒有提示成功也沒有提示失敗。
運行 ps aux | grep adb,如果有輸出 adb fork-server server,則說明adb正在運行,記下pid,執(zhí)行kill $(pid)。
ADB(Android Debug Bridge)是Android
提供的一個通用的調試工具,借助這個工具,我們可以很好的調試開發(fā)的程序,adb.exe在你安裝的android的sdk開發(fā)包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轉發(fā)給IDE控制臺了,另一個則是5555,專門與adb
daemon連接為后面調試使用。
adb使用方法:
adb [-d|-e|-s ]
當你發(fā)出一個命令,系統(tǒng)啟用Android客戶端。客戶端并不與模擬器實例相關,所以如果雙服務器/設備是運行中的,你需要用-d選項去為應被控制的命令確定目標實例。關于使用這個選項的更多信息,可以查看模擬器/設備實例術語控制命令。
1、查詢模擬器/設備實例
在發(fā)布adb命令之前,有必要知道什么樣的模擬器/設備實例與adb服務器是相連的。可以通過使用 devices
命令來得到一系列相關聯的模擬器/設備
adbdevices
2、安裝應用到模擬器/設備:
你可以使用adb從你的開發(fā)電腦上復制一個應用程序,并且將其安裝在一個模擬器/設備實例。
像這樣做,使用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操作系統(tǒng),通過上面的命令,就可以進入設備或模擬器的shell環(huán)境中,所以大部分都是linux的命令,如mkdir,ls,netstat,mount
等。
主要介紹幾個Android特有的。
Getprop:返回Android的所有系統(tǒng)屬性。
Getevent:打印所有的鍵盤和觸摸事件
Logcat:輸出日志
LS:用于顯示目錄內容
6、查看bug報告:
adb bugreport
7、記錄無線通訊日志:
一般來說,無線通訊的日志非常多,在運行時沒必要去記錄,但我們還是可以通過命令,設置記錄:
adb shell
logcat -b radio
8、獲取設備的ID和序列號:
adb get-product
adb get-serialno
adb root 獲取 root 權限。
adb sideload
adb shell ps 打印進程狀態(tài)。
adb shell top 展現上層 CPU 進程信息。
adb shell getprop 獲取 Android 系統(tǒng)服務屬性
adb shell setprop 設置服務屬性。
adb shell dumpsys 獲取系統(tǒng)數據。
adb logcat 打印日志文件
adb shell ip 主要用于顯示一些數據
adb shell netstat 主要用于網絡統(tǒng)計。
adb shell ping 沒啥好說的,和 PC 的 ping 命令一樣的。
adb shell netcfg 通過配置文件配置和管理網絡連接。
adb shell cp 字面意思,很好理解,復制。
adb shell pwd 定位當前的操作位置
adb shell mv 移動或者更名文件
adb shell mkdir 創(chuàng)建一個文件夾
adb shell rm 刪除文件或者目錄
adb shell ls 列出目錄內容。
adb shell pm clear 清除應用緩存。
adb shell pm path 打印 apk 的路徑。
adb usb 設置設備以 USB 形式連接 PC
adb kill-server 終止 adb 進程。
adb forward 端口映射,將 PC 端的某端口數據重定向到手機端的一個端口。
adb devices 主要是用于打印當前連接的所有模擬器或者設備。
shutdown -h now 關閉系統(tǒng)
init 0 關閉系統(tǒng)
telinit 0 關閉系統(tǒng)
shutdown -h hours:minutes 按預定時間關閉系統(tǒng)
shutdown -c 取消按預定時間關閉系統(tǒng)
shutdown -r now 重啟
reboot 重啟
logout 注銷
文件和目錄
cd /home 進入 '/ home' 目錄'
cd .. 返回上一級目錄
cd ../.. 返回上兩級目錄
cd 進入個人的主目錄
cd ~user1 進入個人的主目錄
cd - 返回上次所在的目錄
pwd 顯示工作路徑
ls 查看目錄中的文件
ls -F 查看目錄中的文件
ls -l 顯示文件和目錄的詳細資料
ls -a 顯示隱藏文件
ls [0-9] 顯示包含數字的文件名和目錄名
tree 顯示文件和目錄由根目錄開始的樹形結構
lstree 顯示文件和目錄由根目錄開始的樹形結構
mkdir dir1 創(chuàng)建一個叫做 'dir1' 的目錄'
mkdir dir1 dir2 同時創(chuàng)建兩個目錄
mkdir -p /tmp/dir1/dir2 創(chuàng)建一個目錄樹
rm -f file1 刪除一個叫做 'file1' 的文件'
rmdir dir1 刪除一個叫做 'dir1' 的目錄'
rm -rf dir1 刪除一個叫做 'dir1' 的目錄并同時刪除其內容
rm -rf dir1 dir2 同時刪除兩個目錄及它們的內容
mv dir1 new_dir 重命名/移動 一個目錄
cp file1 file2 復制一個文件
cp dir/* . 復制一個目錄下的所有文件到當前工作目錄
cp -a /tmp/dir1 . 復制一個目錄到當前工作目錄
cp -a dir1 dir2 復制一個目錄
cp -r dir1 dir2 復制一個目錄及子目錄
ln -s file1 lnk1 創(chuàng)建一個指向文件或目錄的軟鏈接
ln file1 lnk1 創(chuàng)建一個指向文件或目錄的物理鏈接
touch -t 0712250000 file1 修改一個文件或目錄的時間戳 - (YYMMDDhhmm)
file file1 outputs the mime type of the file as text
iconv -l 列出已知的編碼
在平時的工作中,會經常用到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,并監(jiān)聽adb
Client發(fā)來的命令。
(2)接著,Server將會掃描所有5555到5585范圍內的奇數端口來定位所有的模擬器或設備,并與之建立連接。一旦Server找到
了adb
daemon(守護程序),它將建立一個到該端口的連接,這樣,我們就可以使用adb命令控制和訪問模擬器或設備了。在這里,需注意的是任何模擬器或設備實例會取得兩個連續(xù)的端口:一個偶數端口用來相應控制臺的連接,和一個奇數端口用來響應adb連接。
3.adb的作用
借助adb工具,我們可以管理設備或手機模擬器的狀態(tài),還可以進行很多手機操作,如安裝軟件、系統(tǒng)升級、運行shell命令等等。簡而言之,adb就是連接Android手機和PC端的橋梁,可以讓用戶在電腦上對手機進行全面的操作。
二.常用命令
這個部分主要介紹adb的使用方法和一些常用的命令。
設置adb環(huán)境:將android sdk工作目錄添加到系統(tǒng)環(huán)境變量中,則可使用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環(huán)境了,在這個Linux shell中,我們就可以執(zhí)行各種Linux命令了。
如果只想執(zhí)行一條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命令模擬各種系統(tǒng)的行為,如去啟動一個activity,強制停止進程,發(fā)送廣播進程,修改設備屏幕屬性等。
如: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環(huán)境,并不能用grep等其他linux命令,只能用window cmd的命令。在這里可以用findstr來代替grep,使用方法為
findstr/grep [keyword]
更詳細的內容可查看 參考文獻3 和 參考文獻4 。
對于常用的linux命令和常用的windows 控制臺命令,以后再作總結。
9.adb pull 和 adb push
adb pull 設備中的文件路徑 本地路徑:從模擬器或設備中復制文件到本地。
adb push 本地文件路徑 設備中的路徑:將本地文件或目錄復制到模擬器或設備。
這里還涉及到一個權限的問題,在后續(xù)的博文中再作介紹。
10.adb shell dumpsys
Android提供的dumpsys工具用于查看感興趣的系統(tǒng)服務信息與狀態(tài)。
參考下表:
11.adb shell monkey
跑monkey是android自動化測試的一種手段,所謂monkey測試就是模擬用戶的按鍵輸入,觸摸屏輸入,手勢輸入等。當Monkey程序在模擬器或設備運行的時候,如果用戶比如點擊,觸摸,手勢或一些系統(tǒng)級別的事件的時候,它就會產生隨機脈沖,所以可以用Monkey的隨機重復的方法對apk作壓力測試,來測試android
app的穩(wěn)定性。
如下為測試騰訊新聞apk的一個簡單實例:
說明:第一個-s指定設備,如果只連接了一臺設備,可不用該參數。
-p apk包名只允許系統(tǒng)啟動指定的app,如果不指定,將允許系統(tǒng)啟動設備中的所有app,也可指定多個包。
--throttle 毫秒數 指定用戶操作(事件)間的時延。
--ignore-crashes 指定當應用程序崩潰時,Monkey依然發(fā)送事件,直到事件計數完成。
--ignore-timeouts 當應用程序發(fā)生ANR錯誤時,Monkey依然會發(fā)送事件,直到事件計數完成。
第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)發(fā)生異常后,通過搜索Crash關鍵詞來定位到詳細的堆棧信息。
12.kill
kill用來中止一個進程。
比如我們在跑monkey的時候,怎么強制關閉monkey呢,可以用kill monkey進程PID
說明:另開啟一個cmd,找到monkey的pid號,然后殺掉即可。
參考文獻:
1.Android調試橋:
2.Android性能分析工具dumpsys的使用:
3.adb shell 中的am pm命令:
4.adb shell 啟動應用程序的方法:
5.Monkey壓力測試詳解:
當前文章:linux命令adb 查看文件內容的Linux命令
轉載來于:http://www.chinadenli.net/article10/dodopgo.html
成都網站建設公司_創(chuàng)新互聯,為您提供ChatGPT、App設計、營銷型網站建設、Google、軟件開發(fā)、手機網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯