什么是ADB

adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以方便调试Android程序。

环境搭建

1需要java环境:

  安装完JDK需要配置环境变量:

    JAVA_HOME::JDK的安装目录

    PATH:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

    CMD命令验证环境是否配置完成:java -version

2需要安卓JDK

https://developer.android.google.cn/studio/releases/platform-tools

CMD命令验证环境是否配置完成:android -version

ADB命令

如何链接手机设备

1模拟机
  Adb connect 127.0.0.1:7555 这个可以通过模拟器官网查询 不同模拟器不同端口
  Adb devices
2真机
  手机处于调试模式:安卓 找到版本 点击7下 就会进入开发者模式 打开usb调试
  电脑需要安装手机驱动:豌豆荚自动下载驱动(用完就删,容易占用端口)
查看状态
  adb devices :device正常 offline链接无响应 unauthorized未授权
  adb get-state

关闭服务
  Adb kill-server

安装
  Adb install <apk路劲>
  Adb install -r  <apk路劲> 覆盖安装

  指定设备:Adb -s <指定设备 可以通过adb devices查看 当有多台设备>install <apk路劲>

卸载

  Adb uninstall

查看包和活动页

注:操作系统不一样命令需要区分,mac、linux用grep,Windows用findstr

查看当前活动页

1 先打开页面

2 adb shell “dumpsys window | grep mCurrentFocus”

查看启动页

adb logcat ActivityManager:I | grep “cmp”

快速启动

adb shell am start -n [包名 / 页面名]

查看性能数据

查看当前系统 CPU 使用情况 : adb shell dumpsys cpuinfo 是某一时间之内的占有情况

查看当前系统的内存 : adb shell dumpsys meminfo 通过这个情况查看当前应用内存占用率。可以分析 物理内存、虚拟内存的占用量。
查看某个应用的内存 : adb shell dumpsys meminfo 应用名。 通过定期采集数据 来分析代码当中是否会有内存问题 例如内存泄漏 ( 内存长期占有量较高,没有及时回收 )
进程:

top 命令 : linux 使用 top 命令来获取性能指标的 ,安卓也可用
adb shell top 来获取各个系统进程占有情况(实时)
过滤 某个包的性能指标 : adb shell top | grep 包名
固定时间 每隔 1 s : adb shell top -d 1 | grep 包名

日志

打印默认日志数据 : adb logcat

使用不同颜色来打印每个优先级 : adb logcat -v color
将日志输出到文件中 : adb logcat -f <文件地址 手机端的> 可以通过 pull 上传到电脑查看.
保存日志到电脑文件上 : adb logcat > ~/Downloads/android.log. > 表示重定向
清理已缓存的日志 : adb logcat -c

文件传输

电脑到手机上传输(电脑往外推) :adb push 电脑路径 设备路径

手机文件拉取下来 :adb pull 设备路径 电脑路径

monkey压力测试

运行某个包(对某软件测试) : adb shell monkey -p 包名 事件数

打印详细日志 : adb shell monkey -v 事件数。 -vv 更加详细的日志 -vvv 最全面的日志

运行多个包 : adb shell monkey -p 包名 -p 包名 … - vvv 事件数

-s ,用于指定伪随机数生成器的seed值  
  命令:adb shell monkey -p 包名 –s seed值 执行次数

  如果seed值相同,则两次Monkey测试所产生的事件序列也相同的,示例:
  测试1:adb shell monkey -p com.kugou.android –s 1540475754297 100

--throttle ,用于指定用户事件的操作间隔时延,单位是毫秒

如果不指定这个参数,monkey会尽可能快的生成和发送消息

命令:adb shell monkey -p 包名 --throttle 3000 100

11种事件

设置事件比例 :会默认分配 ,但是 比如想测试点击事件较多,就可以设置点击比例大一点 --pct-touch 80 不超100%

忽略异常 : monkey就是想长时间运行, 可以在有异常的时候继续执行,如果遇到异常就可以保存到日志中

保存日志 :

  法一 : adb shell monkey 100 后面加 > 文件名字.log。查看: cat 文件名.log 有大量无用日志,占用空间
  法二 : adb logcat -v time ‘*:E’ > monkey.log 获取 error 级别日志

ADB命令快速入门的更多相关文章

  1. docker命令快速入门

    docker快速入门系列 Docker hello world hello world $ docker run ubuntu:15.10 /bin/echo "Hello world&qu ...

  2. 【MATLAB】常用命令快速入门,国赛加油

    矩阵运算 矩阵的基本生成 m1 = 1:5 % 生成行矩阵[1,2,3,4,5] m2 = 1:2:10 % 起点:步长:终点 [1,3,5,7,9] linspace(x1,x2,n) % 生成 n ...

  3. Git命令行之快速入门

    从头开始创建一个版本库,添加一些内容,然后管理一些修订版本. 有两种建立 Git版本库 的基础技术.第一:从头开始创建,用现有的内容填充它.第二:可以克隆一个已有的版本库.这里选择从一个空的版本库开始 ...

  4. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  5. Git快速入门和常用命令

    一.快速入门 本地初始化一个项目 首先,你需要执行下面两条命令,作为 git 的基础配置,作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中. git config --global us ...

  6. Linux快速入门教程-进程管理ipcs命令学习

    使用Linux系统必备的技能之一就是Linux进程管理,系统运行的过程正是无数进程在运行的过程.这些进程的运行需要占用系统的内存等资源,做好系统进程的管理,对于我们合理分配.使用系统资源有非常大的意义 ...

  7. [易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)]

    [易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)] 项目实战 实战2:命令行工具minigrep 我们继续开发我们的minigrep. 我们现 ...

  8. [易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)]

    [易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)] 项目实战 实战2:命令行工具minigrep 有了昨天的基础,我们今天来开始另一个稍微有点 ...

  9. git 快速入门及常用命令

    身为技术人员,都知道Git是干嘛的.从服务端角度它是代码仓库,可以多人协作.版本控制.高效处理大型或小型项目所有内容:从客户端讲,它能够方便管理本地分支.且与服务端代码的同步,从拉取.合并.提交等等管 ...

  10. Hello, Android 快速入门

    Hello, Android Android 开发与 Xamarin 简介 在这两节指南中,我们将 (使用 Xamarin Studio或 Visual Studio)建立我们的第一个 Xamarin ...

随机推荐

  1. 计算机三大硬件和操作系统以及python解释器

    今日分享内容概要 计算机五大组成部分详解 计算机三大核心硬件 操作系统 编程与编程语言 编程语言的发展历史 编程语言的分类 python解释器 python解释器多版本共存 分享详细 计算机五大组成部 ...

  2. SpringBoot课程学习(三)

    一.YAML格式的基本语法 (1)格式: 大小写敏感 数据值前边必须有空格,作为分隔符 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格(各个系统 Tab对应的 空格数目可能不同,导致层 ...

  3. 关于多个 Kubernetes 集群指标的采集操作

    简介 在使用观测云期间,有时需要针对一个工作空间接入多个 Kubernetes 集群指标,通过观测云提供的全局 Tag 的方式来进行区分,大大提高了效率.下面是我总结的操作步骤. 当集群中只有一个采集 ...

  4. Java注解(2):实现自己的ORM

    搞过Java的码农都知道,在J2EE开发中一个(确切地说,应该是一类)很重要的框架,那就是ORM(Object Relational Mapping,对象关系映射).它把Java中的类和数据库中的表关 ...

  5. echarts的使用 超好用的报表制作、数据的图形化展示

    地址链接:https://echarts.apache.org/zh/index.html 1.图形选择 2.对应的js代码

  6. NLP之基于Bi-LSTM和注意力机制的文本情感分类

    Bi-LSTM(Attention) @ 目录 Bi-LSTM(Attention) 1.理论 1.1 文本分类和预测(翻译) 1.2 注意力模型 1.2.1 Attention模型 1.2.2 Bi ...

  7. NLP之Bi-LSTM(在长句中预测下一个单词)

    Bi-LSTM @ 目录 Bi-LSTM 1.理论 1.1 基本模型 1.2 Bi-LSTM的特点 2.实验 2.1 实验步骤 2.2 实验模型 1.理论 1.1 基本模型 Bi-LSTM模型分为2个 ...

  8. windows下cmd补全键注册表修改

      1:使用win+r打开 运行 控制台 2:输入 regedit 打开注册表 3:进入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\ ...

  9. SQL中的Convert()函数方法(转换数据格式)

    Convert函数的使用方法 格式: convert(data_type(length),data_to_be_converted,style) data_type(length)转换的目标数据类型, ...

  10. 鹅长微服务发现与治理巨作PolarisMesh实践-上

    @ 目录 概述 定义 核心功能 组件和生态 特色亮点 解决哪些问题 官方性能数据 架构原理 资源模型 服务治理 基本原理 服务注册 服务发现 安装 部署架构 集群安装 SpringCloud应用接入 ...