ADB命令
来源:互联网 发布:江苏远洋数据 编辑:程序博客网 时间:2024/06/06 01:34
一、ADB简介
ADB,即Android Debug Bridge,它是Android提供的一个通用的调试工具。adb.exe在安装的Android的sdk开发包platform-tools的目录下。
(一)ADB原理
ADB的结构是一个client-server的结构,包含3个部分:
客户端部分: 运行在PC上,可以在命令行中运行adb命令来调用该客户端,像ADB插件和DDMS这样的Android工具也可以调用adb客户端。
守护进程 : 运行于模拟器或手机的后台(也就是一个叫做aabd的东西,运行在Andriod设备的底层,android设备需启动usb调试)。
服务器部分 :在开发app的PC上后台运行,用于管理客户端(client)和守护进程(daemon)的连接。
(二)ADB如何工作的
当启动adb客户端时,客户端首先检测adb服务端进程是否运行,如果没有运行,则启动服务端。当服务端启动时,它会绑定到本地的TCP5037端口,并且监听从adb客户端发来的命令——所有的adb客户端都使用5037端口与adb服务端通信。(PC上)
服务端与所有正在运行的模拟器或手机连接。它通过扫描5555-5585之间的奇数号端口来搜索模拟器或手机,一旦发现adb守护进程,服务器就通过此端口建立一个连接(客户端与守护进程的连接)。需要说明的是,每一个模拟器或手机使用一对有序的端口,偶数号端口用于控制台连接(控制设备的console连接),奇数号端口用于adb连接。
结构图:
(三)ADB相关指令
1.adb devices:了解目前连接的设备或模拟器的状态的相关信息。
输出信息包括两列:第一列为设备的序列号信息,第二列为设备的状态信息(device状态:表示设备已连接;offline状态:设备没有连接到adb服务或无响应;no device状态:没有设备或模拟器连接)
2.adb install:完成手机应用的安装
(1)adb install 安装包路径(绝对路径)
(2)向指定的物理手机或模拟器来安装指定的手机应用:
adb–s 物理设备序列号或手机模拟器设备序列号 install 安装包路径
(3)已安装该应用,加入-r会覆盖原来安装的软件并保留数据
adb–s 物理设备序列号或手机模拟器设备序列号 install –r 安装包路径
3.adb uninstall:完成手机应用的卸载
(1)adb uninstall已安装应用的包名
(2)adb –s 物理设备序列号或手机模拟器设备序列号 uninstall 已安装应用的包名
(3)卸载手机应用时保留配置和缓存文件
adb –s 物理设备序列号或手机模拟器设备序列号shell pmuninstall –k 已安装应用的包名
4.adb pull:实现手机端文件传至pc端
adb pull 手机端路径 pc端路径
例:adb pull /sdcard/tmp/error_fs.dat d:/
如果是针对某个设备需使用“-s”参数来指定设备:adb –s 设备序列号 pull 手机端路径 pc端路径
5.adb push:实现pc端文件传至电脑上
例: adb push d:/ /sdcard/tmp/
6.adb shell:支持linux命令
输入adb shell 指令后,出现提示符,可直接输入linux命令,可使用exit来退出“adbshell”提示符
su root 切换为root用户(手机需要)
(1) adbshell dumpsys 查看手机相关信息
~ battery 查看电池电量信息
AC powered 是否连接电源供电;USB powered 是否连接USB供电;Status 电池的充电状态(5表示电池电量是满的);Health 电池的将康状态(2表示良好);Present 手机上是否有电池;Level 当前剩余的电量信息;Scale 电池电量的最大值;Voltage 当前电池的电压;Temperature 当前电池的温度;Technology 电池使用技术(锂电池)。
~wifi 查看无线网络信息
加入其后“|more”参数,当输出满一页时就会暂停输出,按空格键显示下页内容,按Q健停止显示后续输出信息
~power 查看电源管理相关信息
adb shell dumpsys power |grep "mScreenOffTimeoutSetting"仅输出屏幕关闭时间的设置信息,grep(搜索文件命令)只输出相应信息。
~telephony.registry 查看电话相关信息
(2)adb shell cat /proc/XXX(cat命令查看文件)
android系统下的“/proc”分区保存系统的各种实时信息,如CPU、内存等
adb shell cat /proc/cpuinfo 查看cpu硬件的相关信息
adb shell cat /proc/meminfo 查看内存的相关信息
adb shell cat /proc/iomem 查看I/O内存分区的相关信息
此外,还可以使用相应命令获取手机型号、手机处理器信息、手机内存信息、手机屏幕分辨率信息、手机系统版本信息、手机内核版本信息、手机运营商信息、手机网络类型信息、手机串号信息
(3)adb shell df 获取手机android系统各个分区的相关信息
(4)获取linux内核的环形缓冲区信息(需root权限)、获取手机android系统的当前状态的相关信息
当信息过多时可使用重定向,将输出的内容放到一个文件中,adb shell dmesg > /sdcard/log.txt,可打开文件查看。
(5)pm指令(package manager),模拟android行为或查询设备上的应用
adb shell pm list package 列出手机装的所有的app包名
adb shell pm list package -3列出除了系统应用外手机装的第三方的app包名
~-d 查看disabled packages
-e 查看enable package
-s 查看系统package
-i 查看package对应的安装者
-u 查看曾被卸载过的package
(6)am指令(Activity Manager)模拟各种系统的行为,如启动一个Activity、强制停止进程、发送广播进程、修改设备屏幕属性等
例:adb shell am start –n com.sankuai.meituan.takeoutnew/(.activity名称)启动app
(7)adb shell clear <package> 清除应用数据与缓存
(8)adb shell screencap 手机路径(截图)
adb shell screenrecord 手机路径(视频)
7.adb get-serialno 获取设备序列号
8.adb get-state 查看设备或模拟器当前状态
9.adb logcat 查看和跟踪系统日志
adblogcat –v time>logcat.log 获取log文件
adblogcat –c 清除缓冲池
adblogcat *:W 输出优先级别大于“警告”级别的日志信息(警告以及错误级别信息)
10.adb connect<host>[:<port>] 与指定端口号连接设备
adb disconnect<host>[:<port>] 与设备断开连接
例:adb connect172.24.35.16:17501
11.adb start-server 启动adb服务
12.adb kill-server 关闭adb服务
13.adb forward 将本机端口号重定向到模拟器或设备上
例:adb forwardtcp:2211(本机) tcp: 5566(设备)
14.adb bugreport 查看android启动过程的日志信息,以及启动后的系统状态,包括进程列表、内存信息、VM信息等。
二、手机模拟器上相关操作
模拟器是如何工作的?
在模拟器启动后,会打开一个网络套接字(Socket)端口与其所在的主机进行通信,可以借助一些工具,通过这个端口与模拟器进行交互。如通过telnet操控模拟器(保证telnet在pc上可用,在终端输入telnet,查看服务是否可用,使用quit退出命令)
统一在telnet服务下
1.模拟手机来电:gsm call 13800000044
2.模拟发送短信:sms send 13800440000 hi,tester
3.模拟器上模拟网络相关命令
network status:查看网络状态的信息
network speed 14.4:20 :动态的设定模拟器的网速(上行:14.4,下行:20)
network delay 5:网络延时为5毫秒
network capture start 文件名 :动态捕获模拟器的网络数据包
network capture stop(停止)
4.修改模拟器尺寸
window scale 0.5 尺寸变为原来的一半
- adb 命令
- adb 命令
- adb命令
- adb命令
- adb 命令
- adb 命令
- adb 命令
- adb命令
- adb命令
- adb命令
- ADB 命令
- adb命令
- adb 命令
- adb命令
- adb 命令
- adb命令
- adb命令
- adb命令
- lnk2019无法解析的外部命令
- tostring/tonumber的使用
- 设计模式之工厂模式
- 应用jquery操作元素样式(一)
- Codeforces 835B
- ADB命令
- +、-、*、/、%的使用
- 前缀和--分布函数--cf835c star sky
- Oracle之多表查询
- HDU 6045 Is Derek lying?【】
- Hive基础到高级
- ==、~=、>、<、<=的使用
- 7月31日云栖精选夜读:金融安全资讯精选 2017年第一期:云战略下的安全思维转型与新认知
- hdu 5532 (最长上升子序列)nlogn