adb的經常使用命令

一、用ADB在PC端對手機進行各類操做的準備工做

一共須要三步便可。android

1. step1 Enable 開發者模式

2. step2 Enable USB Debug模式

3. step3 使用數據線鏈接手機和PC
  • Enable開發者模式對於不一樣型號的手機來講操做大同小異,都是找到手機系統設置的關於項,連續7次點擊系統的[Build Number]便可,連續點擊的過程當中,系統會提示‘還差n步就打開開發者模式’。
    打開開發者模式後,進入到開發者模式裏,選上【啓動USB Debug模式】便可。
  • 當手機端開啓USB Debug模式後,可使用USB線鏈接手機和PC,此時:手機端會提示:是否信任當前調試設備,點擊【贊成】便可。

二、命令

- adb devices   (查詢鏈接到當前PC的Android設備)
- adb install xxx.apk(進入安裝包的目錄,安裝軟件)
- adb uninstall $package_name(進入安裝包的目錄,卸載軟件)   
- install和uninstall還有其餘參數。
- adb install -r xxx.apk
- adb uninstall -k $package_name

在安裝時,加上【-r】,若是已經安裝了該軟件,那麼系統就會先卸載,在安裝這個軟件
在卸載時,加上【-k】,表示卸載時保留數據和緩衝區目錄,只卸載應用程序

安裝pos機的例子:
一、adb devices    -查看鏈接狀態
二、adb connect xx.xx.xx.xx:5555
三、adb install /Users/fengyanhua/Downloads/app-debug.apk
四、adb disconnect xx.xx.xx.xx:5555  -斷開鏈接
查詢POS機的日誌:
五、adb -s xx.xx.xx.xx logcat

三、 查看包名的方法

1. - step1 打開軟件置於頂層
2. - step1 點擊UIAutomatorviewer的Device Screenshot按鈕  
3. - step1 查看右下方的package值

四、文件交換

adb pull remote_files local_dir  把手機上的文件拷貝到本地
 
adb push local_dir remote_files  把PC上的文件,發送到已經鏈接的Android手機上


參數含義:
remote_files: 手機端的目錄或者文件路徑
local_dir:本地文件的路徑

e.g:

adb pull /sdcard/DICM/camera ~/Desktop/       把手機上的某個目錄所有都拷貝到PC本地上

adb push ~/Desktop/test.txt /data/local/tmp/  把PC本地的文件傳輸到手機的/data/local/tmp/目錄

五、其餘的命令

adb version: 查看adb版本信息

adb remount: 對其設備讀寫進行初始化

adb kill-server: 幹掉ADB進程

adb start-server:啓動ADB進程

adb root:對於已經root過的手機,加載ROOT權限

adb reboot: 重啓設備

adb wait-for-device:等待設備上線

adb -d serial number: 當有多臺設備鏈接時,指定某一設備

adb connect <ip>: 經過網絡使PC鏈接設備

六、Android系統及App日誌查看

- adb logcat

- adb logcat -c   清理logcat的緩衝區

adb的日誌所有都會緩存在系統的緩衝區,當咱們須要對系統或者App進行Debug的時候,咱們先清理一下以前緩衝區的無效log,這樣能夠清除一些無效的日誌信息。

- adb logcat -v time *:e  |grep $package_name   查看指定App的錯誤信息

如:adb logcat -v time *:e |grep com.koudai.weidian.buyer.internal
運行這個命令後,再操做App,咱們能夠經過終端的輸出來獲取到App在執行過程當中遇到的全部Error信息。
  • 日誌分析
1. bugreport裏面包含了各類log信息,大部分log也能夠經過直接運行相關的程序來直接得到 bugreport記錄android啓動過程的log,以及啓動後的系統狀態,包括進程列表,內存信息,VM信息等等
2. Java Exception 在mian log中分析,須要注意exception的時間PID和棧
3. ANR 在log中查看system log 找到ANR關鍵字
  • Monkey的輸出日誌
正常狀況,若是Monkey測試順利執行完成,在log的最後會打印出當前執行事件的次數和所花費的時間;// Monkey finished 表明執行完成
異常狀況:
查閱Monkey的輸出日誌
1. 程序無響應的問題: 在日誌中搜索 「ANR」
2. 崩潰問題:在日誌中搜索 「Exception」
3. 若是有空指針,搜索「NullPointerException」
4. 若是Monkey執行中斷,在log最後也能看到當前執行次數
  • log文件的分類
實時打印的有:logcat main,logcat radio,logcat events,tcp dump,高通平臺的還有QXDM日誌

狀態信息的有:adb shell cat /proc/kmsg,adb shell dmesg,adb shell dumpstate,adb shell dumpsys,adb bugreport,工程模式等。

七、 查看系統都安裝了那些應用

adb shell pm list packages  

eg:

買家版: (com.koudai.weidian.buyer.internal)

adb shell pm list packages|grep com.koudai

八、 input命令

input命令能夠用於向鍵盤發送一些指令。shell

經常使用命令分析:緩存

* adb shell input text test //讓鍵盤輸入test,經測試不能支持輸入中文

  好比輸入0,就可使用:
  adb shell input keyevent KEYCODE_0
  或 adb shell input keyevent 7

* adb shell input tap 200 300 //在屏幕座標(200,300)位置點擊一下

* adb shell input swipe 200 200 1000 1000 //就是從屏幕(200,200)滑動到(1000,1000);

//在小的距離內,從(200,200)的位置滑動到(201,201)的位置,連續滑動2000毫秒,頁面表現爲長按的效果
* adb shell input swipe 200 200 201 201 2000 
tip:機子要求是安卓4.4以上

如何定位屏幕的座標呢?
其實在手機開發者選項,開啓指針位置功能,就能夠實時定位屏幕座標了

九、am命令

* am 這個命令能夠幫助咱們直接啓動activity、service及廣播

* am start 啓動應用

格式:
adb shell am start 包名/.類名

或 adb shell am start 包名/類的全名

後面跟的參數的意思分別是:
參數名 解釋
-a 傳入動做
-n 傳入組件(package)
-t 傳入類型
-d 傳入數據

1.撥打一個電話:
am start -a android.intent.action.CALL -d tel:10086

2.打開一個網頁:
 am start -a android.intent.action.VIEW -d  http://www.baidu.com 

3.打開音樂播放器:
adb shell am start -n com.android.bbkmusic/.WidgetToTrackActivity

4.啓動一個服務:
am startservice <服務名稱>
例如:am startservice -n com.android.music/com.android.music.MediaPlaybackService
或者 am startservice -a com.smz.myservice

5.發送一個廣播:
am broadcast -a <廣播動做>
例如: am broadcast -a com.smz.mybroadcast

6.adb shell am monitor 監控 crash 與 ANR

7.am force-stop , 後跟包名,結束應用

值得注意的是,不一樣手機的相同類型應用,如相機,由於他們的package均可能是不同的,因此要把package提取出來,再抽離爲公共的方法。

十、pm命令

pm(Package Manager),這個命令主要用於獲取和安裝在 Android 設備上的應用信息。網絡

■ pm list 安裝包名查詢
■ adb shell pm list package 列出全部應用
■ adb shell pm list package -3 列出第三方應用
■ adb shell pm list instrumentation 列出全部測試包
■ pm install 安裝應用
■ pm unitall 卸載應用
■ pm clear 清除應用緩存

十一、monkey命令

-p 容許的包名列表,可同時指定多個包名,每一個包都須要使用「-p」參數指定。指定多個包:

adb shell monkey -p package_1  –p package_2  100

--ignore-crashes 忽視應用 crash 報錯,不指定該參數時,應用出現 crash,monkey

會自動中止發送事件,指定該參數後,monkey 會在 crash 後也一直髮送事件,直到全部事件發送完成。

--ignore-timeouts 忽視超時致使的錯誤,即ANR的錯誤
  • Monkey 命令啓動方式:
a)能夠經過PC機CMD窗口中執行: adb shell monkey {+命令參數}來進行Monkey測試          
b)在PC上adb shell 進入Android系統,經過執行 monkey {+命令參數} 來進行Monkey 測試          
c) 在Android機或者模擬器上直接執行monkey 命令,能夠在Android機上安裝Android終端模擬器

十二、Dumpsys經常使用服務信息查詢

Dumpsys用戶系統診斷,它運行在設備上,並提供系統服務狀態信息

adb shell dumpsys meminfo   //內存  adb shell dumpsys meminfo com.koudai.weidian.buyer.internal

adb shell dumpsys cpuinfo   //CPU

adb shell dumpsys gfxinfo  //幀率

adb shell dumpsys display  //顯示

adb shell dumpsys power    //電源

adb shell dumpsys batterystats  //電池
相關文章
相關標籤/搜索