当前位置: 首页 > news >正文

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:是否允许check
  • checked:check状态
  • clickable:是否允许click
  • enabled:控件状态
  • 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清除之前的日志信息

十、日志过滤:

  1. 使用管道进程来查看日志:

    • adb logcat \| grep MyApp:过滤包含"MyApp"的日志
    • adb logcat \| grep -i myapp:忽略大小写,过滤包含"myapp"的日志
  2. 只抓取某个应用的命令:

    • adb logcat \| findstr app进程号:只显示特定应用的日志(在Windows上使用findstr
  3. 日志级别过滤:

    • 默认级别为V,输出所有日志最低级别。
    • 日志级别包括:D(Debug)、I(Info)、W(Warning)、E(Error)、F(Fatal)和S(Silent,最高级别,不输出任何日志)。

示例:如果想要查看手机上级别为错误的日志,可以使用以下命令:

  • adb logcat *:E(不区分大小写)

相关文章:

ADB常用命令整理(全网最全)

调试Android程序时&#xff0c;我们经常需要使用adb shell命令。adb是Android Debug Bridge的缩写&#xff0c;它充当调试桥梁的作用&#xff0c;就像一条连接开发机和设备之间的桥梁。 通过adb&#xff0c;我们可以在Eclipse中使用DDMS来调试Android程序&#xff0c;简单来说…...

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自用笔记

助解&#xff1a;解析编译&#xff0c;加载运行 浏览器的渲染过程 JS加载执行 普通js/sync&#xff1a;阻塞 DOM加载解析 async&#xff1a;下载完就执行&#xff0c;无依赖 <script type"text/javascript" src"x.min.js" async"async"&g…...

无则插入有则更新(PostgreSQL,MySQL,Oracle、SqlServer)

无则插入有则更新 PostgreSQL 无则插入有则更新 conflict(带有唯一性约束的字段)&#xff0c;根据此字段判断是更新还是插入 INSERT INTO student(id,name,sex) VALUES(1, 小明, 男) ON conflict (id) DO UPDATE SET id 1,name 小明,sex 男;无则插入有则不做操作 INSERT I…...

常见的 JavaScript 框架比较

以下是10种常见的JavaScript框架的比较&#xff1a; React&#xff1a;是由Facebook开发和维护的开源JavaScript库&#xff0c;用于构建用户界面。它允许你使用组件来构建复杂的UI&#xff0c;并专注于每个组件的内部逻辑&#xff0c;而不必担心管理整个应用程序的状态。WebBu…...

基于R语言APSIM模型进阶应用与参数优化、批量模拟

随着数字农业和智慧农业的发展&#xff0c;基于过程的农业生产系统模型在模拟作物对气候变化的响应与适应、农田管理优化、作物品种和株型筛选、农田固碳和温室气体排放等领域扮演着越来越重要的作用。APSIM (Agricultural Production Systems sIMulator)模型是世界知名的作物生…...

AMD卡启动Stable Diffusion AI绘画的方法

WindowsAMD安装法 1.安装python 3.10.6&#xff0c;在python官网上下载安装程序&#xff0c;***重要*** 在安装的第一个窗口下方勾选“将python添加到path”。 2.安装git 3.WindowsAMD使用AUTOMATIC1111的directml这一个fork&#xff0c;在这个页面的第一段&#xff1a;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下载、安装构建镜像&#xff08;仅供参考&#xff09; 80. 问题点1. 编译、清除时提示权限不足 0. 前言 对嵌入式linux开发和linux开发环境不熟悉的同志们就不要往下看了 对嵌入式linux开发和…...

利用css动画和定时器setTimeout,实现上传图片进度条

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

关于VScode插件,你不得不知道的几件事

一、前言 VSCode是微软家一个非常轻量化的编辑器&#xff0c;体量虽轻&#xff0c;但是却有异常强大的功能。原因在于VSCode许多强大功能都是基于插件实现的&#xff0c;IDE只提供一个最基本的框架和基本功能&#xff0c;我们需要使用插件来丰富和扩展它的功能。 由于插件的重…...

MySQL 奇遇记三则

公司新项目&#xff0c;要使用 MySQL 数据库。 第一次使用 MySQL&#xff0c;有点小激动。听说过 N 多次&#xff0c;这一次终于用上了。 为什么是奇遇记&#xff1f; 因为在网上几乎搜索不到别人遇到和我一样的问题。 系统 &#xff1a;WINDOWS10X64 中文版 数据库&#xf…...

UI设计师的主要职责说明(合集)

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

SOLIDWORKS 2023中装配体配合的正确使用方法 硕迪科技

-SOLIDWORKS 装配体打开时是由不同的阶段和性能检查组成的。如果在创建装配体时未应用基本的配合方法&#xff0c;问题会随着时间的推移而累积&#xff0c;并且在使用时会出现明显的速度减慢。 如果您的装配体运行速度很慢&#xff0c;则很可能是在创建配合时出现了不良操作的症…...

代码随想录——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];} }...

智安网络|零信任安全框架:保障数字化时代网络安全的最佳实践

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

Rancher管理K8S

1 介绍 Rancher是一个开源的企业级多集群Kubernetes管理平台&#xff0c;实现了Kubernetes集群在混合云本地数据中心的集中部署与管理&#xff0c;以确保集群的安全性&#xff0c;加速企业数字化转型。Rancher 1.0版本在2016年就已发布&#xff0c;时至今日&#xff0c;Ranche…...

【Linux】一切皆文件

Linux 下一切皆为文件&#xff0c; 文件包括头文件&#xff0c;库文件&#xff08;静态库和共享库&#xff09;&#xff0c;可执行文件&#xff0c;目录文件&#xff0c;软链接文件&#xff0c;配置文件等。 每个文件都依据权限分为用户、用户组和其他人三个身份&#xff0c;…...

C++学习笔记4

什么是指针&#xff1f; 指针是存储内存地址的变量。就像int变量用于存储整数值一样&#xff0c;指针变量用于存储内存地址。指针是一种指向内存单元的特殊变量。 内存单元地址通常使用的是16进制表示&#xff08;0&#xff5e;9和A&#xff5e;F&#xff09;来表示数字。显示…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...