安卓调试桥ADB

Logcat 命令行工具  |  Android Studio  |  Android Developers

什么是ADB

ADB 全称为 Android Debug Bridge ,是 Android SDK (安卓的开发工具)中的一个工具,起到调试桥的作用,是一个 客户端 - 服务器端程序 。其中 客户端 是用来操作的电脑, 服务端 Android 设备。
可以直接操作管理 Android 模拟器 或者 真实的 Android 设备(真机)
包括以下三个组件:
客户端 :用于发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端( cmd )调 用客户端。
守护程序 (adbd) :用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。 - 手机上
服务器 :用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。

安装adb

ADB,即Android Debug Bridge,是一个Android调试工具。以下是如何安装ADB的步骤:

下载ADB安装包

  • 你可以通过Android SDK安装ADB。ADB包含在Android SDK平台工具软件包中,安装完安卓SDK后,ADB会安装在“android_sdk/platform-tools/”目录下。

你也可以直接下载ADB安装包。具体的下载地址会根据你的操作系统而有所不同。例如,Windows版本的下载地址可能是https://dl.google.com/android/repository/platform-tools-latest-windows.zip,而Mac和Linux版本则会有相应的下载链接

2、解压安装包:下载完成后,你需要解压这个安装包。解压后,你会看到adb工具以及其他一些相关的文件。

3、配置环境变量:为了使ADB工具能在命令行中使用,你需要将其路径添加到系统的环境变量中。

打开电脑的设置,选择“高级系统设置”,然后点击“环境变量设置”。

在系统变量中找到并选择“Path”变量,然后点击“编辑”。

在“变量值”字段中,添加ADB工具的路径。例如,如果你的ADB工具解压在“C:\adb”目录下,那么你就需要在这个字段中添加“;C:\adb”

4、验证安装:配置完环境变量后,你可以打开命令提示符(Windows)或终端(Mac/Linux),输入adb version来查看ADB的版本,以确认ADB是否已成功安装并配置。

连接模拟器

安装夜神模拟器,需要使用安装的adb.exe替换模拟器中的nox_adb.exe。

查看adb版本

ADB常用命令

开启模拟器,输入如下命令,显示连接的模拟器设备。

查看当前连接设备

adb devices

查看设备状态

device正常连接 offline 离线 unknown没有连接设备

adb root:获取Android管理员(root用户)的权限

adb shell:登录设备shell,这个命令将登录设备的shell(内核),登录shell后可以使用cd、ls、rm等

linux命令

查看应用包名

• adb shell pm list packages 显示所有包名

• adb shell pm list packages –s 显示系统应用包名

• adb shell pm list packages -3 显示第三方应用包名

• ls /data/data 显示所有包名

安装应用

• adb install <apk文件路径>:将本地apk软件安装到设备上,如果已经存在则无法安装

• adb install -r <apk电脑上的路径> :将本地apk软件安装到设备上,入如果已经存在则覆盖

卸载应用

• adb uninstall <apk包名>:卸载应用

• adb uninstall -k <apk包名>:将设备上apk卸载,但是保留配置和缓存文件

复制文件

adb push <本地路径> <远程路径>:把本地的文件或文件夹复制到设备(手机)

adb push使用中文路径名导入后找不到,

重新push一个英文路径名即可

adb pull <远程路径> <本地路径> :把设备(手机)的文件或文件夹复制到本地(最好创建

一个目录存放)

日志操作

抓取日志

adb logcat:抓取日志,ctrl+c结束

logcat可以查看手机4个缓冲区日志,包括radio,system,main,event;

• radio 存放通信的日志,比如通话短信等;

• event 表示手机按键输出等事件日志等;

• main 指的是手机的应用软件的日志,是应用层日志输出;

• system是系统组日志。

• 如果不指定,则默认输出main和system的日志,

如果需要指定,则需要使用参数

ü logcat是实时日志,在你操作软件的同时,同步会输出日志信息。

1. adb logcat -b 指定缓冲区 如:adb logcat -b main 输出main的日志

2. adb logcat -v time 如:adb logcat -v time 输出的日志同步打印时间

3. adb logcat -v time -b 执行缓冲区 如:adb logcat -v time -b system

4. adb logcat –v time -b 执行缓冲区>d:\ logcat.log 输出的日志保存在本地的文件上

清除日志缓存

 adb logcat -c 清理日志

6. adb logcat *:E 日志筛选,只输出error日志

日志操作

adb bugreport:输出日志(包括logcat日志),同时也包括功耗、CPU等日志信息。只支持

Android7.0以上的版本,生成日志后会自动保存到电脑本地。

 

如果你想要将adb bugreport的输出保存到特定的文件或位置,你可以使用命令行参数来指定路径。例如,你可以使用类似adb bugreport D:\ProjectResources\logs的命令将报告保存到D盘的ProjectResources\logs目录下。

重启设备

adb reboot

当你使用这个命令时,它会向设备发送一个重启请求,然后设备会开始关闭并重新启动其操作系统。

获取序列号

adb get-serialno

查看ADB命令帮助

adb help

关闭adb服务

adb kill-server

启动adb服务

adb start-server

获得root权限

adb root

获取system文件夹读写权限

adb remount

Adb shell 

android是一种基于linux的自由及开放源代码的操作系统,adb shell命令是一个linux的shell,用来调试android系统内置的一些命令。

进入shell

adb shell进入shell,可执行ls cd exit等命令

启动activity

adb shell am start 包名

monkey测试

adb shell monkey 进行monkey测试

获取设备型号

adb shell getprop ro.product.model

获取设备android系统版本 

adb shell getprop ro.build.version.release:

获取设备屏幕分辨率 

adb shell wm size

截图

adb shell screencap -p /sdcard/mms.png:屏幕截图

adb pull /sdcard/mms.png D:\app:将截图导出到本地

查看系统信息-dumpsys

adb shell dumpsys meminfo <包名>:查看应用内存使用情况

查看当前打开的应用包名和界面 

adb shell dumpsys window windows | findstr mFocusedApp:查看当前打开的应用包名和界面

adb shell dumpsys activity | find "mFocusedActivity":查看当前打开的界面

C:\Users\>adb shell dumpsys window windows | findstr mFocusedAppmFocusedApp=AppWindowToken{a911cd token=Token{5a7db64 ActivityRecord{15a00f7 u0 net.oschina.app/.improve.home.HomeActivity t3}}}C:\Users\>adb shell dumpsys activity | find "mFocusedActivity"mFocusedActivity: ActivityRecord{15a00f7 u0 net.oschina.app/.improve.home.HomeActivity t3}

启动activity

启动activity,必须指定activity

C:\Users\>adb shell am start net.oschina.app/.improve.home.HomeActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=net.oschina.app/.improve.home.HomeActivity }

关闭应用

 adb shell am force-stop 包名

input指令

1. 模拟按键/输入-input

adb shell input keyevent <keycode>:模拟键盘操作,不同的keycode能实现不同的功能

• Android adb keyevent 键值大全:Android adb keyevent 键值大全-CSDN博客

adb shell input swipe 300 1000 300 500:模拟滑动操作,从300,1000滑动到300,500坐标

adb shell input text hello:模拟文本输入操作,要求:焦点在某文本框中

清除应用数据与缓存

adb shell pm clear 包名

关闭设备

adb shell stop

启动设备

adb shell start

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

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

相关文章

npm install的时候一直卡在sill idealTree buildDeps没有反应

描述&#xff1a;npm install的时候一直卡在sill idealTree buildDeps没有反应 第一步&#xff1a;清缓存 npm cache clean --force 第二步&#xff1a;换镜像 npm config set registry https://registry.npmmirror.com检查是否安装成功 npm config get registry第三步&…

I.MX6ULL_Linux_驱动篇(55)linux 网络驱动

网络驱动是 linux 里面驱动三巨头之一&#xff0c; linux 下的网络功能非常强大&#xff0c;嵌入式 linux 中也常常用到网络功能。前面我们已经讲过了字符设备驱动和块设备驱动&#xff0c;本章我们就来学习一下linux 里面的网络设备驱动。 嵌入式网络简介 网络硬件接口 首先…

网络七层模型之数据链路层:理解网络通信的架构(二)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

《QT实用小工具·一》电池电量组件

1、概述 项目源码放在文章末尾 本项目实现了一个电池电量控件&#xff0c;包含如下功能&#xff1a; 可设置电池电量&#xff0c;动态切换电池电量变化。可设置电池电量警戒值。可设置电池电量正常颜色和报警颜色。可设置边框渐变颜色。可设置电量变化时每次移动的步长。可设置…

ocr之opencv配合paddleocr提高识别率

背景1&#xff1a;在这篇文章编写之前使用到的工具并不是opencv&#xff0c;而是java原有的工具BufferedImage。但因为在使用过程中会频繁切图&#xff0c;放大&#xff0c;模糊&#xff0c;所以导致的jvm内存使用量巨大&#xff0c;分秒中都在以百兆的速度累加内存空间。这种情…

基于单片机的二维码LCD显示控制设计

**单片机设计介绍&#xff0c;基于单片机的二维码LCD显示控制设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的二维码LCD显示控制设计是一个集硬件、软件与通信于一体的综合性项目。此设计的主要目标是实现单片机…

物联网实战--入门篇之(一)物联网概述

目录 一、前言 二、知识梳理 三、项目体验 四、项目分解 一、前言 近几年很多学校开设了物联网专业&#xff0c;但是确却地讲&#xff0c;物联网属于一个领域&#xff0c;包含了很多的专业或者说技能树&#xff0c;例如计算机、电子设计、传感器、单片机、网…

Elasticsearch入门及常用命令和Spring中的常用操作

入门 官网 简介 一个分布式的、Restful风格的搜索引擎。支持对各种类型的数据的检索。搜索速度快&#xff0c;可以提供实时的搜索服务。便于水平扩展&#xff0c;每秒可以处理PB级海量数据。 常用术语 索引&#xff1a;与MySQL数据库中的Database相对应类型&#xff1a;与…

本地Navicat连接MySQL时报错1142解决办法

本地Navicat连接MySQL时报错1142解决办法&#xff1a; 1&#xff0c;使用root登录 2&#xff0c;使用下面SQL查询权限 use mysql; SELECT * FROM user WHERE usernacos;

【SpringBoot从入门到精通】01_SpringBoot概述

一、Spring与SpringBoot 1.1 Spring Spring 是一款目前主流的 Java EE 轻量级开源框架&#xff0c;是 Java 世界最为成功的框架之一。Spring 由“Spring 之父”Rod Johnson(罗宾约翰逊) 提出并创立&#xff0c;其目的是用于简化 Java 企业级应用的开发难度和开发周期。 广义…

Java中有哪些容器(集合类)?

Java中的集合类主要由Collection和Map这两个接口派生而出&#xff0c;其中Collection接口又派生出三个子接 口&#xff0c;分别是Set、List、Queue。所有的Java集合类&#xff0c;都是Set、List、Queue、Map这四个接口的实现 类&#xff0c;这四个接口将集合分成了四大类&#…

洛谷 P1379 八数码难题

代码如下&#xff1a; #include<bits/stdc.h> using namespace std; struct node{string s;int pos; }star,en; map<string,int>mp[2]; queue<node>q[2]; int main(){cin>>star.s;en.s"123804765";for(int i0;i<9;i){if(star.s[i]0) sta…