【adb】adb常用命令

Android Debug Bridge (adb)

Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作,例如安装和调试应用。adb 提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:

  • 客户端:用于发送命令。客户端在开发机器上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
  • 守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。
  • 服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。

adb 包含在 Android SDK 平台工具软件包中。
您可以使用 SDK 管理器下载此软件包,该管理器会将其安装在 android_sdk/platform-tools/ 下。

adb常用命令

1. 连接设备

(1) adb连接模拟器:

举例:MuMu模拟器连接adb(下述命令在MuMu官网上搜 ‘连接adb’ 就能找到命令 )

  • windows:
    • 在终端中输入:adb connect 127.0.0.1:7555
    • 再输入:adb shell
  • mac:(本质:重启服务)
    • 在终端中输入adb kill-server 命令;(关闭服务)
    • 再输入adb devices 命令。(查看设备状态)

(2)adb 连接真机(android手机)设备:

  1. 手机端:让手机处于调试模式;
    • 设置 -> 关于手机 ->连续点击版本号7次,显示您已处于开发者模式
    • 设置 -> 开发者选项 -> 打开USB调试
  2. 电脑端安装手机驱动。
    • 可以通过豌豆荚或者手机助手下载驱动,用完删掉即可(可能端口号冲突)

2. 查看设备状态:

adb devices 或者 adb get-state

设备状态种类

  • device 正常
  • offline 连接出现异常,设备无响应
  • unauthorized 未授权

3. adb命令格式

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

参数 含义

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

4. 安装命令 adb install

如果本地只有一个设备,不用加 -s参数

在终端中输入命令:

  • 普通安装:adb install <apk路径>
  • 覆盖安装/替代安装: adb install -r <apk路径>

注意:<apk路径> 要替换为真实的apk路径

5. 卸载命令 adb uninstall

在终端中输入以下命令:

  • 卸载应用 adb uninstall 包名
  • 卸载应用(不删除配置文件,保存数据缓存信息)adb uninstall -k 包名

6. 获取当前的页面名

  1. 打开手机app应用的某个页面
  2. 打开命令行工具,执行命令:adb shell "dumpsys window | grep mCurrentFocus"

7. 获取启动页面的activity

命令:

  • mac: adb logcat ActivityManager:I | grep "cmp"
  • win: adb logcat ActivityManager:I | findstr "cmp"

8. 启动页面

命令:adb shell am start -n <包名>/<activity名>
举例:adb shell am start -n com.dangdang.buy2/.StartupActivity

9. adb shell 应用

Android 是 Linux内核的,别的操作系统可以通过adb shell 这个命令来操控 android系统

  • 查看目录结构:adb shell ls
  • 查看系统当前时间:adb shell date
  • 查看系统CPU使用情况:adb shell cat /proc/cpuinfo
  • 查看系统内存使用情况:adb shell cat /proc/meminfo

也可以直接使用adb shell 进入到android系统的内核中,就可以正常使用linux命令了。

查看应用列表:

  • 显示所有应用:adb shell pm list packages
  • 显示系统自带应用:adb shell pm list packages -s
  • 显示第三方应用:adb shell pm list packages -3

10. 清除应用数据及缓存

adb shell pm clear <包名>

举例:adb shell pm clear com.tencent.mobileqq

获取包名命令:adb shell "dumpsys window | grep mCurrentFocus"

区分 pm 和 am

  • pm ( package manager ), 包管理器;
  • am ( activity manager ),你能使用am去模拟各种系统的行为,例如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等等。

参考链接:
官方文档手册:https://developer.android.com/studio/command-line/adb?hl=zh-cn
adb命令零基础快速入门视频:https://www.bilibili.com/video/BV1Sg411u7GE?p=1&vd_source=936c723d48d92c0a50090991e8b3c956

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/16239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac 终端美化显示

Linux 也可安装 Zsh 后使用此套配置。 1. 安装 Oh My Zsh sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"2. 更换主题&#xff0c;修改文件&#xff1a;~/.zshrc&#xff0c;原内容&#xff1a; ZSH_THEME&quo…

opencv中轮廓相关属性

一、介绍 findContours() &#xff1a;The function retrieves contours from the binary image。 二、代码 void main() {Mat src imread("match00.bmp", IMREAD_GRAYSCALE);Mat mask;threshold(src, mask, 128, 255, cv::THRESH_BINARY_INV);Mat element cv::g…

Matlab实现遗传算法仿真(附上40个仿真源码)

遗传算法&#xff08;Genetic Algorithm&#xff0c;GA&#xff09;是一种基于生物进化理论的优化算法&#xff0c;通过模拟自然界中的遗传过程&#xff0c;来寻找最优解。 在遗传算法中&#xff0c;每个解被称为个体&#xff0c;每个个体由一组基因表示&#xff0c;每个基因是…

介绍下Django中的表单(forms)模块中的类forms.CharField

在Django中&#xff0c;forms.CharField() 是用于定义表单字段的类&#xff0c;它属于 Django 的表单&#xff08;forms&#xff09;模块。CharField 是用于处理字符型数据的表单字段类。它允许用户在表单中输入文本数据&#xff0c;并对该数据进行验证和处理。 forms.CharFie…

6门新兴语言,小众亦强大

编码语言在塑造我们创建软件的方式方面起着至关重要的作用。多年来&#xff0c;我们观察到Python&#xff0c;Java和C等成熟语言的流行。然而&#xff0c;如今一波新的编码语言浪潮已经出现&#xff0c;提出了创造性的解决方案&#xff0c;并推动了软件工程领域所能完成的极限。…

Cesium 实战 - Blender调整模型组件原点,实现直升机尾翼旋转

Cesium 实战 - Blender调整模型组件原点&#xff0c;实现直升机尾翼旋转 1.模型原点问题2.导入模型&#xff08;zhisheng.glb&#xff09;3.导出模型4. 通过 czml 调试代码 某个项目需求&#xff0c;在操作直升机模型的时候&#xff0c;希望直升机机翼和尾翼旋转起来。 机翼旋…

Pytorch参数优化

前言&#xff1a; 当我们训练神经网络时&#xff0c;我们需要调整模型的参数&#xff0c;使得损失函数的值逐渐减小&#xff0c;从而优化模型。但是模型的参数我们一般是无法看见的&#xff0c;所以我们必须学会对参数的更新&#xff0c;下面&#xff0c;我将介绍两种参数更新的…

适配器模式——不兼容结构的协调

1、简介 1.1、概述 有的笔记本电脑的工作电压是20V&#xff0c;而我国的家庭用电是220V&#xff0c;如何让20V的笔记本电脑能够在220V的电压下工作&#xff1f;答案是引入一个电源适配器&#xff08;AC Adapter&#xff09;&#xff0c;俗称充电器&#xff0f;变压器。有了这…

解决Ubuntu 22.04 虚拟机克隆出多台造成的IP地址冲突的问题

在被克隆的机器上编辑 /etc/netplan/00-installer-config.yaml 文件 network:ethernets:enp0s5:dhcp4: truedhcp-identifier: mac #添加次行version: 2这样每次克隆出来的机器都会有唯一的IP地址 简单说明 如果是克隆 centos 会发现不会出现这一情况&#xff0c;而克隆 ubu…

Qt 2. QSerialPortInfo显示串口信息

在ex2.pro 添加&#xff1a; QT serialport//main.cpp #include "ex2.h" #include <QtSerialPort/QtSerialPort> #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Ex2 w;w.show();QList<QSerialPortInfo>…

xrdp登录显示白屏且红色叉

如上图所示&#xff0c;xrdp登录出现了红色叉加白屏&#xff0c;这是因为不正常关闭导致&#xff0c;解决方法其实挺简单的 #进入/usr/tmp cd /usr/tmp #删除对应用户的kdecache-** 文件&#xff08;我这里使用的是kde桌面&#xff09;&#xff0c;例如删除ywj用户对应的文件 …

Django学习记录:初步认识django以及实现了简单的网页登录页面的前后端开发

Django学习记录&#xff1a;初步认识django以及实现了简单的网页登录页面的前后端开发 1、可以先删去template文件夹&#xff0c;并在setting里面删掉这一行 2、在pycharm中创建app&#xff1a; 3、启动app&#xff1a;编写URL与视图函数关系【urls.py】 ​ 编写视图函数【vi…

RabbitMQ 教程 | 第5章 RabbitMQ 管理

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…

设计模式五:建造者模式(Builder Pattern)

建造者模式(Builder Pattern)是一种创建型设计模式&#xff0c;用于通过一系列步骤来构建复杂对象。它将对象的构建过程与其表示分离&#xff0c;从而允许相同的构建过程可以创建不同的表示。 建造者模式中的几个角色&#xff1a; 产品(Product)&#xff1a;表示被构建的复杂…

SpringCloud学习路线(13)——分布式搜索ElasticSeach集群

前言 单机ES做数据存储&#xff0c;必然面临两个问题&#xff1a;海量数据的存储&#xff0c;单点故障。 如何解决这两个问题&#xff1f; 海量数据的存储问题&#xff1a; 将索引库从逻辑上拆分为N个分片&#xff08;shard&#xff09;&#xff0c;存储到多个节点。单点故障…

Golang之路---02 基础语法——流程控制(if-else , switch-case , for-range , defer)

流程控制 条件语句——if-else if 条件 1 {分支 1 } else if 条件 2 {分支 2 } else if 条件 ... {分支 ... } else {分支 else }注&#xff1a; Golang编译器&#xff0c;对于 { 和 } 的位置有严格的要求&#xff0c;它要求 else if &#xff08;或 else&#xff09;和 两边…

Python正则表达式re模块的相关知识积累与博文汇总

正则表达式的内容很多&#xff0c;也很灵活和强大&#xff0c;有必须做下记录&#xff0c;进行汇总。 01-初学Python的re模块的正则表达式的常用方法与常见问题记录 链接1&#xff1a;https://blog.csdn.net/wenhao_ir/article/details/125960370 链接2&#xff1a;https://b…

Mysql 查询统计最近12个月的数据

包括当月: SELECTt1.yf AS month,count( t2.uuid ) AS total FROM(SELECTDATE_FORMAT(( CURDATE()), %Y-%m ) AS yf UNIONSELECTDATE_FORMAT(( CURDATE() - INTERVAL 1 MONTH ), %Y-%m ) AS yf UNIONSELECTDATE_FORMAT(( CURDATE() - INTERVAL 2 MONTH ), %Y-%m ) AS yf UNION…

F5 LTM 知识点和实验 2-负载均衡基础概念

第二章&#xff1a;负载均衡基础概念 目标&#xff1a; 使用网页和TMSH配置virtual servers&#xff0c;pools&#xff0c;monitors&#xff0c;profiles和persistence等。查看统计信息 基础概念&#xff1a; Node一个IP地址。是创建pool池的基础。可以手工创建也可以自动创…

基于canvas画布的实用类Fabric.js的使用

目录 前言 一、Fabric.js简介 二、开始 1、引入Fabric.js 2、在main.js中使用 3、初始化画布 三、方法 四、事件 1、常用事件 2、事件绑定 3、事件解绑 五、canvas常用属性 六、对象属性 1、基本属性 2、扩展属性 七、图层层级操作 八、复制和粘贴 1、复制 2…