adb基本操作及环境配置

本文详尽介绍了adb的基础知识和进阶用法,包括adb环境配置、设备连接、安装卸载应用、启动页面、adbshell命令、文件传输、日志查看、性能指标监测、monkey测试等。通过adb,你可以实现对Android设备的远程控制,进行性能分析和稳定性测试。学习adb能提升Android开发和调试的效率。
摘要由CSDN通过智能技术生成


前言

全网最全的adb知识点
学习框架如下:
在这里插入图片描述

一、adb基础

1.adb是什么?

全称: Android debug bridge
安卓 调试 桥
ADB是我们用来操作(调试)android设备(比如android手机)的一套指令集

在这里插入图片描述
在这里插入图片描述
adb client(本质adb shell):每打开一个adb shell的命令行窗口,就存在一个adb client客户端进程。
adb server:PC端和手机端交互的唯一接口。
adbd(adb daemon):每台安卓设备只能有一个adbd服务进程

2. 环境搭建

------------------------ ** 环境配置**---------------------------

3.连接手机设备及查看设备状态(先连接设备)

1.先连接设备

  • 模拟器
  • 真机

Android 模拟器种类

  • Android Studio emulator(官方)
  • genymotion(信赖网络)
  • mumu,雷电,夜神,逍遥等第三方模拟器(推荐)

连接模拟器(mumu 为例)连接设备

windows系统:

 adb connect 127.0.0.1:7555

mac系统:

 adb kill-server

查看手机状态

adb devices

二选一

adb get-state

设备状态种类

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

在这里插入图片描述

4.adb命令格式_安装卸载包

adb 命令格式

  • 格式 :
adb [-d|-e|-s <serialNumber>]<command>
  • -d 指定当前唯一通过 Usb 连接的 android 设备为命令目标(了解)
  • -e 指定当前唯一运行的模拟器为命令目标(了解)
  • -s 指定相应的设备为命令目标(重点)

1. 安装

普通安装

    adb install xxx.apk

覆盖安装/替代安装

adb install -r <apk路径>

2. 卸载

卸载应用

adb uninstall 包名
    adb devices
    adb shell pm list packages
    adb uninstall com.xxx.xxx

卸载应用(不删除配置文件,保存数据缓存信息)

adb uninstall -k 包名
  • 1.打开命令行Windows+R,输入adb devices,查看设备是否连接;

  • 2.输入adb shell pm list packages,查看设备已有的程序列表,找到需要卸载多大程序包名;

  • 3,输入adb uninstall com.xxx.xxx(需要卸载的程序包名);

5. adb启动页面

  • package 包:是 Android 应用的唯一标志
  • Activity 活动页: Android 应用页面,一个页面就是一个 Activity

获取页面的两种方法

1. 获取当前的页面名
1——打开手机或者模拟器的应用的某个页面
2——打开命令行工具:执行命令:

adb shell "dumpsys window | grep mCurrentFocus"
  1. 以mumu的模拟器为例:获取到包和activity后,关掉qq
  2. 然后 输入 adb shell am start -n 加上红色框的代码就可以启动应用程序

在这里插入图片描述

2.获取启动页面的 activity
命令:

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

1.直接找到包和activity (复制cmp=后面的内容)
2.然后adb shell am start -n <包名>/<avticity名>,即可启动应用程序

在这里插入图片描述

最终启动页面
命令:

adb shell am start -n <包名>/<avticity名>

6. 使用 adb shell 命令清缓存

1.理解Android系统

linux 系统内核,底层是Linux的操作系统吗,可以用Linux命令

在这里插入图片描述

2.adb shell 应用

直接进入手机内环境

exit 退出目录

查看目录结构 :adb shell ls
查看系统当前日期 :adb shell date
查看系统 CPU 使用情况 :adb shell cat /proc/cpuinfo
查看系统内存使用情况 :adb shell cat /proc/meminfo

3. adb shell 应用 - 查看应用列表

显示所有应用 :adb shell pm list packages
显示系统自带应用 adb shell pm list packages -s
显示第 3 方应用 :

adb shell pm list packages -3

4.清除应用数据及缓存

1.先进入内环境 adb shellcd /data/data 再输入ls ,显示所以包的目录
在这里插入图片描述

  1. 再输入ls | grep <应用名>
    在这里插入图片描述
    3 cd 包名——> 再输入 ls
    在这里插入图片描述

4 清除历史记录

adb shell pm clear <包名>

包名获取方法-----查看当前页面名

adb shell "dumpsys window |grep mCurrentFocus"

pm----packages manager

二、 adb进阶

1.Android 设备与电脑传输文件

在这里插入图片描述

  • adb push 电脑路径 设备路径
  • adb pull 设备路径 电脑路径

notice:跳出android系统执行,否则提示无adb not found

2.使用adb查看手机日志

1).默认打印日志
adb logcat

运行如下

在这里插入图片描述

2). 查看日志常用的参数

格式:

adb logcat --help
adb logcat [TAG:LEVEL ] [TAG:LEVEL ] ...
3).打印时间
 adb logcat -v time 

在这里插入图片描述

3.) 使用不同的颜色来显示每个优先级
 adb logcat -v color 
4)将日志输出到文件
 adb logcat -f <filename>
5) 保存日志到pc上
 adb logcat >log.log 
5.)清理已存在的日志
 adb logcat -c 

4.根据条件过滤日志

1)打印warning及以上级别的日志

 adb logcat -v tima "*:W"

2) 过滤tag 为 ActivityManager,level为Debug及以上级别的日志

adb logcat ActivityManager:D '*:S'

5.常见问题

****************************** 查看问题

6.adb 模拟按键格式

1、打开【指针位置】设置

在这里插入图片描述

2、执行adb shell input 命令

红框内是可以input的内容

在这里插入图片描述

adb shell tap x坐标 y坐标

在这里插入图片描述

adb shell input text <输入内容>

在这里插入图片描述

adb shell swipe <起点x> <起点y> <终点x> <终点y> <滑动时长>

在这里插入图片描述

模拟手机按键

》》》》》模拟机对于的keyevent值

  • 返回键:adb shell input keyevent 4
  • Home键:adb shell input keyevent 3(置应用于后台运行)
  • 音量放大:adb shell input keyevent 24
  • 音量缩小:adb shell input keyevent 25

7.adb 查看性能指标

1.CPU 使用情况

  • 查看当前系统 CPU 使用情况:
 adb shell dumpsys cpuinfo

在这里插入图片描述

2.内存使用情况

展示均值性能,不是很准确

  • 查看当前系统的内存:

adb shell dumpsys meminfo

在这里插入图片描述

  • 查看某个应用的内存:

adb shell dumpsys meminfo <应用名>

应用名就是包名,如何获取包名可以在基础知识查看

在这里插入图片描述

8.top 命令

adb shell top
会把当前的cup,内存等各种情况,实时打印性能情况

在这里插入图片描述

adb shell top |grep ”包名“ 查看某个包的一些性能指标

过滤不需要的指标,得到目标指标
在这里插入图片描述

adb shell top -d 1 |grep “包名"
每隔一秒打印指标可以 加 -d 1
实时打印性能情况

在这里插入图片描述

9.电池电量

adb shell dumpsys battery

打印结果

 adb shell dumpsys battery
 
Current Battery Service state:
  AC powered: true
  USB powered: false
  Wireless powered: false
  Max charging current: 2000000   # 最大充电电流; mA
  status: 2    #电池状态:2:充电状态 ,其他数字为非充电状态 
  health: 2    #电池健康状态:只有数字2表示good
  present: true   #电池是否安装在机身
  level: 81    #电量: 百分比
  scale: 100
  voltage: 4108    #电池电压
  temperature: 353   #电池温度,单位是0.1摄氏度
  technology: Li-poly   #电池种类
 

9.性能相关的具体用法

》》》》》》》 官网介绍

三.monkey 测试

1.什么是monkey

Monkey 是 Google 提供的一个用于 稳定性与压力测试 的命令行工具

在这里插入图片描述

2.为什么要做压力测试

  • 随机性
  • 完整性
  • 持续性

3.monkey 命令格式

adb shell monkey [参数] {随机发送事件数}

对应的方法查询不同的值
在这里插入图片描述

4.基本用法

1.Monkey 命令- 添加事件数

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

  • 2.确认有设备连接

  • 3.获取 app 的包名(可以看adb基础如何获取报名)

  • 执行命令:adb shell monkey [参数] {随机发送事件数}

一百下事件完成时间可能只要几秒,速度很快,时间数不要太少建议1000++
事件随机性很强,可能十多个进行。
在这里插入图片描述

2.monkey 打印详细日志

adb shell monkey -v <事件数> //打印一级日志
adb shell monkey -vv <事件数> / /打印较详细日志
adb shell monkey -vvv <事件数>// 打印最全面日志

事件越大,需要时间就多,ctrl +c 停止进程

3.monkey 测试停止条件

  • 1、指令执行完成
  • 2、遇到崩溃,或者异常
  • 3、杀掉进程

如果模拟器系统崩溃,就重启
adb shell 进入内环境
ps | grep 查看Linux进程,找到monkey 的包
kill 加上进程号,就会停止进程,在pc端无法停止,只能进入内环境

在这里插入图片描述

4.monkey 运行某个包

  • 指定一个包 adb shell monkey -p 包名 [数件数]
  • 指定多个包 adb shell monkey -p 包名 -p 包名 [事件数],多个程序会来回切换

在这里插入图片描述
在这里插入图片描述

5.指定事件时间间隔

真实模拟用户点击事件

--throttle <milliseconds>:
每个事件结束后的间隔时间
adb shell monkey -p 包名 --throttle 时长() 

在这里插入图片描述

6.设置种子数

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

可以复现上一次随机动作,设置相同的种子数,可以进行相同的序列,来复现进程,寻找一些问题

在这里插入图片描述在这里插入图片描述

7.设置事件比例

--pct-touch:触摸事件 (  设定点击事件百分比)
--pct-motion :滑动事件(设定动作事件百分比  )
--pct-trackball :轨迹球事件(  设定轨迹球事件百分比 )
--pct-nav :导航事件( 设定基本导航事件百分比,比如输入设备上、下、左、右键 )
--pct-majornav:主要导航事件( 设定主要导航事件百分比,比如中间键、返回键、菜单键 )
--pct-syskeys:系统按键事件( 设定系统导航事件百分比,比如HOME键、BACK建、拨号键及音量键 )
--pct-appswitch:activity之间的切换(  设定启动Activity事件百分比)
--pct-pinchzoom:缩放事件
--pct-rotation:屏幕旋转事件
--pct-flip:键盘事件
--pct-anyevent :任意事件 (设定不常用事件百分比)

如果不设置的话,系统会自动默认设定
在这里插入图片描述
事件超过100%会报错
在这里插入图片描述
可以把事件分配到那几个
在这里插入图片描述

8.忽略异常

--ignore-crashes:忽略崩溃
--ignore-timeouts:忽略超时
--ignore-security-exceptions:忽略安全异常
--kill-process-after-error:发生错误后直接杀掉进程
--dbg-no-events:初始化启动的activity,但是不产生任何事件
--hprof:指定该项后在事件序列发送前后会立即生成分析报告 
--monitor-native-crashes:跟踪本地方法的崩溃问题
--wait-dbg:直到连接了调试器才执行monkey测试
–bugreport:当ANR,系统无响应,Crash的时候获得bugreport

9.保存日志

`
方式一:

 adb shell monkey 1000> 文件路径/文件名

方式二:

adb logcat -v time '*E' > monkey.log


总结

adb基础和进阶内容就到这啦,实战内容待更新

都学到这啦 ,原创不易~~希望你喜欢,可以一键三连支持一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人间凡尔赛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值