ADB的使用-简单命令

article/2025/3/19 4:44:53

今天记录的是 Android Debug Bridge,安卓debug调试桥,它是一款测试/开发人员必不可少的利器。作为一名测试人员,今天主要了解它在测试中简单的应用命令。
ADB是一个C/S架构(默认端口号为:5037),由三部分组成:ADB Client 、ADB Server、ADB Demo,运行过程如下图所示:
在这里插入图片描述

主要应用:

1、连接设备

2、查看设备是否已连接: adb devices

Microsoft Windows [版本 10.0.19042.1052]
(c) Microsoft Corporation。保留所有权利。C:\Users\melot>adb devicesList of devices attached
7fc0e0f2        deviceC:\Users\melot>

当有多台设备连接时:
-d 当前唯一通过 USB 连接的 Android 设备为命令目标
-e 指定当前唯一运行的模拟器为命令目标
-s 指定相应 serialNumber 号的设备/模拟器为命令目标

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

3、查看Android app的log,排查出现的问题:

在发现问题后,打印出带具体时间日期的日志,存放于D盘的log202106231609.txt中
执行命令打开文件,根据出错的时间以及标志性关键字exception、fatal、error等定位出错点

Microsoft Windows [版本 10.0.19042.1052]
(c) Microsoft Corporation。保留所有权利。C:\Users\melot>adb logcat -v threadtime -d >D:\log202106231609.txtC:\Users\melot>start D:\log202106231609.txtC:\Users\melot>

4、测试模拟重启设备

C:\Users\melot>adb rebootC:\Users\melot>

5、测试模拟强制停止应用

C:\Users\melot>adb shell am force-stop com.melot.kkcxliveC:\Users\melot>

6、查看应用详细信息

C:\Users\melot>adb shell dumpsys package com.melot.kkcxlive

7、查看应用的安装路径

C:\Users\melot>adb shell pm path com.melot.kkcxlive
package:/data/app/com.melot.kkcxlive-1/base.apkC:\Users\melot>

8、获取安卓设备的版本信息

C:\Users\melot>adb shell getprop ro.build.version.release
7.1.2C:\Users\melot>

9、使用 Monkey 进行压力测试

C:\Users\melot>adb shell monkey -p com.melot.kkcxlive -v 500

10、安装软件至APP

C:\Users\melot>adb install C:\Users\melot\Downloads\JJYP_v2.0.1_0623_11`42`16_release.apk

11、获取设备id

adb shell settings get secure android_id

12、查看应用列表

adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]

默认 所有应用
-f 显示应用关联的 apk 文件
-d 只显示 disabled 的应用
-e 只显示 enabled 的应用
-s 只显示系统应用
-3 只显示第三方应用
-i 显示应用的 installer
-u 包含已卸载应用
包名包含 字符串

13、清除应用数据和缓存

adb shell pm clear <packagename>

14、复制电脑里的文件到设备

adb push <电脑上的文件路径> <设备里的目录>

15、复制设备里的文件到电脑

adb pull <设备里的文件路径> [电脑上的目录]

16、模拟按键操作

点击屏幕坐标为x = 50 y = 250的地方:

adb shell input tap 50 250

滑动屏幕解锁:

adb shell input swipe 起始x 起始y 终止x 终止y

输入文本:

adb shell input text hello

其它按键操作:

db shell input keyevent 3

3 HOME 键
4 返回键
5 打开拨号应用
6 挂断电话
24 增加音量
25 降低音量
26 电源键
27 拍照(需要在相机应用里)
64 打开浏览器
82 菜单键
85 播放/暂停
86 停止播放
87 播放下一首
88 播放上一首
122 移动光标到行首或列表顶部
123 移动光标到行末或列表底部
126 恢复播放
127 暂停播放
164 静音
176 打开系统设置
187 切换应用
207 打开联系人
208 打开日历
209 打开音乐
210 打开计算器
220 降低屏幕亮度
221 提高屏幕亮度
223 系统休眠
224 点亮屏幕
231 打开语音助手
276 如果没有 wakelock 则让系统休眠

17、查看日志

Android日志的优先级(由高到低):
S-slient (啥也不输出)
F-fatal
E-error
W-waring
I-info
D-debug
V-verbose

按某级别过滤日志,将该级别及以上的日志输出(以下例子会将 Warning、Error、Fatal 和 Silent 日志输出):

adb logcat *:W

按 tag 和级别过滤日志(以下例子表示输出 tag ActivityManager 的 Info 以上级别日志,输出 tag MyApp 的 Debug 以上级别日志,及其它 tag 的 Silent 级别日志(即屏蔽其它 tag 日志)):

adb logcat ActivityManager:I MyApp:D *:S

日志格式:

adb logcat -v <format>

brief 默认格式: <priority>/<tag>(<pid>): <message>
process : <priority>(<pid>) <message>
tag: <priority>/<tag>: <message>
raw: <message>
time: <datetime> <priority>/<tag>(<pid>): <message>
threadtime: <datetime> <pid> <tid> <priority> <tag>: <message>
long: [ <datetime> <pid>:<tid> <priority>/<tag> ] <message>

清空日志:

adb logcat -c

18、查看设备信息

查看手机型号:

adb shell getprop ro.product.model

查看手机电池情况:

adb shell dumpsys battery

屏幕分辨率:

adb shell wm size

查看屏幕密度:

adb shell wm density

查看显示屏参数:

adb shell dumpsys window displays

查看Android-id:

adb shell settings get secure android_id

查看Android系统版本:

adb shell getprop ro.build.version.release

查看设备ip地址:

adb shell ifconfig "| grep Mask"

查看局域网MAC地址:

adb shell cat /sys/class/net/wlan0/address

查看移动网或其它连接信息:

adb shell netcfg

查看cpu信息:

adb shell cat /proc/cpuinfo

查看内存信息:

adb shell cat /proc/meminfo

查看其它硬件与系统属性:
方法一:

adb shell cat /system/build.prop

方法二:

adb shell getprop <属性名>

ro.build.version.sdk SDK 版本
ro.build.version.release Android 系统版本
ro.build.version.security_patch Android 安全补丁程序级别
ro.product.model 型号
ro.product.brand 品牌
ro.product.name 设备名
ro.product.board 处理器型号
ro.product.cpu.abilist CPU 支持的 abi 列表[节注一]
persist.sys.isUsbOtgEnabled 是否支持 OTG
dalvik.vm.heapsize 每个应用程序的内存上限
ro.sf.lcd_density 屏幕密度

19、修改设置

修改分辨率:

adb shell wm size 480x1024

恢复原分辨率:

adb shell wm size reset

修改屏幕密度:

adb shell wm density 160

恢复屏幕密度:

adb shell wm density reset

修改显示区域:

adb shell wm overscan 0,0,0,200

恢复显示区域:

adb shell wm overscan reset

20、屏幕截屏保存到电脑

adb exec-out screencap -p > sc.png

21、录制屏幕(以 mp4 格式保存到 /sdcard)

adb shell screenrecord /sdcard/filename.mp4

Ctrl-C停止录制,默认录制时间和最长录制时间都是 180 秒
导出到电脑:

adb pull /sdcard/filename.mp4

22、查看连接过的wifi密码:

adb shell
su
cat /data/misc/wifi/*.conf

23、设置系统日期和时间:

adb shell
su
date -s 20160823.131500

24、检测设备是否已 root

adb shell
su

25、开启/关闭 WiFi

开启:

adb root
adb shell svc wifi enable

关闭:

adb root
adb shell svc wifi disable

设置wifi优先:

adb shell svc wifi prefer 

26、开启/关闭数据流量

关闭:

svc data disable

开启:

adb shell svc data enable 

优先数据流量,其次wifi:

adb shell svc data prefer

27、刷机相关

重启到Recovery 模式:

adb reboot recovery

从 Recovery 重启到 Android:

adb reboot

重启到 Fastboot 模式:

adb reboot bootloader

28、查看进程

adb shell ps

29、查看实时资源占用情况

adb shell top

PID: 进程 ID
PR: 优先级
CPU%: 当前瞬间占用 CPU 百分比
S: 进程状态(R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
#THR: 线程数
VSS Virtual Set Size: 虚拟耗用内存(包含共享库占用的内存)
RSS Resident Set Size: 实际使用物理内存(包含共享库占用的内存)
PCY: 调度策略优先级,SP_BACKGROUND/SPFOREGROUND
UID: 进程所有者的用户 ID
NAME: 进程名

30、查看进程uid

方法一:

adb shell dumpsys package <packagename> | grep userId=

方法二:通过 ps 命令找到对应进程的 pid

adb shell cat /proc/<pid>/status | grep Uid

31、端口号被占用

1、找到使用该端口的进程Pid

C:\Users\melot>netstat -aon|findstr 5037

2、通过PID找到对应的进程名

C:\Windows\system32>tasklist /fi "PID eq 1中的pid号"

3、使用命令终止该命令的运行

C:\Users\wwx229495>taskkill /pid 1中的pid号 /f

http://chatgpt.dhexx.cn/article/aPWxhqIT.shtml

相关文章

成为一名二进制分析师需要用到的Linux二进制分析工具有哪些?

在本文中&#xff0c;你将学习在Linux操作系统上进行分析所需的基本工具。 除了向你简单展示工具列表&#xff0c;并解释它们的功能以外&#xff0c;我还将使用“夺旗”&#xff08;Capture The Flag&#xff0c;CTF&#xff09;挑战来说明它们的工作原理。在计算机安全与黑客…

java面试大全(7w字,更新中)

1.杂题 1.maven依赖冲突的解决方法 依赖冲突的原因 举个例子&#xff0c;A依赖于B与C&#xff0c;B依赖于D的1.0版本&#xff0c;C依赖于D的2.0版本&#xff0c;这就导致加载的时候到底会引入那个版本的jar包的问题 解决方法: 1.用idea提供的MavenHelper查看是哪个依赖冲突…

Redis入门学习笔记--附Redis工具类

阅读全文大概得花3个小时时间 Redis入门 概述 Redis是什么 Redis&#xff1a;REmote DIctionary Server 是完全开源免费的&#xff0c;用C语言编写的&#xff0c;遵循BSD协议&#xff0c;是一个高性能的&#xff08;Key/Value&#xff09;分布式内存数据库&#xff0c;基于内…

mysql性能分析工具_MySQL性能分析、及调优工具使用详解

本文汇总了MySQL DBA日常工作中用到的些工具&#xff0c;方便初学者&#xff0c;也便于自己查阅。 先介绍下基础设施(CPU、IO、网络等)检查的工具&#xff1a; vmstat、sar(sysstat工具包)、mpstat、oprofile、nicstat、dstat、iotop、tsar、iostat 掌握几个即可&#xff0c;功…

3种方法删除7-Zip压缩包的密码

7-Zip压缩软件是一款完全免费且开源的软件&#xff0c;不仅能压缩和解压7-Zip压缩包&#xff0c;还能给压缩包设置打开密码。 有些小伙伴可能会遇到这样的问题&#xff0c;7-Zip压缩包设置密码后&#xff0c;过了一段时间不需要密码保护了&#xff0c;或者一不小心忘记了密码&…

人大金仓数据库软件下载

作为国产数据库的头部企业&#xff0c;人大金仓的数据库基于开源数据库PostgreSQL开发而成&#xff0c;具有较好的性能及使用体验。这里先来一段人大金仓对自己产品的描述&#xff1a; 人大金仓致力于打造最便捷的国产化替代方案&#xff0c;最可靠、最智能的数据库产品服务&am…

金仓数据库KingbaseES客户端连接问题

关键字&#xff1a; KingbaseES&#xff0c;客户端连接 尽管可能在客户端出现的错误情况范围宽广而且是应用相关的&#xff0c;但的确有几种与服务器的启动方式直接相关。除了下面提到的几种错误之外的问题都应该在相应的客户端应用文档中。 这是常见的"I couldnt find…

金仓数据库KingbaseES的连接方法

关键字&#xff1a; KingbaseES&#xff0c;数据库连接 内容正文&#xff1a; 在访问数据库前&#xff0c;启动数据库服务器后&#xff0c;要先连接我们需要访问的数据库&#xff0c;才能对数据库进行操作&#xff0c;下面我们将对KingBaseES数据库的连接方法进行总结&#…

KingBase数据库【人大金仓数据库】jdbc链接

jdbc链接 首先明确自己的金仓数据库的版本明确自己的驱动demo代码 首先明确自己的金仓数据库的版本 我是2022年2月14号&#xff0c;从官网下载的&#xff1a;8.6的版本。 你们一定要看好自己的版本&#xff0c;因为jdbc的jar是要对应版本的&#xff0c;我当时没注意&#xff0…

人大金仓数据库怎么样?好用吗?

人大金仓总体来看属于数据库第一梯队。 有保障&#xff1a;国产数据库老牌玩家&#xff0c;是最早在国内开展数据库教学、研究与开发的专家在1999年创立的&#xff0c;现在属于央企&#xff0c;KingbaseES是入选国家自主创新产品目录的唯一数据库产品。 口碑和市场&#xff1a;…

DataGrip连接人大金仓数据库(kingbase)详细教程【超详细】

DataGrip连接人大金仓数据库&#xff08;kingbase&#xff09;详细教程【超详细】 第一步&#xff1a;下载DataGrip第二步&#xff1a;添加人大金仓的数据库引擎第三步&#xff1a;输入账号密码连接第四步&#xff1a;查看数据库关于连接其它数据库 第一步&#xff1a;下载Data…

人大金仓数据库迁移工具

人大金仓数据库迁移工具 人大金仓帮助文档: 链接&#xff1a;https://pan.baidu.com/s/1mbp9m5zaxatsq2fhianAYg 提取码&#xff1a;9s13 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦–来自百度网盘超级会员V3的分享 上一篇已经写完如何安装人大金仓数据库&a…

​ 金仓数据库KingbaseES数据库如何启停和重启

关键字 数据库、启动数据库、停止数据库、重启数据库 KingbaseES数据库服务启动 在访问数据库之前&#xff0c;必须启动数据库服务器。可通过命令&#xff1a; ps -ef|grep kingbase 查看数据库服务器当前是否处于启动状态。如下图所示&#xff0c;kingbase进程存在且为正常开启…

国产化人大金仓数据库转库工具:oracle12c数据库转kingbase8.6人大金仓数据库实例演示

oracle12c数据库转人大金仓数据库实例演示 第一章&#xff1a;数据准备① 人大金仓建库建用户② 人大金仓授权表空间③ 人大金仓创建 schema 表第二章&#xff1a;转库演示① 转库工具准备② 创建源库和目的库数据库连接③ 创建迁移任务④ 启动迁移任务⑤ 迁移完成&#xff0c;…

金仓数据库安装教程

安装教程 前期工作环境要求硬件要求 预安装步骤安装包准备预安装准备创建安装用户安装目录数据目录 安装步骤启动安装程序 前期工作 环境要求 安装金仓数据库管理系统 KingbaseES V8R6 &#xff0c;需要 Linux 系统满足以下环境参数&#xff0c;否则安装可能会出现错误。 硬…

人大金仓数据库(kingbase7d)操作入门指南

一直以来&#xff0c;通过在CSDN上搜索、学习相关技术知识&#xff0c;解决了诸多工作中遇到的问题。自己却从未发表贡献过一篇文章&#xff0c;深感内疚。近期&#xff0c;公司由于与金仓公司合作&#xff0c;需要将数据迁移至人大金仓数据库&#xff0c;本人有幸参与此工作&a…

人大金仓数据库的备份与还原 KingbaseES V8R6

人大金仓数据库的备份与还原 文章目录 人大金仓数据库的备份与还原前言备份sys_dump 命令 还原ksql 命令sys_restore 一. 从人大金仓数据库备份还原到人大金仓数据库二 从postgresql数据库备份还原到人大金仓数据库 后记 前言 本文记录一次使用人大金仓数据库&#xff08;King…

kingbase(人大金仓)数据库的常用知识点与简单巡检

KES服务的启停 查看服务是否已设为开机自启 systemctl list-dependencies |grep kingbase 除了使用systemctl和service还可以使用sys_ctl管理KES服务 也可以到安装目录下的Server/bin/目录下执行sys_ctl命令 sys_ctl -D /../data/ start 问题&#xff1a; 人大金仓数据库连接人…

人大金仓KingBase安装手记

一、前言 因为工作需要后续要引入使用人大金仓的数据库&#xff0c;本次先尝试在虚拟机环境完成人大金仓的数据库安装工作&#xff0c;特记录如下。 二、环境准备 &#xff08;一&#xff09;操作系统 1、安装版本 本次选择使用Ubuntu Server 22.04.2 LTS版本&#xff0c;…

金仓数据库KingbaseES数据库概念(五)--数据库实例体系结构

目录 1. 实例结构 2. 进程结构 3. 内存结构 1. 实例结构 KingbaseES 数据库管理系统&#xff0c;由数据库文件和KingbaseES实例组成。 数据库文件 数据库文件为存储用户数据以及元数据的一组磁盘文件。 元数据为描述数据库结构、配置和控制有关的信息。 KingbaseES实例 …