ADB的主要操作命令及详解

news/2024/4/28 4:54:17/文章来源:https://blog.csdn.net/m0_37638307/article/details/137125573

ADB,全称Android Debug Bridge,即安卓调试桥,是一个通用的命令行工具,其允许你与模拟器实例或连接的安卓设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。

以下是一些ADB的主要操作命令及详解:

  1. 连接设备
  • adb devices:列出当前连接的所有设备和虚拟机。
  • adb connect <device_ip>:<device_port>:通过设备的IP地址和端口号连接到Android设备。
  1. 安装应用
  • adb install <path_to_apk>:将APK文件安装到设备上。其中,<path_to_apk>是APK文件的路径。
  1. 卸载应用
  • adb uninstall <package_name>:从设备卸载应用程序。其中,<package_name>是应用的包名。
  1. 导出和恢复应用数据
  • adb backup:将应用程序数据导出到文件中。
  • adb restore:将应用程序数据从备份文件中恢复。
  1. 设备操作
  • adb reboot:重启设备。
  • adb reboot bootloader:将设备重启到bootloader模式,即刷机模式。
  • adb reboot recovery:将设备重启到recovery模式,即恢复模式。
  1. 文件操作
  • adb push <local_file> <remote_path>:将文件从计算机复制到设备。
  • adb pull <remote_file> <local_path>:将设备上的文件复制到计算机。
  1. 查看日志
  • adb logcat:查看设备上的日志信息。可结合其他参数进行更详细或特定内容的查看,如adb logcat -v time用于打印时间戳,adb logcat | grep xxx用于抓取包含特定内容(xxx)的日志信息。
  1. 运行shell命令
  • adb shell <command>:在设备上运行shell命令。例如,adb shell命令本身会在连接的设备上打开一个命令行界面。

此外,ADB还有其他一些功能强大的命令,如adb get-serialno用于获取设备的序列号,adb devices -l用于列出连接到计算机的所有Android设备并显示设备的详细信息等。

下面是一些更高级和特定的ADB命令用法:

1. 查看设备和应用信息

  • adb get-state:获取设备的连接状态(device, offline, unknown)。
  • adb shell dumpsys package <package_name>:查看指定应用的包信息。
  • adb shell pm list packages:列出设备上所有已安装应用的包名。

2. 模拟输入和事件

  • adb shell input text <text>:在设备上模拟文本输入。
  • adb shell input keyevent <key_code>:模拟按键事件,如返回键、菜单键等。
  • adb shell input tap <x> <y>:模拟屏幕点击事件。
  • adb shell input swipe <x1> <y1> <x2> <y2>:模拟屏幕滑动事件。

3. 调试和性能分析

  • adb shell am start -a android.intent.action.VIEW -d <url>:在设备上启动一个指定的URL。
  • adb shell dumpsys meminfo <package_name>:查看指定应用的内存使用情况。
  • adb shell dumpsys gfxinfo <package_name>:获取指定应用的图形性能信息。

4. 网络操作

  • adb forward <local_port> <remote_port>:将本地计算机的端口转发到设备的端口。
  • adb reverse <remote_port> <local_port>:将设备的端口转发到本地计算机的端口。

5. 备份和恢复

  • adb backup -apk -shared -all -f <backup_file> <package_name>:备份指定应用及其数据到文件。
  • adb restore <backup_file>:从备份文件中恢复应用和数据。

6. 日志和调试输出

  • adb logcat -b <buffer>:查看特定缓冲区的日志,如radio、events等。
  • adb bugreport:生成并保存设备的bug报告,包括系统日志、堆栈跟踪等信息。

7. 设备截图和录屏

  • adb exec-out screencap -p > screenshot.png:捕获设备屏幕并保存为图片文件。
  • adb shell screenrecord /sdcard/video.mp4:录制设备屏幕并保存为视频文件。

8. 设备时间设置

  • adb shell date -s "yyyy-MM-dd HH:mm:ss":设置设备的日期和时间。

下面是一些额外的ADB操作命令和用法:

1. 安装和调试第三方应用

  • adb install -r <path_to_apk>:重新安装应用,保留数据和缓存。
  • adb install -t <path_to_apk>:允许测试APK的安装。
  • adb install -s <path_to_split_apk>:安装APK的分割部分。
  • adb install -d <path_to_apk>:允许降级安装(即安装旧版本的应用)。

2. 与设备上的服务交互

  • adb shell am:用于启动Activity,发送广播,或强制停止进程等。
  • adb shell wm:用于管理窗口管理器,如调整屏幕大小、密度等。
  • adb shell pm:用于管理包(应用),如列出包、清除数据等。

3. 获取系统属性

  • adb shell getprop:获取设备的系统属性。

4. 执行shell脚本

  • 你可以将一系列的ADB shell命令写入一个脚本文件,然后通过adb shell < /path/to/script.sh来执行这个脚本。

5. 使用ADB Shell进行更复杂的操作

  • adb shell ifconfig:查看设备的网络接口信息。
  • adb shell netstat:查看设备的网络连接状态。
  • adb shell top:查看设备的进程状态。

6. 设置环境变量

  • 你可以在ADB Shell中设置环境变量,这些变量将影响在该Shell会话中运行的所有命令。

7. 与特定用户或应用交互

  • 使用adb shell run-as <package_name>命令可以以特定应用的身份运行命令,这对于访问应用的私有文件和目录非常有用。

8. 自定义ADB Server端口

  • 默认情况下,ADB Server监听TCP端口5037。你可以通过设置ADB_SERVER_PORT环境变量来更改这个端口。

9. 使用ADB进行文件传输

  • 除了adb pushadb pull命令外,你还可以使用adb sync命令来同步本地目录和设备目录。

10. 使用ADB进行网络调试

  • adb tcpip <port>命令允许你通过TCP/IP连接ADB Server,这在无法通过USB连接设备时非常有用。

11. ADB的其他工具

  • adb logcat -v time:以时间戳的形式输出日志,方便查看。
  • adb jdwp:用于调试Java应用,可以与Java调试器一起使用。

请注意,为了使用ADB命令,需要确保ADB环境已经正确配置,并且计算机与Android设备已经通过USB或网络进行了连接。同时,对于某些高级操作,如修改系统文件或执行特殊命令,可能需要设备的root权限或特定的开发者选项设置。

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

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

相关文章

京东云搭建幻兽帕鲁Palworld多人游戏联机服务器教程,1分钟开服

使用京东云服务器搭建幻兽帕鲁Palworld游戏联机服务器教程&#xff0c;非常简单&#xff0c;京东云推出幻兽帕鲁镜像系统&#xff0c;镜像直接选择幻兽帕鲁镜像即可一键自动部署&#xff0c;不需要手动操作&#xff0c;真正的新手0基础部署幻兽帕鲁&#xff0c;阿腾云atengyun.…

Machine Learning机器学习之统计分析

目录 前言 机器学习之统计分析 统计学的主要目标包括&#xff1a; 统计学核心概念&#xff1a; 统计基础&#xff1a; 训练误差&#xff1a; 常见的损失函数&#xff1a; 正则化和交叉验证 博主介绍&#xff1a;✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉…

网络工程师之路由交换技术篇

网络工程师之路由交换技术篇 路由交换之技术篇ARPICMPBPDUIPv6IP编址MAC其他技术点参考 以下均为个人笔记&#xff0c;摘录到csdn做备份 路由交换之技术篇 ARP Operation Code指定了ARP报文的类型&#xff0c; 包括ARP request 和ARP reply&#xff1b;取值为1或者2 &#x…

uniapp输入框事件(防抖)

一、描述 在输入框输入内容或者说输入关键词的时候&#xff0c;往往都要进行做防抖处理。如果不做防抖&#xff0c;你输入什么&#xff0c;动态绑定的数据就会保持一致。这样不好吗&#xff0c;同步获取。有个业务场景&#xff0c;如果是搜索框&#xff0c;你每次一个字符&…

Java中读取html文件转成String,展示在浏览器

这里写目录标题 第一章1.1&#xff09;pom中引入依赖和html文件示例1.2&#xff09;使用hutool工具包读取html文件转为string1.3&#xff09;页面显示 第一章 1.1&#xff09;pom中引入依赖和html文件示例 引入hutool工具包依赖 <dependency><groupId>cn.hutool&…

【Linux】 gcc(linux下的编译器)程序的编译和链接详解

目录 前言&#xff1a;快速认识gcc 1. 程序的翻译环境和执行环境 2.编译和链接 2.1翻译环境 2.2编译环境 1. 预处理 gcc -E指令 test.c&#xff08;源文件&#xff09; -o test.i&#xff08;生成在一个文件中&#xff0c;可以自己指定&#xff09; 预处理完成之后就停下来&am…

贪心算法--最大数

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 本题链接https://leetcode.cn/problems/largest-number/description/ class Solution { public:bool static compare(int a, int b){return (to_string(a) to_string(b)) > (to_string(b) to_string(a));}bool operato…

MySQL创建表:练习题

练习题&#xff1a; 创建一个名为"students"的数据库&#xff0c;并切换到该数据库。 在"students"数据库中创建一个名为"grades"的表&#xff0c;包含以下字段&#xff1a; id: 整数类型 name: 字符串类型&#xff0c;学生姓名 subject: 字符串…

最小可行产品需要最小可行架构——可持续架构(三)

前言 最小可行产品&#xff08;MVP&#xff09;的概念可以帮助团队专注于尽快交付他们认为对客户最有价值的东西&#xff0c;以便在投入大量时间和资源之前迅速、廉价地评估产品的市场规模。MVP不仅需要考虑产品的市场可行性&#xff0c;还需要考虑其技术可行性&#xff0c;以…

计算机专业学习单片机有什么意义吗?

玩单片机跟玩计算机区别还是很大的, 单片机有众多的种类,每一种又可能有很多个系列.可以说单片机就是为了专款专用而生的.这样来达到产品成本的降低,这就是现在身边的很多的电子产品价格一降再降的原因之一.在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一…

安装paddle detection心得

一、安装PaddlePaddle conda create -n mypaddle python3.8 conda activate mypaddle python -m pip install paddlepaddle-gpu2.6.0 -i https://mirror.baidu.com/pypi/simple 请确保您的PaddlePaddle安装成功并且版本不低于需求版本。使用以下命令进行验证。 这是CUDA1…

SpringBoot项目启动成功,但是调用接口直接报NOT FOUND 404

问题描述 SpringBoot项目启动成功&#xff0c;但是调用接口直接报NOT FOUND 404 解决办法 启动类中ComponentScan(basePackages {“com.afclab”})中的扫包路径和项目路径不一样&#xff0c;导致扫不到Controller等组件&#xff0c;修改成和项目路径一样就可以解决&#xf…

8、鸿蒙学习-HAR

HAR&#xff08;Harmony Archive&#xff09;是静态共享包&#xff0c;可以包含代码、C库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP&#xff0c;不能独立安装运行在设备上。只能作为应用模块的依赖项被引用。 一、创建…

206基于matlab的无人机航迹规划(UAV track plannin)

基于matlab的无人机航迹规划(UAV track plannin&#xff09;。输入输出参数包括 横滚、俯仰、航向角&#xff08;单位&#xff1a;度&#xff09;&#xff1b;横滚速率、俯仰速率、航向角速率&#xff08;单位&#xff1a;度/秒&#xff09;&#xff1b;飞机运动速度——X右翼、…

小美的平衡矩阵(前缀和例题)

2024美团秋招&#xff0c;被这一题给难住了 美团校招笔试真题_Java工程师、C工程师_牛客网 题目&#xff1a; 解答&#xff1a; 这道题的关键点就是要计算出以某一点为矩阵右下角时&#xff0c;1的个数 我一开始是想着遍历&#xff0c;以某一点为起点&#xff08;矩阵左上角&a…

Github万星项目lobe-chat,连接GPT4GPTs,平替chatgpt-plus

简介 Lobe Chat - 一个开源、高性能的聊天机器人框架&#xff0c;支持语音合成、多模态和可扩展的函数调用插件系统。支持一键免费部署您的私人 ChatGPT/LLM Web 应用程序。 项目地址&#xff1a; GitHub - lobehub/lobe-chat: &#x1f92f; Lobe Chat - an open-source, mo…

稀碎从零算法笔记Day32-LeetCode:每日温度

算是引出“单调栈”这种数据结构&#xff0c;后面会用这个思想处理下接雨水问题 前言&#xff1a;单调栈模式匹配——题目中提到“求第一个最大/最小的元素” 题型&#xff1a;栈、单调栈、数组 链接&#xff1a;739. 每日温度 - 力扣&#xff08;LeetCode&#xff09; 来源…

Eclipse+Java+Swing实现斗地主游戏

一. 视频演示效果 java斗地主源码演示 ​ 二.项目结构 代码十分简洁&#xff0c;只有简单的7个类&#xff0c;实现了人机对战 素材为若干的gif图片 三.项目实现 启动类为Main类&#xff0c;继承之JFrame&#xff0c;JFrame 是 Java Swing 库中的一个类&#xff0c;用于创建窗…

深度学习500问——Chapter05: 卷积神经网络(CNN)(1)

文章目录 5.1 卷积神经网络的组成层 5.1.1 输入层 5.1.2 卷积层 5.1.3 激活层 5.1.4 池化层 5.1.5 全连接层 5.2 卷积在图像中有什么直观作用 5.3 卷积层有哪些基本参数 5.4 卷积核有什么类型 5.5 二维卷积与三维卷积有什么区别 卷积神经网络是一种用来处理局部和整体相关性的计…

Unity图集编辑器

图集编辑器 欢迎使用图集编辑器新的改变编辑器图片 欢迎使用图集编辑器 Unity图集操作很是费劲 无法批量删除和添加图集中的图片 新的改变 自己写了一个图集编辑器 客&#xff1a; 支持批量删除 左键点击图片代表选中 右键点击图标定位到资产支持批量添加 选中图片拖拽到编…