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 <电脑上的文件路径> <设备里的文件名>

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

10. 模拟按键

adb shell input keyevent 键值

11. 模拟输入文本

adb shell input text 英文文本

输入文本时只能输入英文文本或是拼音,需要结合确定键或是回车键才能将想要输入的内容填进输入框里。

12. 模拟滑动

adb shell input swipe x1 y1 x2 y2 time


13. 模拟点击

adb shell input tap x y

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

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

相关文章

OpenHarmony实战开发-Worker子线程中解压文件。

介绍 本示例介绍在Worker 子线程使用ohos.zlib 提供的zlib.decompressfile接口对沙箱目录中的压缩文件进行解压操作&#xff0c;解压成功后将解压路径返回主线程&#xff0c;获取解压文件列表。 效果图预览 使用说明 1.点击解压按钮&#xff0c;解压test.zip文件&#xff0c…

Spring底层如何执行?

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Spring底层如何执行refresh()prepareRefresh() 准备刷新的工作initPropertySources() obtainFreshBeanFactory()refreshBeanFactory()AbstractRefreshableApplicati…

【ensp】VLAN间通信的解决办法

目录 VLAN间通信简介 VLAN间通信的两种方式 借助三层设备路由器进行VLAN间的通信&#xff08;也就是单臂路由&#xff09; 在端口上创建子接口之后为什么需要开启arp广播&#xff0c;是因为他是子接口吗? 拓扑图 交换机配置 路由器配置 查看路由器配置 测试能否实现…

Element-Ui的Form表单:Label文本两端对齐,且必填项的*不影响布局

1. HTML 结构 首先&#xff0c;确保你的 HTML 或 Vue 模板中有一个 el-form 组件&#xff0c;类似下面这样&#xff1a; <div id"app"><el-form :model"form" label-width"100px"><el-form-item label"用户名">&l…

基于springboot的医护人员排班系统

随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了医护人员排班系统的开发全过程。通过分析医护人员排班系统管理的不足&#xff0c;创建了一个计算机管理医护人员排班系统的方案。文章介绍了医护人员排班系统的系统分…

更改ip地址的几种方式有哪些

在数字化时代&#xff0c;IP地址作为网络设备的标识&#xff0c;对于我们在网络世界中的活动至关重要。然而&#xff0c;出于多种原因&#xff0c;如保护隐私、访问特定网站或进行网络测试&#xff0c;我们可能需要更改IP地址。虎观代理将详细介绍IP地址的更改方法与步骤&#…

【JavaSE】你真的了解内部类吗?

前言 本篇会详细讲解内部类的四种形式&#xff0c;让你掌握内部类~ 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 前言 内部类介绍 实例内部类 定义 调用 静态内部类 定义 调用 匿名内部类 定义和调用1 调用方法2 …

预分频器×重装载值)/LSI频率 为什么等于总时间

1. 第一种算法理解&#xff1a;分频系数 64 &#xff0c;外部低速时钟40khz&#xff0c; 则一次计数周期1.6ms &#xff0c;计数625个数&#xff0c;则有625个周期 &#xff0c;1.6ms*625 等于1s 如果分频系数是64&#xff0c;外部低速时钟&#xff08;LSI&#xff09;频率是…

gitee和idea集成

1 集成插件 2 配置账号密码 3 直接将项目传到仓库 4直接从gitee下载项目

【CAN】采样点介绍及测试方法

文章目录 1 什么是采样点2 为什么需要采样点3 采样点的计算公式4 VH6501测试原理和方法4.1 VH6501测试采样点原理4.2 VH6501测试方法 >>返回总目录<< 1 什么是采样点 采样点是节点判断信号逻辑电平的位置&#xff0c;是CAN控制器读取总线电平&#xff0c;并解释各…

前端console用法分享

console对于前端人员来讲肯定都不陌生&#xff0c;相信大部分开发者都会使用console来进行调试&#xff0c;但它能做的绝不仅限于调试。 最常见的控制台方法 作为开发者&#xff0c;最常用的 console 方法如下&#xff1a; 控制台打印结果&#xff1a; 今天我分享的是一些 co…

网络爬虫:定义、应用及法律道德考量

网络爬虫技术在当今数据驱动的世界中发挥着重要作用。本文将从网络爬虫的定义和主要功能&#xff0c;其在业界的应用实例&#xff0c;以及涉及的法律和道德问题三个方面进行深入探讨。 1. 爬虫的定义和主要功能 网络爬虫&#xff0c;也称为网页爬虫或蜘蛛&#xff0c;是一种…

【C++对于C语言的扩充】函数重载、引用以及内联函数

文章目录 &#x1f680;前言&#x1f680;函数重载注意&#xff1a;✈️为什么C可以实现函数重载&#xff0c;而C语言却不行呢&#xff1f; &#x1f680;引用✈️引用的特性✈️C中为什么要引入引用✈️引用与指针的区别 &#x1f680;内联函数✈️内联函数特性 &#x1f680;…

【云计算】云数据中心网络(四):IPv6 网关

云数据中心网络&#xff08;四&#xff09;&#xff1a;IPv6 网关 1.什么是 IPv6 网关2.IPv6 网关设计思路3.IPv6 网关的主要应用场景3.1 IPv6 私网通信3.2 IPv6 互联网通信3.3 IPv6 互联网通信&#xff08;仅主动访问&#xff09; 1.什么是 IPv6 网关 2017 年&#xff0c;中国…

【十一】MyBatis Plus 原理分析

MyBatis Plus 原理分析 摘要 Java EE开发中必不可少ORM框架&#xff0c;目前行业里最流行的orm框架非Mybatis莫属了&#xff0c;而Mybatis框架本身没有提供api实现&#xff0c;所以市面上推出了Mybatis plus系列框架&#xff0c;plus版是mybatis增强工具&#xff0c;用于简化My…

JavaWeb前端/后端开发规范——接口文档概述及YApi平台的使用

前言&#xff1a; 整理下笔记&#xff0c;打好基础&#xff0c;daydayup!!! 接口文档 什么是接口文档&#xff1f; 目前主流的开发模式为前后端分离式开发&#xff0c;为了方便前后端的对接&#xff0c;就需要使用接口文件进行统一规范。 接口文档记载什么信息&#xff1f; 1&…

中国科学院大学学位论文LaTeX模版

Word排版太麻烦了&#xff0c;公式也不好敲&#xff0c;推荐用LaTeX模版&#xff0c;全自动 官方模版下载位置&#xff1a;国科大sep系统 → \rightarrow → 培养指导 → \rightarrow → 论文 → \rightarrow → 论文格式检测 → \rightarrow → 撰写模板下载百度云&#…

MongoDB爬虫:(某扑)实战

https://bbs.hupu.com/bxj网页地址: https://bbs.hupu.com/bxj 然后我们在网页上定义帖子名称、帖子链接、创建时间、回复数、最后回复用户...... 除此之外,我们发现虎扑步行街最多显示的页数(20): 、 当我们打开第3页的时候,网页的URL的地址变为了:https://bbs.hupu.…

交通部 JT/T 808(809 1076 1078 )车辆卫星定位系统 通信协议介绍

1 行业标准协议 1.1 官方网站 交通运输标准化信息系统 (mot.gov.cn) 附上官方下载地址&#xff1a; JT/T 808-2019 道路运输车辆卫星定位系统 终端通信协议及数据格式 JT/T 809-2019 道路运输车辆卫星定位系统 平台数据交换 JT/T 1076-2016 道路运输车辆卫星定位系统 车…