ADB常用命令整理(全网最全)
调试Android程序时,我们经常需要使用adb shell命令。adb是Android Debug Bridge的缩写,它充当调试桥梁的作用,就像一条连接开发机和设备之间的桥梁。
通过adb,我们可以在Eclipse中使用DDMS来调试Android程序,简单来说就是一种调试工具。它通过监听特定端口(如TCP 5554)来实现开发机和模拟器/设备之间的通讯。当我们运行Eclipse时,默认情况下会启动adb进程。
adb是一个C/S模式的程序,由三个部分组成:客户端、服务器和守护进程。其中客户端和服务器运行在开发机上,守护进程运行在模拟器或设备上。
通常,adb可执行文件位于/platform-tools/目录下,这是Android SDK的安装目录。为了方便使用,我们可以将adb路径添加到系统环境变量path中,例如:D:\sdk\platform-tools; 这样每次打开命令行工具时都可以直接使用adb命令,而不必进入adb目录。
以下是一些常用的adb命令,可以帮助我们进行调试和测试:
adb devices
:查看当前连接的设备列表adb install [apk文件路径]
:安装一个应用程序adb uninstall [包名]
:卸载一个应用程序adb logcat
:查看设备的日志信息adb shell am start [包名/类名]
:启动一个应用程序adb shell input text [文本]
:模拟输入文本到设备adb shell screencap [文件路径]
:截屏并保存为图片文件adb pull [设备文件路径] [本地文件路径]
:从设备上复制文件到本地计算机adb push [本地文件路径] [设备文件路径]
:将本地文件复制到设备上
更详细的如下表~
命令 | 描述 |
---|---|
android list targets | 显示系统中全部Android平台 |
android list avd | 显示系统中全部AVD(模拟器) |
android create avd –name 名称 –target 平台编号 | 创建AVD(模拟器) |
emulator -avd 名称 -sdcard ~/名称.img (-skin 1280×800) | 启动模拟器 |
android delete avd –name 名称 | 删除AVD(模拟器) |
mksdcard 1024M ~/名称.img | 创建SDCard |
ddms | 启动DDMS |
adb devices | 显示当前运行的全部模拟器 |
adb -s 模拟器编号 命令 | 对某一模拟器执行命令 |
adb install -r 应用程序.apk | 安装应用程序 |
adb pull <remote> <local> | 获取模拟器中的文件 |
adb push <local> <remote> | 向模拟器中写文件 |
adb shell | 进入模拟器的shell模式 |
android | 启动SDK,文档,实例下载管理器 |
adb uninstall apk包的主包名 | 卸载apk包 |
adb help | 查看adb命令帮助信息 |
adb logcat -s 标签名 | 在命令行中查看LOG信息 |
adb remount | 删除系统应用 |
adb shell cd data/app rm apk包 exit | 缷载apk包 |
adb remount | 删除系统应用,重新挂载系统分区,使系统分区重新可写 |
adb shell cd system/app rm *.apk | 删除系统应用 |
adb root | 获取管理员权限 |
adb shell am start -n 包名/包名+类名 (-n 类名,-a action,-d date,-m MIME-TYPE, -c category,-e 扩展数据,等) | 启动Activity |
adb forward tcp:5555 tcp:8000 | 发布端口 |
adb push <source> <destination> | 复制文件到设备或模拟器上 |
adb pull <source> <destination> | 从设备或模拟器上复制文件 |
adb devices | 搜索模拟器/设备的实例 |
adb bugreport | 查看bug报告 |
adb shell logcat -b radio | 记录无线通讯日志 |
adb get-product | 获取设备的ID |
adb get-serialno | 获取设备的序列号 |
adb shell sqlite3 | 访问数据库SQLite3 |
adb shell cd system/sd/data ls | 进入系统内指定文件夹并列出内容 |
adb shell rm -r xxx | 删除名为xxx的文件夹及其内部所有文件 |
adb shell rm xxx | 删除文件xxx |
adb shell rmdir xxx | 删除文件夹xxx |
一、常用简单的adb命令:
命令 | 描述 |
---|---|
adb devices | 获取设备列表和设备的状态 |
adb get-state | 获取设备的状态(device,offline,unknown) |
adb kill-server adb start-server | 结束,启动adb服务 |
adb install -r | 覆盖安装应用(apk) |
adb uninstall | 卸载应用(应用包名) |
adb pull | 将设备上的文件复制到电脑上 |
adb push | 将电脑上的文件复制到设备上 |
adb reboot | 重启设备 |
adb connect | 远程连接设备 |
adb disconnect | 断开设备连接 |
二、adb shell pm基本的命令:
命令 | 描述 |
---|---|
adb shell pm list package -s | 列出系统应用 |
adb shell pm list package -3 | 列出第三方的应用 |
adb shell pm list package -i | 列出来源 |
adb shell pm list package -f | 列出包名和路径 |
adb shell pm path packagename | 列出应用apk的位置 |
adb shell pm dump packagename | 列出应用相关的信息 |
adb shell pm clear packagename | 清除应用的缓存数据 |
adb shell pm install /data/local/tmp/test.apk | 安装应用 |
adb shell pm install -r /data/local/tmp/test.apk | 重新安装应用 |
adb shell pm uninstall -k packagename | 卸载应用(保留缓存数据) |
adb shell pm install -d apk | 允许降级安装 |
三、adb shell am基本的命令:
命令 | 描述 |
---|---|
adb shell am start -n activityname | 启动一个Activity |
adb shell am start -W activityname | 等待页面启动完成 |
adb shell am start -S activityname | 先停止应用再启动 |
am force-stop packagename | 结束应用 |
三、adb shell dumpsys基本的命令:
命令 | 描述 |
---|---|
adb shell dumpsys cpuinfo | 监控CPU信息 |
adb shell dumpsys meminfo | 监控内存信息 |
adb shell dumpsys power | 监控电源信息 |
adb shell dumpsys battery | 监控电池信息 |
adb shell dumpsys wifi | 监控WiFi信息 |
adb shell dumpsys notification | 监控通知信息 |
adb shell dumpsys activity | 获取页面信息 |
四、关闭某项进程,以monkey为例:
命令 | 描述 |
---|---|
ps | grep monkey | 查看monkey进程的pid |
kill pid | 杀死monkey进程 |
五、最近12小时的资源情况:
命令 | 描述 |
---|---|
adb shell dumpsys procstats --hours 12 | 查看最近12小时的资源情况 |
六、录制屏幕命令:
命令 | 描述 |
---|---|
adb shell screenrecord /sdcard/demo.mp4 | 录制屏幕视频 |
--time-limit | 限制录制时间 |
--size | 指定视频分辨率大小 |
--bit-rate | 指定视频的比特率 |
--verbose | 在命令行显示日志 |
七、截图命令:
命令 | 描述 |
---|---|
adb shell screencap -p /sdcard/screen.png | 截取屏幕截图并保存到指定位置 |
八、input命令:
adb shell input:
text
输入文本keyevent
输入事件tap
点击swipe
滑动
九、关于获取当前页面的信息:
命令 | 描述 |
---|---|
adb shell dumpsys activity top | findstr ACTIVITY | 获取当前界面的Activity |
adb shell dumpsys activity | findstr mFocusedActivity | 获取当前页面的activity |
十、生成当前页面的xml文本:
命令 | 描述 |
---|---|
adb shell uiautomator dump [file] | 获取当前页面的XML信息 |
示例XML信息中的属性说明:
text
:控件中显示的文本内容class
:控件的类型package
:包名content-desc
:说明checkable
:是否允许checkchecked
:check状态clickable
:是否允许clickenabled
:控件状态focusable
:是否允许获取焦点focused
:是否获取到焦点scrollable
:是否允许滚动long-clickable
:是否允许长按password
:是否是密码控件selected
:select状态bounds
:控件绘制的长宽及位置四个数据,分成两组,分别是左上坐标和右下坐标
十一、打印页面的log信息:
命令 | 描述 |
---|---|
logcat -s ActivityManager | 打印页面的log信息 |
十二、系统操作指令:
命令 | 描述 |
---|---|
adb shell getprop ro.product.model | 获取设备型号 |
adb shell getprop ro.build.version.release | 获取设备Android系统版本 |
adb get-serialno | 获取设备的序列号(设备号) |
adb shell wm size | 获取设备屏幕分辨率 |
adb shell dumpsys activity | find "mFocusedActivity" | 查看前台应用包名,适用于Android 7.0以下,必须先启动app |
adb shell dumpsys activity | find "mResumedActivity" | 查看前台应用包名,适用于Android 8.0以上,必须先启动app |
九、取日志:
命令 | 描述 |
---|---|
adb logcat -v time | 打印详细的日志信息 |
adb logcat -v time > D:\log.txt | 把日志输出到电脑上的文本文件中 |
adb logcat -c | 清除之前的日志信息 |
十、日志过滤:
-
使用管道进程来查看日志:
adb logcat \| grep MyApp
:过滤包含"MyApp"的日志adb logcat \| grep -i myapp
:忽略大小写,过滤包含"myapp"的日志
-
只抓取某个应用的命令:
adb logcat \| findstr app进程号
:只显示特定应用的日志(在Windows上使用findstr
)
-
日志级别过滤:
- 默认级别为V,输出所有日志最低级别。
- 日志级别包括:D(Debug)、I(Info)、W(Warning)、E(Error)、F(Fatal)和S(Silent,最高级别,不输出任何日志)。
示例:如果想要查看手机上级别为错误的日志,可以使用以下命令:
adb logcat *:E
(不区分大小写)
相关文章:
ADB常用命令整理(全网最全)
调试Android程序时,我们经常需要使用adb shell命令。adb是Android Debug Bridge的缩写,它充当调试桥梁的作用,就像一条连接开发机和设备之间的桥梁。 通过adb,我们可以在Eclipse中使用DDMS来调试Android程序,简单来说…...

BBS项目day02、注册、登录(登录之随机验证码)、退出登录、密码加密加盐、首页(导航条、模态框,修改密码)
一、注册 1.注册之前端页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>注册页面</title><!--动态引入文件-->{% load static %}<script src"{% static js/jquery.min.js %…...

HTML5+CSS3自用笔记
助解:解析编译,加载运行 浏览器的渲染过程 JS加载执行 普通js/sync:阻塞 DOM加载解析 async:下载完就执行,无依赖 <script type"text/javascript" src"x.min.js" async"async"&g…...
无则插入有则更新(PostgreSQL,MySQL,Oracle、SqlServer)
无则插入有则更新 PostgreSQL 无则插入有则更新 conflict(带有唯一性约束的字段),根据此字段判断是更新还是插入 INSERT INTO student(id,name,sex) VALUES(1, 小明, 男) ON conflict (id) DO UPDATE SET id 1,name 小明,sex 男;无则插入有则不做操作 INSERT I…...
常见的 JavaScript 框架比较
以下是10种常见的JavaScript框架的比较: React:是由Facebook开发和维护的开源JavaScript库,用于构建用户界面。它允许你使用组件来构建复杂的UI,并专注于每个组件的内部逻辑,而不必担心管理整个应用程序的状态。WebBu…...
基于R语言APSIM模型进阶应用与参数优化、批量模拟
随着数字农业和智慧农业的发展,基于过程的农业生产系统模型在模拟作物对气候变化的响应与适应、农田管理优化、作物品种和株型筛选、农田固碳和温室气体排放等领域扮演着越来越重要的作用。APSIM (Agricultural Production Systems sIMulator)模型是世界知名的作物生…...
AMD卡启动Stable Diffusion AI绘画的方法
WindowsAMD安装法 1.安装python 3.10.6,在python官网上下载安装程序,***重要*** 在安装的第一个窗口下方勾选“将python添加到path”。 2.安装git 3.WindowsAMD使用AUTOMATIC1111的directml这一个fork,在这个页面的第一段:https:/…...
Ubuntu系统kubeadm安装K8S_v1.25.x容器使用docker(K8S_v1.24版本以后依然使用docker容器管理)
安装所需要的全部文档请点击这里下载 系统是: root@k8s-master:~# cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=22.04 DISTRIB_CODENAME=jammy DISTRIB_DESCRIPTION=“Ubuntu 22.04.3 LTS” root@k8s-master:~# uname -a Linux k8s-master 5.15.0-76-generic #8…...

【MaxKey对接一】对接gitlab的oauth登录
MaxKey的Oauth过程 引导进入 GET http://{{maxKey_host}}/sign/authz/oauth/v20/authorize?client_idYOUR_CLIENT_ID&response_typecode&redirect_uriYOUR_REGISTERED_REDIRECT_URI 登录后回调地址 YOUR_REGISTERED_REDIRECT_URI/?code{{code}} 换取Access Token GET…...
【Buildroot】构建根文件系统等
文章目录 0. 前言10. 环境软件硬件 20. Buildroot 环境搭建简述下载环境搭建toolchain下载、安装构建镜像(仅供参考) 80. 问题点1. 编译、清除时提示权限不足 0. 前言 对嵌入式linux开发和linux开发环境不熟悉的同志们就不要往下看了 对嵌入式linux开发和…...

利用css动画和定时器setTimeout,实现上传图片进度条
思路 利用css动画和js定时器(setTimeout),实现简单的进度条。 优势 不使用 setInterval,减少js代码量,业务代码更加简洁。 示意图 上传中上传成功上传失败 代码 html <!-- img-wrap有两种状态:u…...

关于VScode插件,你不得不知道的几件事
一、前言 VSCode是微软家一个非常轻量化的编辑器,体量虽轻,但是却有异常强大的功能。原因在于VSCode许多强大功能都是基于插件实现的,IDE只提供一个最基本的框架和基本功能,我们需要使用插件来丰富和扩展它的功能。 由于插件的重…...
MySQL 奇遇记三则
公司新项目,要使用 MySQL 数据库。 第一次使用 MySQL,有点小激动。听说过 N 多次,这一次终于用上了。 为什么是奇遇记? 因为在网上几乎搜索不到别人遇到和我一样的问题。 系统 :WINDOWS10X64 中文版 数据库…...

UI设计师的主要职责说明(合集)
UI设计师的主要职责说明1 职责: 1、负责公司移动端、PC端产品相关的交互、UI等设计 2、负责公司宣传册、海报、运营物料、banner等设计 3、负责公司品牌相关的视觉设计 3、制定相关设计规范,提高产品的可用性、不断优化产品体验; 4、与PM、运营紧密…...

SOLIDWORKS 2023中装配体配合的正确使用方法 硕迪科技
-SOLIDWORKS 装配体打开时是由不同的阶段和性能检查组成的。如果在创建装配体时未应用基本的配合方法,问题会随着时间的推移而累积,并且在使用时会出现明显的速度减慢。 如果您的装配体运行速度很慢,则很可能是在创建配合时出现了不良操作的症…...
代码随想录——96.不同的二叉搜索树
class Solution {public int numTrees(int n) {int[] dp new int[n1];dp[0] 1;dp[1] 1;for(int i 2;i < n ; i){for(int j 1; j < i;j){dp[i] dp[j-1]*dp[i-j];}}return dp[n];} }...

智安网络|零信任安全框架:保障数字化时代网络安全的最佳实践
随着数字化时代的快速发展,网络安全问题变得越来越突出。传统的安全防御模式已经不再适用于现代复杂的网络环境中。为了应对日益增长的网络威胁,零信任安全模式应运而生。 一、什么是零信任? 零信任是一种安全框架和哲学,它基于…...

Rancher管理K8S
1 介绍 Rancher是一个开源的企业级多集群Kubernetes管理平台,实现了Kubernetes集群在混合云本地数据中心的集中部署与管理,以确保集群的安全性,加速企业数字化转型。Rancher 1.0版本在2016年就已发布,时至今日,Ranche…...
【Linux】一切皆文件
Linux 下一切皆为文件, 文件包括头文件,库文件(静态库和共享库),可执行文件,目录文件,软链接文件,配置文件等。 每个文件都依据权限分为用户、用户组和其他人三个身份,…...
C++学习笔记4
什么是指针? 指针是存储内存地址的变量。就像int变量用于存储整数值一样,指针变量用于存储内存地址。指针是一种指向内存单元的特殊变量。 内存单元地址通常使用的是16进制表示(0~9和A~F)来表示数字。显示…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...