Android 调试桥 (adb) ,可与设备进行通信。adb 命令可用于执行各种设备 *** 作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:
客户端: 用于发送命令。客户端在开发机器上运行。可以通过发出 adb 命令从命令行终端调用客户端。(可以通过它对Android应用进行安装、卸载、调试)
PC上的手机助手基本都是通过adb命令去完成的。有时候装了这类手机助手的话,它自带的adb程序可能会与Android SDK下的adb程序产生冲突,5037端口被占用,导致adb命令无法连接到设备。Windows下通过netstat -ano|findstr "5037"
守护程序 (adbd): 用于在设备上运行命令。守护程序在每个设备上作为后台进程运行
执行adb shell ps | grep adbd, 可以找到该后台进程,Windows使用findstr替代grep
adb nodaemon server
服务器(Service): 用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行
adb服务启动后,Windows可以在任务管理中找到adbexe; linux ps -ef | gref adb 可以查看service
一般都是通过这样子的格式 adb [-d|-e|-s <设备序列号>] <子命令>
通常只有一台设备就忽略 [-d|-e|-s ] 这一部分
这里介绍一些常用的命令:
获取设备列表及设备状态
获取设备的状态
注意:设备的状态有 3 钟,device , offline , unknown
device:设备正常连接
offline:连接出现异常,设备无响应
unknown:没有连接设备
结束 adb 服务
启动 adb 服务
注意:通常两个命令一起用,有时候我们开启server会失败,这是因为我们装了的手机助手,豌豆荚或者其他软件自带有自己的adb,导致端口冲突开启失败。一般在连接出现异常,使用 adb devices 未正常列出设备, 设备状态异常时使用 kill-server,然后运行 start-server 进行重启服务。
打印 Android 的系统日志
打印 dumpsys、dumpstate、logcat 的输出,也是用于分析错误输出比较多
打印日志后重定向到一个文件中
安装应用,覆盖安装是使用 -r 选项
注意:有些adb版本无法支持安装中文的apk
查看手机应用包名
查看应用对应的apk文件在手机上的安装位置则可以在上面的命令后加-f参数
卸载应用,后面跟的参数是应用的包名,请区别于 apk 文件名
'-k' means keep the data and cache directories , -k 选项,卸载时保存数据和缓存目录
将 Android 设备上的文件或者文件夹复制到本地
adb pull /sdcard/testtxt C:\Users\Administrator\Desktop\log
推送本地文件至 Android 设备
获取连接到的手机的序列号
获取设备的连接状态
等待设备连接成功
该命令将会阻塞一直到默认连接的那部机器状态变为device,也就是连接成功。
其实adb shell命令就是调用的是Android设备中的system/bin目录下的命令。
Android的内核本身就是Linux,所以Android本身也支持Linux命令,但是因为是手机系统,所以进行了一定的删减,部分命令不支持,而不支持的部分,我们可以通过安装busybox这个软件进行。
如何在手机中执行Shell命令?
每次都加上adb shell来进行命令的发送与执行
先通过adb shell进入手机Shell执行状态,然后直接输入Linux命令。
使一个apk处于禁用状态,相当于卸载了:
其中 PACKAGE_OR_COMPONENT的格式是 package/class, 如 comUCMobile/mainUCMobile
eg:adb shell su disable comUCMobile/mainUCMobile
同时我们在手机上发现,UC浏览器的图标不见了
让一个apk从禁用状态恢复过来
其中 PACKAGE_OR_COMPONENT的格式是 package/class, 如 comUCMobile/mainUCMobileeg:
adb shell su enable comUCMobile/mainUCMobile
同时我们从手机上发现,UC浏览器的图标又出现了。
查看一个apk所在的路径
adb shell pm path comUCMobile
查看手机中装的所有的包
屏幕开始录像并且储存到/sdcard中,同时名字为demomp4
录屏设置时长10s,命名为demomp4
注意:现在仅支持一部分手机录屏,不支持的手机会出现以下提示
解决方法:
安装了scrcpy之后,只需要输入如下命令,即可录取指定设备的屏幕
scrcpy -s device --render-expired-frames -Nr /demopm4
--render-expired-frames:尽可能最大帧率
-N:不在PC端展示
-r:录制mp4/mkv文件
关闭设备请求,开启设备
设备关机以及重启
pm(package manager)可以获取一些安装到Android设备上的app的信息
pm list packages 用法:list packages [ options] filter
获取所有的应用的包名
列出系统应用
列出第三方应用
查看它们的关联文件
adb shell pm list package -f
查看软件包的安装来源
pm dump 包名 很多dump信息
安装应用
apk如果在电脑用 adb install
如果在Android设备上用 adb shell pm install
卸载应用,同adb uninstall ,后跟包名
清除应用数据
am(activity manager,字面意思就跟activity有关,大家都知道Android的界面都是由一个个activity显示的)
启动一个Activity
获取到package和launch_activity
AndroidSDK中aapt工具,检索命令结果,可以获取到package和launch_activity
这里涉及到一个点,如何找到程序的入口,首先你要知道是哪个activity才能启动;
启动华为系统相机
打开音乐播放器
播放指定音乐:
先停止目标应用,再启动
等待应用完成启动
启动网页(androidintentactionVIEW具体参考Android官网)
结束应用
input
模拟输入,向获得焦点的EditText控件输入内容
返回主界面
发送一个点击 *** 作的指令,参数是<x> <y>坐标
从左往右滑动屏幕, /从 100 100 经历300毫秒滑动到 200 200
长按 *** 作,在 100 100 位置长按 1000毫秒
使用adb命令可以实时获取Android设备屏幕上指定坐标点的颜色值,可以通过该功能进行屏幕截图、颜色取色等 *** 作。需要使用adbshell命令结合screencap和dd命令来实现。ADB是一种用于与Android设备通信的命令行工具,可以通过ADB命令实现对Android设备的控制和调试,其中,通过ADB实时获取屏幕坐标点颜色是一种常见的应用场景,可以用于开发调试、自动化测试等方面,具体实现方法如下:
1、连接Android设备到电脑,并打开USB调试模式。
2、在电脑上打开命令行工具,输入adbdevices命令,确认设备已连接成功。
3、输入adbshell命令,进入设备的shell环境。
4、输入screencap-p/sdcard/screenshotpng命令,将当前屏幕截图保存到设备的sdcard目录下。
5、输入ddif=/sdcard/screenshotpngbs=4count=1skip=$((320100+200))|hexdump-e'1/1%02x'命令,获取屏幕坐标点(320,100)的颜色值。
用坐标系。
SendorEventListener通过SendorEvent回调参数获得当前设备在坐标系x、y、z轴上的加速度分量。SensorEvent的apidoc中定义了这里使用的坐标系。
系统一词来源于英文system的音译,即若干部分相互联系、相互作用,形成的具有某些功能的整体。
工作中要对测试机进行一些 *** 作时,首先需要判断当前手机所处的状态(黑屏、亮屏锁定、解锁)以便选择相应的 *** 作
首先通过adb shell dumpsys power | find "Display Power: state="来获取手机当前为黑屏还是亮屏
···
C:\>adb shell dumpsys power | find "Display Power: state="
Display Power: state=OFF
···
然后通过adb shell dumpsys window policy | find "isStatusBarKeyguard"来判断是否锁定,true值为锁屏,false为解锁
```
C:\>adb shell dumpsys window policy | find "isStatusBarKeyguard"
mStatusBar=Window{71c9ed7 u0 StatusBar} isStatusBarKeyguard=true
```
参考文章:>
以上就是关于ADB常用命令全部的内容,包括:ADB常用命令、adb实时获取屏幕坐标点颜色、adb获取当前系统方向等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)