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

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

相关文章:

ADB的基本语法及常用命令

学习网址 ADB命令的基本语法如下&#xff1a; adb [-d|-e|-s <serialNumber>] <command> 如果有多个设备/模拟器连接&#xff0c;则需要为命令指定目标设备。 参数及含义如下&#xff1a; 常用命令如下&#xff1a; 1. 启动ADB服务 adb start-server 2. 停止…...

Linux之bpfjit(2)使用分析和mini-tcpdump实现

Linux之bpfjit(2)使用分析和mini-tcpdump实现 Author: Once Day Date: 2024年4月13日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可以参考专栏&#xff1a;…...

adb常用命令汇总

Android Debug Bridge (adb) 是一个多功能命令行工具&#xff0c;它允许你与连接的Android设备或在电脑上的Android模拟器进行通信。下面列出了一些常用的adb命令&#xff1a; 启动adb服务&#xff1a; adb start-server停止adb服务&#xff1a; adb kill-server查看已连接的设…...

JVM虚拟机(三)垃圾回收简介、垃圾回收算法、分代回收、垃圾回收器种类、G1垃圾回收器

目录 一、什么是垃圾回收&#xff1f;1.1 什么是垃圾回收&#xff1f;1.2 什么对象能被垃圾回收&#xff1f;1&#xff09;引用计数法2&#xff09;可达性分析算法 二、JVM 垃圾回收算法2.1 标记清除算法2.2 标记整理算法&#xff08;标记压缩算法&#xff09;2.3 复制算法2.4 …...

JavaScript基础:js介绍、变量、数据类型以及类型转换

目录 介绍 引入方式 内部方式 外部形式 注释和结束符 单行注释 多行注释 结束符 输入和输出 输出 输入 变量 声明 赋值 关键字 变量名命名规则 常量 数据类型 数值类型 字符串类型 布尔类型 undefined 类型转换 隐式转换 显式转换 Number ✨介绍 &a…...

【牛客SQL快速入门】SQL基础(三)

一、条件函数 IF 条件函数 IF函数是最常用到的条件函数&#xff0c;写法为 if(xn,a,b)&#xff0c;xn代表判断条件&#xff0c;如果xn时&#xff0c;那么结果返回a&#xff0c;否则返回b。 -- 把非北京大学的用户统一归为其他大学 Select device_id,if(university ‘北京大…...

Pytorch手撸Attention

Pytorch手撸Attention 注释写的很详细了&#xff0c;对照着公式比较下更好理解&#xff0c;可以参考一下知乎的文章 注意力机制 import torch import torch.nn as nn import torch.nn.functional as Fclass SelfAttention(nn.Module):def __init__(self, embed_size):super(S…...

PyCharm 2024.1 发布:全面升级,助力高效编程!

PyCharm 2024.1 发布&#xff1a;全面升级&#xff0c;助力高效编程&#xff01; 文章目录 PyCharm 2024.1 发布&#xff1a;全面升级&#xff0c;助力高效编程&#xff01;摘要引言 Hugging Face&#xff1a;模型和数据集的快速文档预览针对 JavaScript 和 TypeScript 的全行代…...

Nginx基础(06)

Nginx基础&#xff08;05&#xff09; uWSGI 介绍 uWSGI 是一个 Web服务器 主要用途是将Web应用程序部署到生产环境中 可以用来连接Nginx服务与Python动态网站 1. 用 uWSGI 部署 Python 网站项目 配置 Nginx 使其可以将动态访问转交给 uWSGI 安装 python 工具及依赖 安…...

【Qt 学习笔记】QWidget的windowOpacity属性 | cursor属性 | font属性

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ QWidget的windowOpacity属性 | cursor属性 | font属性 文章编号&#…...

Python爬虫:requests模块的基本使用

学习目标&#xff1a; 了解 requests模块的介绍掌握 requests的基本使用掌握 response常见的属性掌握 requests.text和content的区别掌握 解决网页的解码问题掌握 requests模块发送带headers的请求掌握 requests模块发送带参数的get请求 1 为什么要重点学习requests模块&…...

C++traits

traits C的标准库提供了<type_traits>,它定义了一些编译时基于模板类的接口用于查询、修改类型的特征&#xff1a;输入的时类型&#xff0c;输出与该类型相关的属性 通过type_traits技术编译器可以回答一系列问题&#xff1a;它是否为数值类型&#xff1f;是否为函数对象…...

gitee和idea集成

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

阿维·威格德森(Avi Wigderson)研究成果对人工智能领域的应用有哪些影响

AI人工智能的影响 威格德森&#xff08;Avi Wigderson&#xff09;的研究成果对人工智能领域的应用产生了深远的影响。 首先&#xff0c;威格德森在计算复杂性理论、算法和优化方面的贡献为人工智能领域提供了高效、准确的计算模型和算法。他的研究帮助我们更好地理解计算问题…...

【免费领取源码】可直接复用的医院管理系统!

今天给大家分享一套基于SpringbootVue的医院管理系统源码&#xff0c;在实际项目中可以直接复用。(免费提供&#xff0c;文中自取) 系统运行图&#xff08;设计报告和接口文档&#xff09; 1、后台管理页面 2、排班管理页面 3、设计报告包含接口文档 源码免费领取方式 后台私信…...

leetcode代码记录(全排列 II

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回所有不重复的全排列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,2] 输出&#xff1a; [[1,1,2], [1,2,1], [2,1…...

【数据结构与算法】之双向链表及其实现!

​ 个人主页&#xff1a;秋风起&#xff0c;再归来~ 数据结构与算法 个人格言&#xff1a;悟已往之不谏&#xff0c;知来者犹可追 克心守己&#xff0c;律己则安&#xff01; 目录 1、双向链表的结构及概念 2、双向链表的实现 2.1 要实现的接口…...

记一次奇妙的某个edu渗透测试

前话&#xff1a; 对登录方法的轻视造成一系列的漏洞出现&#xff0c;对接口确实鉴权造成大量的信息泄露。从小程序到web端网址的奇妙的测试就此开始。&#xff08;文章厚码&#xff0c;请见谅&#xff09; 1. 寻找到目标站点的小程序 进入登录发现只需要姓名加学工号就能成功…...

设计模式学习笔记 - 设计模式与范式 -总结:1.回顾23中设计模式的原理、背后的思想、应用场景等

1.创建型设计模式 创建型设计模式包括&#xff1a;单例模式、工厂模式、建造者模式、原型模式。它主要解决对象的创建问题&#xff0c;封装复杂的创建过程&#xff0c;解耦对象的创建代码和使用代码。 1.单例模式 单例模式用来创建全局唯一的对象。一个类只允许创建一个对象…...

22 文件系统

了解了被打开的文件&#xff0c;肯定还有没被打开的文件&#xff0c;就是磁盘上的文件。先从磁盘开始认识 磁盘 概念 内存是掉电易失存储介质&#xff0c;磁盘是永久性存储介质 磁盘的种类有SSD&#xff0c;U盘&#xff0c;flash卡&#xff0c;光盘&#xff0c;磁带。磁盘是…...

w3x2lni:魔兽地图跨版本转换的技术架构与实战指南

w3x2lni&#xff1a;魔兽地图跨版本转换的技术架构与实战指南 【免费下载链接】w3x2lni 魔兽地图格式转换工具 项目地址: https://gitcode.com/gh_mirrors/w3/w3x2lni 一、价值定位&#xff1a;破解魔兽地图版本兼容难题 魔兽争霸III地图开发者长期面临版本碎片化挑战&…...

突破Windows多显示器显示壁垒:SetDPI重新定义显示体验

突破Windows多显示器显示壁垒&#xff1a;SetDPI重新定义显示体验 【免费下载链接】SetDPI 项目地址: https://gitcode.com/gh_mirrors/se/SetDPI 在当今多设备协同工作的时代&#xff0c;显示器已成为我们与数字世界交互的重要窗口。然而&#xff0c;当程序员小李将笔…...

MinerU本地部署安全吗?数据隐私保护实战配置

MinerU本地部署安全吗&#xff1f;数据隐私保护实战配置 1. 引言&#xff1a;当AI遇见你的敏感文档 想象一下这个场景&#xff1a;你有一份包含商业机密的合同PDF&#xff0c;或者一份涉及个人隐私的医疗报告扫描件。你想用AI快速提取里面的关键信息&#xff0c;但又担心把文…...

360CDN 全系列产品体验:CDN / 高防 / SDK 游戏盾横向测评

作为深耕互联网技术领域多年的开发者&#xff0c;平时无论是个人项目还是公司业务&#xff0c;都经常需要用到CDN加速、网络防护类产品。近期正好完整上手测试了360CDN全系列核心产品&#xff0c;涵盖基础CDN加速、高防CDN、SDK游戏盾三款&#xff0c;全程以真实业务场景为测试…...

服务器频繁报soft lockup?手把手教你排查高负载进程与内核死锁问题

服务器频繁报soft lockup&#xff1f;手把手教你排查高负载进程与内核死锁问题 最近在运维工作中&#xff0c;你是否遇到过服务器突然弹出"kernel:NMI watchdog: BUG: soft lockup - CPU#X stuck for XXs!"这样的警告信息&#xff1f;这种内核软死锁问题看似不会立即…...

PlatformIO脚本进阶:告别修改库文件,用Python脚本精准控制FreeRTOS heap文件编译

PlatformIO脚本进阶&#xff1a;精准控制FreeRTOS堆管理文件编译的工程实践 在嵌入式开发中&#xff0c;第三方库的管理一直是个令人头疼的问题。特别是像FreeRTOS这样的实时操作系统&#xff0c;其源代码结构往往包含多个可选组件&#xff0c;开发者需要根据具体硬件和需求选择…...

HCIA复习作业

一、 实验拓扑二、 实验需求1.学校内HTTP客户端可以正常通过域名www.baidu.com访问百度的服务器 2.学校网络内部基于192.168.1.0/24划分&#xff0c;PC1可以访问3.3.3.0/24网段&#xff0c;PC2不允许 3.学校内部使用静态路由&#xff0c;R1和R2之间浮动静态路由 4.运营商使用动…...

Web.py部署环境配置终极指南:Nginx、Gunicorn与Docker容器化全解析

Web.py部署环境配置终极指南&#xff1a;Nginx、Gunicorn与Docker容器化全解析 【免费下载链接】webpy web.py is a web framework for python that is as simple as it is powerful. 项目地址: https://gitcode.com/gh_mirrors/we/webpy Web.py是一款简洁而强大的Pyth…...

12个化学工具集成:如何用ChemCrow在5分钟内完成复杂化学分析

12个化学工具集成&#xff1a;如何用ChemCrow在5分钟内完成复杂化学分析 【免费下载链接】chemcrow-public Chemcrow 项目地址: https://gitcode.com/gh_mirrors/ch/chemcrow-public 还在为繁琐的化学计算和分子分析而烦恼吗&#xff1f;ChemCrow化学智能助手将彻底改变…...

GEO时代的技术突围:Infoseek媒体发布如何改写内容分发规则

最近在技术圈刷到一个新词——GEO&#xff08;生成式引擎优化&#xff09;。和传统SEO不一样&#xff0c;GEO的目标不是让网页排到搜索结果前面&#xff0c;而是让AI在回答用户问题时&#xff0c;把你的内容当成“标准答案”来引用。这个变化挺有意思&#xff0c;意味着内容分发…...