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 尺寸变为原来的一半


原创粉丝点击