ADB的基本语法及常用命令

学习网址

ADB命令的基本语法如下:

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

如果有多个设备/模拟器连接,则需要为命令指定目标设备。

参数及含义如下:

常用命令如下:

1. 启动ADB服务

adb start-server

2. 停止ADB服务

adb kill-server

3. 指定ADB服务的网络端口

adb -P <port> start-server

默认端口为5037

4. 查询已连接设备/模拟器

adb devices

输出示例:

List of devices attached

cf264b8f    device

emulator-5554    device

10.129.164.6:5555    device

输出格式为 [serialNumber] [state]serialNumber即我们常说的SN,state有如下几种:

offline  表示设备未连接成功或无响应;

device 设备已连接。注意这个状态并不能标识Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到ADB,但启动完毕后系统才处于可操作状态;

no device 没有设备/模拟器连接;

常见异常输出:

1. 没有设备/模拟器连接成功;

List of devices attached

2. 设备/模拟器未连接到ADB或无响应;

List of devices   attached

cf264b8f           offline

5. 无线连接(需要借助USB 线)

除了可以通过USB 连接设备与电脑来使用ADB,也可以通过无线连接,虽然连接过程中也有需要使用USB 的步骤,但是连接成功之后你的设备就可以在一定范围内摆脱USB 连接线的限制了。

操作步骤:

1. 将Android 设备与要运行ADB的电脑连接到同一个局域网,比如连到同一个WiFi;

2. 将设备与电脑通过USB 线连接;

应确保连接成功,可运行adb devices看是否能列出该设备。

3. 让设备在5555 端口监听TCP/IP 连接;

adb tcpip 5555

4. 断开USB 连接;

5. 找到设备的IP 地址;

一般能在 wifi信息找到。

6. 通过IP 地址连接设备;

adb connect <device-ip-address>

这里的<device-ip-address>就是上一步中找到的设备IP地址。

7. 确认连接状态;

adb devices

如果能看到 <device-ip-address>:5555 device 说明连接成功。

如果连接不了,请确认Android设备与电脑是连接到了同一个WiFi,然后再次执行adb connect <device-ip-address>那一步。

如果还是不行的话,通过adb kill-server重新启动adb然后从头再来一次试试。

8. 断开无线连接;

adb disconnect <device-ip-address>

6. 无线连接(无需借助USB 线)

注:需要root 权限

上面是官方文档里介绍的方法,需要借助于USB 数据线来实现无线连接。

既然我们想要实现无线连接,那能不能所有步骤下来都是无线的呢?答案是能的。

1. 在Android 设备上安装一个终端模拟器;

已经安装过的设备可以跳过此步。我使用的终端模拟器下载地址是:[Terminal Emulator for Android Downloads]   

2. 将Android 设备与要运行ADB的电脑连接到同一个局域网,比如连到同一个WiFi;

3. 打开Android 设备上的终端模拟器,在里面依次运行命令;

su

setprop service.adb.tcp.port 5555

4. 找到Android 设备的IP 地址;

一般能在「设置」-「关于手机」-「状态信息」-「IP地址」找到,也可以使用下文里[查看设备信息- IP地址]一节里的方法用adb命令来查看。

5. 在电脑上通过adb 和IP 地址连接Android 设备;

adb connect <device-ip-address>

这里的<device-ip-address>就是上一步中找到的设备IP地址。

如果能看到connected to <device-ip-address>:5555这样的输出则表示连接成功。

有的设备,比如小米5S + MIUI 8.0 + Android 6.0.1 MXB48T,可能在第5 步之前需要重启adbd 服务,在设备的终端模拟器上运行:

restart adbd

如果restart 无效,尝试以下命令:

stop adbd

start adbd

7. 应用管理

7.1. 查看应用列表

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


7.2. 安装APK

adb install [-l -r -t -s -d -g] <path_to_apk>

Success代表安装成功,Failure表示安装失败。

实际是分三步完成:

1. push apk 文件到/data/local/tmp;

2. 调用pm install 安装;

3. 删除 /data/local/tmp 下的对应apk 文件;

所以,必要的时候也可以根据这个步骤,手动分步执行安装过程。


 7.3. 卸载应用

adb uninstall [-k] <packagename>

命令示例:

adb uninstall com.centent.mm

表示卸载微信


7.4. 清除应用数据与缓存

adb shell pm clear <packagename>

<packagename> 表示应用名包,这条命令的效果相当于在设置里的应用信息界面点击了「清除缓存」和「清除数据」。

命令示例:

adb shell pm clear com.qihoo360.mobilesafe

表示清除360 手机卫士的数据和缓存。

7.5. 查看前台Activity

adb shell "dumpsys activity | grep mResumedActivity"

安卓版本不同使用的命令有所差异。

输出示例:

mResumedActivity: ActivityRecord{331d51f u0 com.tencent.mm/.ui.LauncherUI t1769}

其中的 com.tencent.mm/.ui.LauncherUI 就是当前处于前台的Activity。

7.6. 查看正在运行的Services

adb shell dumpsys activity services [<packagename>]

<packagename> 参数不是必须的,指定 <packagename> 表示查看与某个包名相关的Services,不指定表示查看所有Services

<packagename>不一定要给出完整的包名,比如运行adb shell dumpsys activity services org.mazhuang,那么包名org.mazhuang.demo1、org.mazhuang.demo2等相关的Services都会列出来。

7.7. 查看应用详细信息

adb shell dumpsys package <packagename>

<packagename> 表示应用包名。

输出中包含很多信息,包括Activity Resolver Table、Registered ContentProviders、包名、userId、安装后的文件资源代码等路径、版本信息、权限信息和授予状态、签名版本信息等。


7.8. 查看应用安装路径

adb shell pm path <packagename>

输出应用安装路径

输出示例:

package:/data/app/ecarx.weather-1.apk

8. 与应用交互

adb shell am <command>

8.1. 启动应用/调起Activity

adb shell am start -n Activity

8.2. 调起Service

adb shell am startservice -n Service

8.3. 停止Service

adb shell am stopservice [options] <INTENT>

8.4. 强制停止应用

adb shell am force-stop 包名

9. 文件管理

9.1. 复制设备里的文件到电脑

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

9.2. 复制电脑里的文件到设备

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

注意:后边的是设备上的文件名
 

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

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

相关文章

麦多馅饼开店流程及费用明细?

麦多馅饼作为一种深受人们喜爱的美食&#xff0c;在市场上拥有广泛的消费群体。近年来&#xff0c;越来越多的创业者将目光投向了麦多馅饼这一领域&#xff0c;希望通过加盟或自主经营的方式开设一家麦多馅饼店。本文将详细介绍麦多馅饼的开店流程以及相关的费用明细&#xff0…

单细胞RNA测序(scRNA-seq)cellranger count的细胞定量和aggr整合

单细胞RNA测序(scRNA-seq)基础知识可查看以下文章: 单细胞RNA测序(scRNA-seq)工作流程入门 单细胞RNA测序(scRNA-seq)细胞分离与扩增 单细胞RNA测序(scRNA-seq)SRA数据下载及fastq-dumq数据拆分 单细胞RNA测序(scRNA-seq)Cellranger流程入门和数据质控 细胞定量…

数据库(mysql)-连接嵌套查询-2

子查询 MySQL中的子查询&#xff08;Subquery&#xff09;是嵌套在其他SQL查询中的查询。子查询可以出现在SELECT、FROM或WHERE子句中&#xff0c;并用于返回将被用于外部查询的数据。子查询的结果可以是一个单一的值、一行、一列或多行多列的数据集。 单行单列查询 实例 #查…

弱口令入侵FE企业管理平台【附口令】

漏洞描述 飞企互联-FE企业运营管理平台 druid路径弱口令&#xff0c;攻击者可能通过尝试弱口令&#xff0c;非法进入系统&#xff0c;恶意操作或者收集信息进一步攻击利用。 漏洞复现 1、Fofa app"飞企互联-FE企业运营管理平台"2、零零信安 (html_banner360浏览…

基于ssm作业提交与查收系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本作业提交与查收系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信…

1.Spring的核心思想 —— IOC和DI

1. Spring是什么&#xff1f; 简单的说&#xff0c;Spring其实指的是Spring Framework&#xff08;Spring框架&#xff09;&#xff0c;是一个开源框架。 如果要用一句话概括&#xff1a;它是包含众多工具方法的IOC&#xff08;Inverse of Control控制反转&#xff09;容器。…

字节码文件的组成

字节码文件的组成 字节码文件的组成1 以正确的姿势打开文件2 字节码文件的组成2.1 基本信息2.2 常量池2.3 字段2.4 方法2.5 属性 3 字节码常用工具3.1 javap3.2 jclasslib插件3.3 Arthas 4 字节码常见指令 字节码文件的组成 1 以正确的姿势打开文件 字节码文件中保存了源代码…

RPA实战演练UiBot6.0新食堂一楼问卷星(类似于之前的网页表单提交)

要使用RPA&#xff08;Robotic Process Automation&#xff0c;机器人流程自动化&#xff09;帮助新食堂进行调查问卷&#xff0c;我们可以结合UiBot 6.0来实施具体的计划。以下是一个大致的实战演练计划&#xff1a; 一、目标与需求分析 明确调查目标&#xff1a;了解新食堂…

jdk17 你还想用ScriptEngineManager来执行js代码?

今天要用java来执行配置表的js代码&#xff0c;用 ScriptEngine javaScriptEngine new ScriptEngineManager().getEngineByName(“javascript”); 一直抛异常&#xff1a;Cannot invoke “javax.script.ScriptEngine.eval(String)” because “javaScriptEngine” is null 网上…

5.Hexo为页面标记标签和类别

Hexo的标签和类别基本上是可以在Hexo中将内容分组的两种方式 如果在网站上有一堆内容&#xff0c;有不同的博客文章 将博客文章分类为不同的类别会很有帮助 用特定的关键词为博客文章标记 如果可以同时分类和标记页面&#xff0c;会使网站用户更轻松地找到他们想要的页面类型 …

文章分享:《二代测序临床报告解读指引》

&#xff3b;摘要&#xff3d; 二代测序&#xff08;next generation sequencing&#xff0c;NGS&#xff09;已成为中国临床肿瘤医生常用检测工具&#xff0c;而中国超 90%临床医生需要 NGS 报告解读支持。因此&#xff0c;为提升临床医生 NGS 报告解读能力&#xff0c;特编写…

Traefik的EntryPoints是什么?

在探索 Traefik —— 这款极受欢迎的现代反向代理和负载均衡器时&#xff0c;理解其核心组件是非常重要的。其中&#xff0c;EntryPoints 是 Traefik 中一个关键概念&#xff0c;它直接关系到如何接收和处理进入的网络流量。&#x1f511;&#x1f6a6; 1. Traefik 的 EntryPo…