安卓调试桥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.rhkb.cn/news/290533.html

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

相关文章

利用云手机技术,开拓海外社交市场

近年来&#xff0c;随着科技的不断进步&#xff0c;云手机技术逐渐在海外社交营销领域崭露头角。其灵活性、成本效益和全球性特征使其成为海外社交营销的利器。那么&#xff0c;究竟云手机在海外社交营销中扮演了怎样的角色呢&#xff1f; 首先&#xff0c;云手机技术能够消除地…

【SpringCloud】Ribbon负载均衡

&#x1f3e1;浩泽学编程&#xff1a;个人主页 &#x1f525; 推荐专栏&#xff1a;《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》《项目实战》 &#x1f6f8;学无止境&#xff0c;不骄不躁&#xff0c;知行合一 文章目录 …

如何调试Clang源码

下载编译Clang 这个就直接去LLVM官网下载&#xff0c;然后编译好Clang就行&#xff0c;注意得debug模式&#xff0c;保存符号信息。 调试Clang 可以直接通过命令行来调试 #进入调试环境&#xff0c;这里的clang得是刚刚编译好的 lldb ./clang # r是运行&#xff0c;后面是正…

DC-9靶场

一.环境搭建 1.下载地址 靶机下载地址&#xff1a;https://download.vulnhub.com/dc/DC-9.zip 2.虚拟机配置 设置虚拟机为nat&#xff0c;遇到错误点重试和是 开启虚拟机如下图所示 二.开始渗透 1. 信息收集 查找靶机的ip地址 arp-scan -l 发现靶机的ip地址为192.168.11…

rust使用Command库调用cmd命令或者shell命令,并支持多个参数和指定文件夹目录

想要在不同的平台上运行flutter doctor命令&#xff0c;就需要知道对应的平台是windows还是linux&#xff0c;如果是windows就需要调用cmd命令&#xff0c;如果是linux平台&#xff0c;就需要调用sh命令&#xff0c;所以可以通过cfg!实现不同平台的判断&#xff0c;然后调用不同…

Kibana操作Elasticsearch教程

文章目录 简介ES文档操作创建索引查看索引创建映射字段查看映射关系字段属性详解typeindexstore 字段映射设置流程 新增数据新增会随机生成id新增自定义id智能判断 修改数据删除数据查询基本查询查询所有&#xff08;match_all&#xff09;匹配查询多字段查询词条匹配多词条精确…

2024 年广西职业院校技能大赛高职组《云计算应用》赛项样卷

#需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜…

Vue生命周期,从听说到深入理解(全面分析)

每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤&#xff0c;比如设置好数据侦听&#xff0c;编译模板&#xff0c;挂载实例到 DOM&#xff0c;以及在数据改变时更新 DOM。在此过程中&#xff0c;它也会运行被称为生命周期钩子的函数&#xff0c;让开发者有机会在特定阶…

关于Devc++调试的问题以及解决STL变量无法查看

目前Devc的调试主要有以下几点&#xff1a; 1.调试不能直接查看stl变量&#xff0c;会卡死不动 2.目前单步进入只能用鼠标键按 3.若想按下一步进入函数体内&#xff0c;要在函数体内打上断点才行 4.调试到return 0 ;上一句就停了&#xff0c;不会结束程序 5.目前F2跳至断点…

docker logs 查找日志常用命令

docker logs 是什么 docker logs 是 Docker 命令行工具提供的一个命令&#xff0c;用于查看容器的日志输出。它可以显示容器在运行过程中生成的标准输出&#xff08;stdout&#xff09;和标准错误输出&#xff08;stderr&#xff09;&#xff0c;帮助用户诊断容器的行为和排查…

慧天【HTWATER】:水文水动力模型的革命性工具,城市内涝的精准解决方案

城市内涝水文水动力模型介绍 在城市排水防涝规划过程中&#xff0c;水文水动力耦合模型已经成为一种不可或缺的分析工具。在模型建立、城市内涝风险评估、排水系统性能诊断以及海绵城市规划等方面&#xff0c;内涝耦合模型提供了相应的模拟及分析工具&#xff1a; 1.1丰富的数…

一、JAVA集成海康SDK

JAVA集成海康SDK 文章目录 JAVA集成海康SDK前言一、项目依赖 jar1. examples.jar2. 项目依赖 jna.jar,可以通过 maven依赖到。二、集成SDK1.HcNetSdkUtil 海康 SDK封装类2.HCNetSDK3.Linux系统集成SDK三、总结前言 提示:首先去海康官网下载 https://open.hikvision.com/dow…

蓝桥杯23年第十四届省赛真题-填充|DFS,贪心

题目链接&#xff1a; 1.填充 - 蓝桥云课 (lanqiao.cn) 蓝桥杯2023年第十四届省赛真题-填充 - C语言网 (dotcpp.com) 说明&#xff1a; dfs就不再多说了&#xff0c;对于每个?都有0和1两个分支&#xff0c;数据范围是&#xff1a; 那么有m个 ?&#xff0c;时间复杂度就是…

视频无水印爬虫采集工具|抖音视频批量下载软件|可导出视频分享链接

全新视频无水印爬虫采集工具&#xff0c;助力您快速获取所需视频&#xff01; 视频无水印爬虫采集工具&#xff0c;为用户提供了强大的视频采集和下载功能。它可以批量提取关键词相关的视频&#xff0c;同时支持单独视频的提取和下载&#xff0c;操作简便&#xff0c;使用方便。…

CSS及javascript

一、CSS简介 css是一门语言&#xff0c;用于控制网页的表现。 cascading style sheet:层叠样式表 二、css的导入方式 css代码与html代码的结合方式 &#xff08;1&#xff09;css导入html有三种方式&#xff1a; 1.内联样式&#xff1a;<div style"color:red&quo…

深度学习每周学习总结P3(天气识别)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 数据链接 提取码&#xff1a;o3ix 目录 0. 总结1. 数据导入部分数据导入部分代码详解&#xff1a;a. 数据读取部分a.1 提问&#xff1a;关…

智慧工厂视频汇聚与安全风险智能识别预警方案设计与功能

在智慧工厂的建设中&#xff0c;智能视频监控方案扮演着至关重要的角色。它不仅能够实现全方位、无死角的监控&#xff0c;还能够通过人工智能技术&#xff0c;实现智能识别、预警和分析&#xff0c;为工厂的安全生产和高效运营提供有力保障。 TSINGSEE青犀智慧工厂智能视频监…

网络爬虫框架Scrapy的入门使用

Scrapy的入门使用 Scrapy概述引擎&#xff08;Engine&#xff09;调度器&#xff08;Scheduler&#xff09;下载器&#xff08;Downloader&#xff09;SpiderItem Pipeline 基本使用安装scrapy创建项目定义Item数据模型对象创建爬虫(Spider)管道pipeline来保存数据启动爬虫 其他…

霸榜京东数据库图书热卖榜!《图数据库:理论与实践》热销中

《图数据库&#xff1a;理论与实践》自2月上市以来&#xff0c;受到了数据库行业的广泛关注与热烈支持&#xff0c;问世两周便销量破千本&#xff01;近期还荣登京东 “数据库图书榜”热卖榜第二名&#xff0c;广获好评&#xff01; 在此&#xff0c;真挚的感谢各位读者的认可…

实现定时任务

定时任务的实现方式有很多&#xff0c;比如XXL-Job等。但是其实核心功能和概念都是类似的&#xff0c;很多情况下只是调用的API不同而已。 这里就先用SpringBoot为我们提供的定时任务的API来实现一个简单的定时任务&#xff0c;让大家先对定时任务里面的一些核心概念有个大致的…