adb命令零基础快速入门

Posted sylnhgj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了adb命令零基础快速入门相关的知识,希望对你有一定的参考价值。

一、adb基础

1.什么是adb?

adb全称为android Debug Bridge,就是起到调试桥的作用。顾名思义,adb就是一个debug工具。

2.adb工作原理

不是很理解?那就来看看它的工作原理吧。

上图是一个简单的adb工作原理图。adb客户端服务器端程序,由上图可以看出它主要三个组件组成:Client,Server,Daemon。

(1)当你启动一个adb Client(客户端),Client首先会选确认是否已有一个adb Server(服务器)进程在运行,如果没有,则会启动Server进程。此时,adb Server就会绑定本地的TCP端口5037,并监听adb Client发来的命令。

(2)接着,Server将会扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备,并与之建立连接。一旦Server找到 了adb daemon(守护程序),它将建立一个到该端口的连接,这样,我们就可以使用adb命令控制和访问模拟器或设备了。在这里,需注意的是任何模拟器或设备实例会取得两个连续的端口:一个偶数端口用来相应控制台的连接,和一个奇数端口用来响应adb连接。

3.adb的作用

借助adb工具,我们可以管理设备或手机模拟器的状态,还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。简而言之,adb就是连接Android手机和PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。

 4.adb环境搭建

(1)Java环境

①到官网下载jdk:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html

②jdk下载完成安装之后配置环境变量,按照如下操作:

按照1,2,3步骤打开系统中属性中的环境变量

 

按照下图1,2,3步骤,添加JAVA_HOME系统变量(变量名为自己安装JDK的路径) 

 例如我的安装地址是C:\\Program Files\\Java\\jdk1.8.0_261

按照下图1,2,3步骤,添加CLASSPATH系统变量(注意最前面有个点)

.;%JAVA_HOME%\\lib;%JAVA_HOME%\\lib\\tools.jar

 

最后在path的变量值最后末尾,追加配置   ;%JAVA_HOME%\\bin;%JAVA_HOME%\\jre\\bin;

按 win + R 键 输入cmd 回车,弹出命令行窗口输入java -version 得到版本号相关信息则表示安装成功。

(2)Android SDK环境

①SDK官方下载地址:https://developer.android.com/studio/releases/platform-tools

②将下载下来的SDK解压后按照下图配置环境变量(这里的变量值为自己解压后的SDK路径)

 然后再在path中加入这两条路径即可:%ANDROID_HOME%\\tools;%ANDROID_HOME%\\platform-tools

 最后在cmd中输入adb有如下提示表示安装成功

5.连接手机设备及查看设备状态 

 测试机型的选择:真机、模拟器

(1)连接模拟器(mumu为例)

windows:

adb connect 127.0.0.1:7555
adb devides

mac:

adb kill-server
adb devices

(2)连接真机(Android手机)设备

①手机端:让手机处于一个调试模式

通过USB数据线连接:

「设置」-「开发者选项」-「Android 调试」查看。开发者选项,点允许usb调试,然后就可以连上电脑了

如果在设置里找不到开发者选项,在「设置」-「关于手机」连续点击「版本号」7 次。

②电脑端安装手机驱动

(3)查看手机状态

adb devices  //以列表形式展示
adb get-state

(4)设备状态种类

device //正常
offline  //连接出现异常,设备无响应
unauthorized  //未授权

6.adb命令格式及安装卸载包

 (1)adb命令格式

 adb [-d | -e | -s <serialNumber>] <command>

-d指定当前唯一通过USB连接的android设备为命令目标(了解)

-e指定当前唯一运行的模拟器为命令目标(了解)

-s指定相应的设备为命令目标(重点)

(2)安装

普通安装:adb install <apk安装路径>

覆盖安装/替代安装:adb install -r <apk路径>

(3)卸载应用

adb uninstall 包名

卸载应用(不删除配置文件,保存数据缓存信息) adb uninstall -k 包名

7.adb启动页面

(1)包和Activity(活动页)的概念

package包:是Android应用的唯一标识

Activity活动页:Android应用页面,一个页面就是一个Activity

(2)获取当前的页面名

①打开手机app应用的某个页面

②打开命令行工具执行命令:

adb shell "dumpsys window | grep mCurrentFocus"

如下图:

 /前为包名,后为页面名

(3)获取启动页面的activity

mac:adb logcat ActivityManager:I | grep "cmp"
win: adb logcat ActivityManager:I | findstr "cmp"

(4)启动页面

命令:adb shell am start -n <包名>/<activity包>

8.adb shell 应用

查看目录结构:adb shell ls

查看系统当前日期:adb shell date

查看系统cup使用情况:adb shell cat /proc/cpuinfo

查看系统内存使用情况:adb shell cat /proc/meminfo

显示所有应用:adb shell pm list packages

显示系统自带应用:adb shell pm list packages -s

显示第三方应用:adb shell pm list packages -3

清除应用数据及缓存:adb shell pm clear <包名>

二、adb进阶

1.设备与电脑传输文件

 注意:在输入设备路径的时候,尽量在/sdcard目录下,因为这个目录下的文件是可操作的。

2.使用adb查看日志

(1)日志的级别

  • V--明细 verbose(最低优先级)
  • D--调试 debug
  • I--信息 info
  • W--警告 warn
  • E--错误 error
  • F--严重错误 fatal 
  • S--无记载silent (最高优先级,绝不会输出任何内容)

 (2)查看日志的命令及常用参数

adb命令查看日志:adb logcat

常用的参数:

adb logcat  打印默认日志数据

adb logcat -v time  打印时间

adb logcat -v color 使用不同的颜色来显示每个优先级

adb logcat -f <filename>  将日志输出到文件

adb logcat > x.log  保存日志到pc上

adb logcat -c 清理已存在的日志

(3)根据条件过滤日志

adb logcat -v time "*:W" //打印Warning及以上级别的日志
adb ActivityManager:D '*:S' //过滤tag 为ActivityManager,level为Debug及以上级别的日志

3.adb模拟手机按键

模拟点击事件:adb shell tap x坐标 y坐标

模拟输入事件:adb shell input <输入内容>

模拟滑动事件:adb shell swipe <起点x> <起点y> <终点x> <终点y> <滑动时长>

模拟手机按键:

返回键:adb shell input keyvent 4

Home键:adb shell input keyevent 3(置应用于后台运行)

音量放大:adb shell input keyevent 24

音量缩小:adb shell input keyevent 25

4.查看CUP使用情况

查看当前系统CPU使用情况:adb shell dumpsys cpuinfo(adb shell dumpsys cpuinfo 获取的是一个时间段内的平均值,没有adb shell top 的准确)

5.内存使用情况

查看当前系统的内存:adb shell dumpsys meminfo

查看某个应用的内存:adb shell dumpsys meminfo <应用名>

6.top命令

1.adb shell top

2.adb shell top | grep "包名"--查看某个包的一些性能指标

3.adb shell top -d 1 | grep "包名"

2,3中为mac或者Linux的命令,windows的为:

adb shell top | findstr 包名

adb shell top –d 1| findstr 包名

注:(adb top 获取的是实时的性能指标)

7.电池电量

命令:adb shell dumpsys battery

 8.monkey

命令格式:adb shell --help

                  adb shell monkey 【参数】 随机发送事件数

基本用法:

1.在命令提示符中输入adb devices查看有无连接的设备

2.确认有设备连接

3.获取app包名

4.执行命令:adb shell monkey 【参数】 随机发送事件数

monkey打印详细日志:adb shell monkey -v <事件数>、adb shell monkey -v v<事件数>、adb shell monkey -v vv<事件数>

monkey测试停止的条件:

1.指令执行完成

2.遇到崩溃,或者异常

3.杀掉进程

monkey运行某个包:

1.指定一个包:adb shell monkey -p 包名 【事件数】

2.指定多个包:adb shell monkey -p 包名 -p 包名 【事件数】

指定事件时间间隔:

--throttle <milliseconds>:每个事件结束后的事件间隔

adb shell monkey -p 包名 --throttle 时长(秒)

设置种子数:-s <seednumber>:用于指定伪随机数生成器的seed(种子)值

设置事件比列:

 9.日志分析

1.crash 闪退

2. exception 异常

3.force closed 强制退出

4.anr (application no response)程序无响应

忽略异常:

 保存日志:

方式一:adb shell monkey 1000> 文件路径/文件名

方式二:adb logcat -v time '*E' > monkey.log

以上是关于adb命令零基础快速入门的主要内容,如果未能解决你的问题,请参考以下文章

Docker零基础快速入门(通俗易懂)

LLVM 之后端篇:零基础快速入门 TableGen

零基础快速入门Java的秘诀

Android安全入门基础-ADB详解

LLVM 之后端篇:零基础快速入门 TableGen

前端零基础快速入门JavaScript