ADB高级应用

本文发布时间: 2019-Mar-22
ADB高级应用一、利用无线来查看adb shell> adb tcpip 5555连接:> adb connect IP:5555见后文《调试注意事项》二、模拟按键 > adb shell input keyevent "value"部分常见按键对应值:Key | Constant ValueBack 4Power 26Menu 82Home 3Search 84方向键:上 19下 20左 21右 22确认(类似单击):23三、adb shell下查看系统盘符 > adb shell df 四、adb shell下挂载系统> adb shell> busybox mount -o remount,rw /system五、adb shell 下移除USB设备> adb shell> vdc unshare /mnt/sdcard ums六、adb shell 下查看内核信息> cat /proc/kmsg &七、查看build配置的值(以heap为例)> adb shell getprop | grep heap八、通过sendevent 模拟按键以及鼠标直接用input实现:> adb shell input keyevent 3> adb shell input tap 250 250> adb shell input swipe 250 250 300 300九、查看屏幕显示的fps开启系统属性:debug.sf.fps=1然后直接logcat -s SurfaceFlinger -v time(看SurfaceFlinger里面打印出来时多少)十、查看当前运行程序栈> dumpsys window windows | busybox grep "Window #" 十一、查看当前设备DDR运行频率> cat /proc/clocks | busybox grep "ddr"十二:ADB logcat过滤adb logcat -s TAG_NAMEadb logcat -s TAG_NAME_1 TAG_NAME_2adb logcat “*:PRIORITY”adb logcat -s TAG_NAME:PRIORITYadb logcat -s TAG_NAME_1:PRIORITY_1 TAG_NAME_2:PRIORITY优先级(PRIORITY)分为以下几种:V – VerboseD – DebugI – InfoW – WarningE – ErrorF – FatalS – Silent范例:> adb logcat *:E 查看异常信息> adb logcat -s "TAG" 过滤TAG十三:查看设备是否拥有su权限(4.2及之前版本)> adb shell> ps# 会列出系统进程# 选一个u开头的 表示普通程序> su u0_a8#切换到u0_a8下 #号变 >> su#如果可以执行,>号为#号,则表示有su权限,如果提示权限问题,就没有su权限十四:查看应用引用adb 查看Android应用所有引用 > adb shell> ps (查看PID号)> cd /proc/PID号/fd> busybox ls -l 也将文件拷贝出来> cat xxx > /sdcard/xxx十五:获取运行内存/CPU信息> adb shell> cat /proc/meminfo> cat /proc/cpuinfo十六:抓取Logcat信息及kmsg信息 # cat proc/kmsg >/data/kmsg.txt & # logcat -v time >/data/logcat.txt &十七:查看Android(手机\平板\开发板等)设备信息> adb shell dumpsys package > package.xml (此命令可显示手机(平板)可供应用查询到的library和feature)十八、输出所有已经安装的应用> adb shell pm list packages -f十九、查看预安apk> adb shell pm list packages -3二十:清除logcat缓冲区(用这个命令来清除一些重复出现的过时的日志)> adb logcat -c二十一、目前认为最牛的adb命令:截取屏幕图片截图直接保存到电脑$ adb shell screencap -p | sed 's/\r$//' > screen.png执行adb shell 将\n转换\r\n, 因此需要用sed删除多余的\r如果直接当命令用还可以用 alias 包裝装起來$ alias and-screencap="adb shell screencap -p | sed 's/\r$//'"$ and-screencap > screen.png 以后就可以方便的用and-screencap > 直接将截图保存到电脑上了其他入门级但也比较常见的adb命令1、查看所有已经连接上的设备adb devices 如果有多个设备连接到电脑,可以通过 adb -s DEVICE_ID 来指定用哪一个2、挂载system分区(当然需要设备支持)adb remount3、安装与卸载应用adb install <apk文件路径>adb install -r <apk文件路径> 通过install命令来安装apk文件,-r参数可以重新安装某个应用并保留应用数据#举例adb install -r ~/chrome.apk卸载应用:adb uninstall <软件名>adb uninstall -k <软件名> 如果加 -k 参数,为卸载软件但是保留配置和缓存文件#举例adb uninstall com.android.chrome4、启动一个Activityadb shell am start 包名/.类名adb shell am start 包名/类的全名5、登录设备shelladb shell --这个命令将登录设备的shell.adb shell <command命令> 后面加<command命令>将是直接运行设备命令, 相当于执行远程命令6. 从电脑上发送文件到设备 --用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)adb remount ## remount '/system'分区 as read-writeadb push <本地路径> <远程路径>7. 从设备上下载文件到电脑 --用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑adb pull <远程路径> <本地路径> 8. 显示帮助信息(包括各种命令用法与含义) adb help引用:http://www.growingwiththeweb.com/2014/01/handy-adb-commands-for-android.htmlhttp://blog.csdn.net/wirelessqa/article/details/29187339http://blog.csdn.net/centralperk/article/details/7644725其他引用:1.模拟功能按键命令格式:adb shell sendevent [device] [type] [code] [value]如: adb shell sendevent /dev/input/event0 1 229 1 代表按下按下menu键adb shell sendevent /dev/input/event0 1 229 0 代表按下松开menu键说明:上述的命令需组合使用另外所知道的命令如下:Key Name CODEMENU 229HOME 102BACK (back button) 158CALL (call button) 231END (end call button) 1072. 发送鼠标事件(Touch):命令格式:adb shell sendevent [device] [type] [code] [value]情况1:在某坐标点上touch如在屏幕的x坐标为40,y坐标为210的点上touch一下,命令如下adb shell sendevent /dev/input/event0 3 0 40adb shell sendevent /dev/input/event0 3 1 210adb shell sendevent /dev/input/event0 1 330 1 //touchadb shell sendevent /dev/input/event0 0 0 0 //it must haveadb shell sendevent /dev/input/event0 1 330 0 //untouchadb shell sendevent /dev/input/event0 0 0 0 //it must have注:以上六组命令必须配合使用,缺一不可情况2:模拟滑动轨迹(可下载并采用aPaint软件进行试验)如下例是在aPaint软件上画出一条开始于(100,200),止于(108,200)的水平直线adb shell sendevent /dev/input/event0 3 0 100 //start from point (100,200)adb shell sendevent /dev/input/event0 3 1 200adb shell sendevent /dev/input/event0 1 330 1 //touchadb shell sendevent /dev/input/event0 0 0 0adb shell sendevent /dev/input/event0 3 0 101 //step to point (101,200)adb shell sendevent /dev/input/event0 0 0 0…………………… //must list each step, here just skipadb shell sendevent /dev/input/event0 3 0 108 //end point(108,200)adb shell sendevent /dev/input/event0 0 0 0adb shell sendevent /dev/input/event0 1 330 0 //untouchadb shell sendevent /dev/input/event0 0 0 0调试注意事项当调试那些使用了USB外设和主机特性的应用时,你很有可能把你的USB硬件连接到你的Android设备上,这将阻止你通过USB建立adb到Android设备的连接。你通过网络仍可以访问adb。通过网络连接adb:通过USB将Android设备连接到电脑。从SDK 的 platform-tools 目录,在命令行输入adb tcpip 5555输入:adb connect <设备的IP地址>:5555 ,你现在将被连接到Android设备并能像adb logcat一样发出通用的adb命令。要设置你的设备监听USB,输入adb usb 。


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:10pm
栏目列表