ADB命令快速入门
什么是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命令快速入门的更多相关文章
- docker命令快速入门
docker快速入门系列 Docker hello world hello world $ docker run ubuntu:15.10 /bin/echo "Hello world&qu ...
- 【MATLAB】常用命令快速入门,国赛加油
矩阵运算 矩阵的基本生成 m1 = 1:5 % 生成行矩阵[1,2,3,4,5] m2 = 1:2:10 % 起点:步长:终点 [1,3,5,7,9] linspace(x1,x2,n) % 生成 n ...
- Git命令行之快速入门
从头开始创建一个版本库,添加一些内容,然后管理一些修订版本. 有两种建立 Git版本库 的基础技术.第一:从头开始创建,用现有的内容填充它.第二:可以克隆一个已有的版本库.这里选择从一个空的版本库开始 ...
- 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)
今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...
- Git快速入门和常用命令
一.快速入门 本地初始化一个项目 首先,你需要执行下面两条命令,作为 git 的基础配置,作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中. git config --global us ...
- Linux快速入门教程-进程管理ipcs命令学习
使用Linux系统必备的技能之一就是Linux进程管理,系统运行的过程正是无数进程在运行的过程.这些进程的运行需要占用系统的内存等资源,做好系统进程的管理,对于我们合理分配.使用系统资源有非常大的意义 ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)]
[易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)] 项目实战 实战2:命令行工具minigrep 我们继续开发我们的minigrep. 我们现 ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)]
[易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)] 项目实战 实战2:命令行工具minigrep 有了昨天的基础,我们今天来开始另一个稍微有点 ...
- git 快速入门及常用命令
身为技术人员,都知道Git是干嘛的.从服务端角度它是代码仓库,可以多人协作.版本控制.高效处理大型或小型项目所有内容:从客户端讲,它能够方便管理本地分支.且与服务端代码的同步,从拉取.合并.提交等等管 ...
- Hello, Android 快速入门
Hello, Android Android 开发与 Xamarin 简介 在这两节指南中,我们将 (使用 Xamarin Studio或 Visual Studio)建立我们的第一个 Xamarin ...
随机推荐
- 【前端必会】webpack的目标代码
背景 webpack生成什么样的代码呢?同的模块依赖的写法(import.export export default),会导致生成代码的不同,下面介绍普通的import与export 开始 导出PI1 ...
- 论文解读(FedGAT)《Federated Graph Attention Network for Rumor Detection》
论文信息 论文标题:Federated Graph Attention Network for Rumor Detection论文作者:Huidong Wang, Chuanzheng Bai, Ji ...
- 二叉树及其三种遍历方式的实现(基于Java)
二叉树概念: 二叉树是每个节点的度均不超过2的有序树,因此二叉树中每个节点的孩子只能是0,1或者2个,并且每个孩子都有左右之分. 位于左边的孩子称为左孩子,位于右边的孩子成为右孩子:以左孩子为根节点的 ...
- 达梦dba_segments指定表名查询到的大小都包含哪些数据
一.结论 dba_segments指定表名查询到的段大小包含索引.约束.表字段数据(包含LOB字段)(1)表(不包含LOB字段)创建默认分配2个簇,1个簇用于存放表结构及字段数据,1个簇用于存放clu ...
- Dytechlab Cup 2022 (A - C)
Dytechlab Cup 2022 (A - C) A - Ela Sorting Books 分析:贪心,将字符串每一位都存在map里,从前往后尽量让每一个\(n / k\)的段\(mex\)值尽 ...
- JS前端防止F12扒取源码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 通过 Github Action 实现定时推送天气预报
偶然间,看到 GitHub Actions 教程:定时发送天气邮件 - 阮一峰的网络日志 这篇文章,没错,这个正好能打发自己的折腾之心,也能通过代码给生活引入一些变化. 还是在这里简单记录一下实现过程 ...
- 一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1.简述Redis事务实现 2.redis集群方案 3.redis主从复制的核心原理 4.CAP理论,BASE理论 5.负 ...
- JavaScript基础&实战(4)js中的对象、函数、全局作用域和局部作用域
文章目录 1.对象的简介 2.对象的基本操作 2.1 代码 2.2 测试结果 3.属性和属性值 3.1 代码 3.2 测试结果 4.对象的方法 4.1 代码 4.2 测试结果 5.对象字面量 5.1 ...
- 学习ASP.NET Core Blazor编程系列八——数据校验
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...