adb抓日志命令:adb ? pull /data/log/android_logs ?本地目錄
構造大文件:adb shell dd if=/dev/zero of=/mnt/sdcard/bigfile
adb shell pm list package ?查看所有包
adb shell pm path ?packageName 查看包名路徑
adb uninstall?packageName ?卸載應用
adb install?packageName ? 安裝應用
adb shell "mount -o rw,remount /system" ? 以讀寫形式重新掛載/system目錄
adb remount?重新掛載
adb shell settings get global device_name 獲取手機型號
adb pull /storage/emulated/0/DCIM/Camera 本地路徑 pull 文件到電腦
adb push 本地路徑 /storage/emulated/0/DCIM/Camera push文件到手機
adb shell 進入可查看文件ls
adb root 查看手機是否root
adb shell am start 后臺啟動應用
adb shell getprop ro.build.version.emui ?查詢emui版本
adb shell ps |findstr?packageName ?查詢應用進程
adb shell kill pid殺掉對應的進程號
?
=========================================================
1. 解鎖
adb shell am start -n com.android.autounlock/.AutoUnlock
?
2. 啟動某個應用
adb shell am start-n breakan.test/breakan.test.TestActivity
adb shell am start -n com.android.tools/.MyApp
撥打某個電話: adb shell am start -a android.intent.action.CALL -d tel:10086
打開某個網頁: adb shell am start -a android.intent.action.VIEW -d http://www.baidu.com
?
3.啟動應用后進行操作
現在觸摸屏失效了,不能直接在屏幕上進行選擇操作,但是我們可以通過模擬鍵值來進行操作。
adb shell input keyevent 19 (方向上鍵)
adb shell input keyevent 20 (方向下鍵)
adb shell input keyevent 21 (方向左鍵)
adb shell input keyevent 22 (方向右鍵)
adb shell input keyevent 23 (方向下鍵)
adb shell input keyevent 61 (TAB鍵)
adb shell input keyevent 66 (確定鍵)
adb shell input keyevent 3 (返回鍵)
adb shell input keyevent HOME (方向下鍵)
adb shell input keyevent MENU (菜單鍵)
adb shell input keyevent BACK (返回鍵)
adb shell input keyevent CAMERA (拍照鍵)
adb shell input keyevent POWER (電源鍵)
等等一些,數字鍵、字母鍵,包括PC鍵盤上面的鍵值都可以模擬出來。相當強大吧!
?
4. 使用adb命令截屏內容,所截取的屏幕為framebuffer里面的內容,格式為png
$ adb shell screencap -p /sdcard/screen.png ?/storage/emulated/0/Pictures/Screenshots/1.png
$ adb pull /sdcard/screen.png
$ adb shell rm /sdcard/screen.png
子命令 參數 說明 備注
[-d|-e|-s <serialNumber> ] <command> 發送命令到指定設備
devices [-l] 列出所有已經連接的設備,有三種狀態
device/offline/device not found 參數[-l]可省略
push <local> <remote> 復制一個文件或者目錄到設備中 adb push D:\test.apk /mnt/sdcard/
pull <remote> <local> 從手機復制一個文件到本地 adb pull /mnt/sdcard/test.apk D:\
install [-lrtsd] <file> 安裝apk adb install D:\test.apk
-l:標識應用為受限應用
-r:替換已經存在的應用
-t:運行安裝測試包
-s:安裝到SD卡中
-d:允許降級安裝
install-multiple [-lrtsdp] <file...> 批量安裝
-p:部分應用程序安裝
uninstall [-k] <package> -k:保持data和cache下的文件 adb uninstall package name
bugreport 無 打印當前的dumpsys、sumpstate、logcat的輸出 adb bugreport > D:/bugreport.text
logcat [Options] [FILTER]
Options:
-s : 設置輸出日志的標簽,只顯示該標簽的日志
-f : 將日志輸出到文件,默認輸出到標準輸出流
-v : 設置日志的輸出格式,注意只能設置一項
-b : 加載一個日志緩沖區,默認是main
-c : 清空所有的日志緩存信息
FILTER :
格式:<TAG>[:priority] 默認是 *:|
V : Verbose
D : Debug
I : Info
W : Warn
E : Error
S : Slient
輸出Android系統日志 adb logcat與gref命令一起使用:
adb logcat | gref wifi : 過濾出wifi的信息
adb logcat | gref "正則表達式"
shell 命令較多 進入遠程shell端
remount 無 重新掛載系統分區,使系統分區重新可寫
reboot [bootloader|recovery] 重啟
Bootloader:重啟到bootloader
Recovery:重啟到recovery
reboot-bootloader 無 重啟到bootloader
root 無 重新啟動adbd獲取root身份
usb 無 重新啟動adbd來監聽USB
tcpip <port> 重新啟動adbd來監聽指定的TCP端口
wait-for-device 無 等待設備連接
start-server 無 開啟adb服務
kill-server 無 殺掉adb服務
get-state 無 獲取adb服務狀態offline | bootloader | device
get-serialno 無 獲取SN號
get-devpath 無 獲取device-path
status-window 無 連續打印指定設備的設備狀態
adb 備份與恢復命令
backup 將應用的數據文件寫入到指定的文件,如果沒有指定-f 輸出目錄,則保持在當前目錄的"backup.ab"
[-f <file>] 指定備份目錄
[-apk|-noapk] 是否備份apk文件,默認是noapk
[-obb|-noobb] 是否備份obb數據包,默認是noobb
[-shared|-noshared] 是否備份SD卡共享內容,默認是noshared
[-all] 備份所有已安裝的應用
[-system|-nosystem] 是否備份系統應用,-all默認是包括系統應用
[<packages...>] 備份指定的應用列表
restore <file> 將備份文件恢復到手機中
adb 重定向端口命令—端口映射命令 將開發PC上的端口(1314)重定向到設備的端口(5200)上,這樣所有發往PC端口(1314)的數據都會被轉發到設備的端口(5200)上。這個機制可以實現遠程控制Android設備應用
forward --list 無 列出所有套接字連接列表 打開設備monkey應用端口:adb shell monkey --port 1080
將PC的1080映射到設備的1080:adb forward tcp:1080 tcp:1080
連接本機1080端口即連接到設備的1080端口 telnet 1080
即進入monkey通訊界面
forward <local> <remote> 重定向端口
forward --no-rebind <local> <remote> 重定向端口,假如local端口已經被占用則失敗
forward --remove <local> 移除本地已經連接的套接字
forward --remove-all 無 移除本地已經連接的所有套接字
reverse --list 無 列出所有連接設備反向的套接字
reverse <remote> <local> 反向連接套接字
reverse --norebind <remote> <local> 反向連接,假如端口已經被占用則連接失敗
reverse --remove <remote> 刪除一個特定的逆轉套接字連接
reverse --remove-all 無 刪除所有逆轉的套接字連接設備
adb 無線連接與文件同步
connect <host>[:<port>] 通過TCP / IP連接到設備
如果沒有指定端口號則使用5555作為默認端口 1.root您的Andorid設備
2.安裝wireless adb工具(google?play里面可以下載)
3.PC和Android設備連接到同一網絡,手機上查看Android設備IP地址
通過命令:netcfg查詢IP
4.PC端輸入以下命令
adb connect IP地址:端口,端口默認為5555
adb connect 192.168.1.105:5555
注意:adb 無線連接失敗解決
通過USB連接后直接通過ADB設置
adb tcpip 5555 #讓adbd重新啟動,并監聽端口5555
adb connect 192.168.0.101:5555
disconnect [<host>[:<port>]] 斷開與TCP / IP設備
如果沒有指定端口號則使用5555作為默認端口
sync [ <directory> ] 只要文件發生改變時就會自動從主機拷貝到設備
需要指定環境變量ANDROID_PRODUCT_OUT為同步目錄
shell命令
adb shell cat /sys/class/net/wlan0/address shell命令 獲取 wifi mac 地址
adb shell cat /proc/cpuinfo 獲取 cpu 序列號
adb shell cat /system/build.prop 獲取設備編譯屬性
adb shell cat /data/misc/wifi/*.conf 獲取 wifi 配置信息(需要ROOT權限)
adb shell top [-m <number>] 查看內存占用情況 adb shell top 系統所有的內存占用情況
adb shell top -m 3 前三個占用的情況
adb shell top -n 1 刷新一次內存,然后返回
adb shell ps 查看進程列表
adb shell kill <pid> 殺死一個進程
adb shell ps –x <pid> 查看指定進程的狀態
adb shell service list 查看后臺 services 信息
adb shell cat /proc/meminfo 查看當前內存占用
adb shell cat /proc/iomem 查看 IO 內存分區(需要ROOT權限)
adb shell ls mnt 查看所有設備存儲設備名
adb remount 將 system 分區重新掛載為可讀寫分區
adb shell ls 列出目錄下的文件和文件夾
adb shell cd <folder> 進入文件夾 adb shell
cd data/data
adb shell rm [-r] <path/filename> 刪除文件(夾)
adb shell cat <file> 查看文件內容
adb shell mkdir path/foldername 新建文件夾
adb shell input text <content> 發送文本內容 adb shell input text "www.baidu.com" 輸入www.baidu.com
adb shell input keyevent <keycode> 發送鍵盤事件 adb shell input keyevent KETCODE_HOME 按HOME鍵
adb shell wm size 獲取設備分辨率
adb shell getprop <key> 獲取設備參數信息 adb shell getprop ro.build.version.sdk 獲取SDK版本信息
adb shell setprop <key> <value> 設置設備參數信息
adb shell screencap –p <path/file> adb 命令截圖 adb shell screencap -p /sdcard/test.png
adb shell screenrecord [options] <path/filename>
Options 說明:
--size WIDTH * HEIGHT
--bit-rate RATE
--time-limit TIME
--rotate adb 命令錄制屏幕視頻 adb shell screenrecord /sdcard/s1.mp4
adb shell am start Options:
-D : 啟動調試
-W : 等待啟動完成
INTENT :
-a <ACTION> :設置 intent 的 action
-d <DATA_URI> :設置 intent 的uri
-t <MIME_TYPE> : 設置 intent 的 mime 類型
-c <CATEGORY> : 設置 intent 的類別
-n <COMPONENT> : 設置 intent 的 component
-f <FLAGS> :設置 intent 的 flag
使用 adb 調用 ActivityManager adb shell am start -a android.intent.action.MUSIC_PLAYER
adb shell am monitor 用 adb 調用 ActivityManager — 監控 Crash 和 ANR
adb shell am force-stop <PACKAGENAME> 強制結束一個應用
adb shell am kill-all 清理所有進程
adb shell am startservice <INTENT> 啟動一個 Service
adb shell am broadcast <INTENT> 發送一個廣播 啟動主菜單:adb shell am broadcast -a GOTO_ALL_APP
adb shell pm list package [Options] [FILTER]
Options:
-f : 列出應用包名及對應的apk名及存放位置
-d : 過濾出系統禁用的應用
-e : 過濾出系統中正常使用的應用
-s : 過濾出系統中的系統應用
-3 : 過濾出系統中的第三方應用
-i : 列出應用包名及其安裝來源
-u : 列出包含卸載的應用
FILTER:
列出包含FILTER文本的應用 adb shell pm list packages -f|grep -nri
adb shell pm path <PACKAGENAME> 列出應用包名對應的 .apk 位置
adb shell pm dump <PACKAGENAME> dump 應用信息
adb shell pm install [Options] < apk file>
Options:
-r : 覆蓋安裝
-s : 安裝應用到 sdcard 上
-f : 安裝應用到內部存儲上
-d : 允許安裝低版本應用 安裝應用
adb shell pm uninstall <PACKAGENAME> 卸載應用
adb shell pm get-install-location 獲取應用安裝位置 返回為0表示自動
返回為1表示手機存儲
返回為2表示SD卡
adb shell pm set-install-location 2 / 0 / 1 設置應用安裝位置
adb shell pm enabled <PACKAGENAME> 顯示應用
adb shell pm disenabled <PACKAGENAME> 禁用應用
adb shell dumpsys 獲取當前系統信息 adb shell dumpsys meminfo 獲取當前的CPU信息
adb shell dumpsys cpuinfo 獲取當前的CPU信息
adb shell dumpsys battery 獲取當前的電池信息
adb shell dumpsys wifi 獲取當前的wifi信息
adb shell dumpsys display | grep DisplayDeviceInfo 獲取當前的屏幕信息
USB設置充電模式 setprop persist.usb.chgdisabled 0
adb shell shutdown 關機
adb shell blkid 查看手機掛載,比如TD卡
echo aa>fsc_log 新建文件fsc_log
導出手機截圖 adb pull /sdcard/Pictures/Screenshots ./Screenshots
#touch 文件名 新建指定文件 adb shell touch data/log/1231.java;chmod 777 data/log/1231.java
#echo > 文件名 新建指定文件
#echo abcde> 文件名 新建把字符串“abcde”寫到指定目錄
liunx 打開文件:nautilus ./
啟動設置 adb shell am start -n com.android.settings/com.android.settings.Settings
啟動主菜單 adb shell am broadcast -a GOTO_ALL_APP
啟動老化單項: adb shell am start -n com.ckt.runtime/.RuntimeTestSetting
刪除老化LOG adb shell rm -rf sdcard/runInTest
查看CPU使用情況: adb shell top -m 100 -s cpu
查看已知服務CPU使用情況: adb shell top | grep /system/bin/rf_test_srv
ADB SHELL adb shell "ps | grep rf_test_srv | busybox awk '{print $2}'|xargs kill -9"
ADB 刪除指定名字的APK
查看當前運行APK的包名類名 adb shell "dumpsys activity top |grep ACTIVITY"
讀SN號 adb shell getprop persist.sys.pcbasn
讀取版本號 adb shell getprop > ./prop.log
QXDM: Send_data 0x29 0x02 0x00
nv_read_item 114
殺死一個指定進程: adb shell "ps | grep rf_test_srv | busybox awk '{print $2}'|xargs kill -9"
DUMP信息填寫 APPS \out\target\product\msm8937_64\obj\KERNEL_OBJ
MODEM \MPSS.JO.2.0\modem_proc\build\ms
概念
1,adb 是什么?
就是debug工具 監聽網絡端口方式讓IDE和Qemu通訊。
2,adb 有什么用?
就是連接手機與pc端的橋梁 ,讓用戶在電腦上對手機進行全面操作。
3,adb常用命令
獲取序列號:
adb get-serialno
查看連接計算機的設備:
adb devices
重啟機器:
adb reboot
重啟到bootloader,即刷機模式:
adb reboot bootloader
重啟到recovery,即恢復模式:
adb reboot recovery
查看log:
adb logcat
終止adb服務進程:
adb kill-server
重啟adb服務進程:
adb start-server
獲取機器MAC地址:
adb shell cat /sys/class/net/wlan0/address
獲取CPU序列號:
adb shell cat /proc/cpuinfo
安裝APK:
adb install <apkfile> //比如:adb install baidu.apk
保留數據和緩存文件,重新安裝apk:
adb install -r <apkfile> //比如:adb install -r baidu.apk
安裝apk到sd卡:
adb install -s <apkfile> // 比如:adb install -s baidu.apk
卸載APK:
adb uninstall <package> //比如:adb uninstall com.baidu.search
卸載app但保留數據和緩存文件:
adb uninstall -k <package> //比如:adb uninstall -k com.baidu.search
啟動應用:
adb shell am start -n <package_name>/.<activity_class_name>
查看設備cpu和內存占用情況:
adb shell top
查看占用內存前6的app:
adb shell top -m 6
刷新一次內存信息,然后返回:
adb shell top -n 1
查詢各進程內存使用情況:
adb shell procrank
殺死一個進程:
adb shell kill [pid]
查看進程列表:
adb shell ps
查看指定進程狀態:
adb shell ps -x [PID]
查看后臺services信息:
adb shell service list
查看當前內存占用:
adb shell cat /proc/meminfo
查看IO內存分區:
adb shell cat /proc/iomem
將system分區重新掛載為可讀寫分區:
adb remount
從本地復制文件到設備:
adb push <local> <remote>
從設備復制文件到本地:
adb pull <remote> <local>
列出目錄下的文件和文件夾,等同于dos中的dir命令:
adb shell ls
進入文件夾,等同于dos中的cd 命令:
adb shell cd <folder>
重命名文件:
adb shell rename path/oldfilename path/newfilename
刪除system/avi.apk:
adb shell rm /system/avi.apk
刪除文件夾及其下面所有文件:
adb shell rm -r <folder>
移動文件:
adb shell mv path/file newpath/file
設置文件權限:
adb shell chmod 777 /system/fonts/DroidSansFallback.ttf
新建文件夾:
adb shell mkdir path/foldelname
查看文件內容:
adb shell cat <file>
查看wifi密碼:
adb shell cat /data/misc/wifi/*.conf
清除log緩存:
adb logcat -c
查看bug報告:
adb bugreport
獲取設備名稱:
adb shell cat /system/build.prop
查看ADB幫助:
adb help
跑monkey:
adb shell monkey -v -p your.package.name 500