百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

adb详细介绍1(补)

liuian 2025-02-10 13:21 16 浏览

上一篇已经介绍了adb相关基本环境配置和常用的命令,本文会就adb常用命令、常遇到的一些问题以及一些拓展做简单介绍。

一、adb常用基础命令

1、adb devices:获取设备列表及设备状态

2、adb get-state:获取设备状态

设备状态有4种:device、offline、unknown、unauthorized

devices:设备正常连接

offline:连接出现异常,设备无响应

unknown:未正确连接设备

unauthorized:未授权--Android设备上会弹出”允许USB调试吗”的窗口,点击确认;

但有时该弹框一直没有弹出,重启Android设备和PC或者更换数据线等都没有解决(而使用其他PC都能正常使用),可以参考下面方法解决:

a) 删除C盘相关文件:通过计算机C盘路径找到两个文件adbkey和adb key.pub并进行删除;

b) Android设备撤销USB调试权限(手机开发者选项当中);

c) Android设备重新连接计算机:插拔数据线

d) 删除重启adb:

adb kill-server
adb start-server

e)开发者选项中打开adb调试权限,可以看到设备弹出授权弹框;


3、(2)中error: no devices/emulators found问题可能是adb端口5037(默认端口)被占用,下述方法可以参考:

关闭adb:adb kill-server;

启动adb:adb start-server;

查看adb是否有进程,5037端口是否被占用:adb nodaemon server,如果此时提示cannot bind 'tcp:5037',则5037端口被占用;

查看5037端口被哪个进程占用了:netstat -ano | findstr “5037”;

找出占用5037端口的线程名:tasklist | findstr “xxx”;

杀掉占用5037端口的进程:taskkill /pid xxx /f;

4、adb其他常用命令

1)开启或关闭adb服务

adb start-server:开启adb服务
adb kill-server:关闭adb服务

2)adb devices/adb devices -l/adb get-state:查看电脑是否连接设备

3)adb install:安装

adb install [-r/-t/-d/g] xxx.apk

-r :覆盖原来安装的软件,并保留数据
-t? : 安装过程中遇到Failure [INSTALL_FAILED_TEST_ONLY installPackageLI]
-d? :允许版本代码升级
-g? :授权所有运行时权限

连接多台设备时,指定某一台可以用:adb -s sn/序列号 install [-r/-t/-d/g] xxx.apk

安装包在android设备中:adb shell pm install apk在移动端的路径

4)adb uninstall:卸载

adb unstall xxx.apk

如果卸载设备中的应用,并希望保留配置和缓存文件

adb -s sn/序列号 shell pm uninstall -k 包名

5)adb pull : 将移动设备中的文件传送到PC中

adb pull 设备路径 PC路径

6)adb push :将PC中的文件传送到移动设备端

adb push PC路径 设备路径


7)adb logcat:查看日志

参考上一篇介绍:常用adb命令(超详细)-超实用哦-今日头条 (toutiao.com)

二、Shell相关指令:

1、查看设备相关内置信息

a)查看电池电量的相关信息:

adb shell dumpsys battery

b)查看无限网络信息:按“Q”停止显示后续输出信息

adb shell dumpsys wifi  [| more]

c)查看电源管理相关信息:可以判断手机是否处于锁屏态

adb shell dumpsys power

d)获取包名和界面名:

adb shell dumpsys window | grep mFocusedApp
adb shell "dumpsys window | grep mCurrentFocus"

e)获取启动时间:

adb shell am start -W 包名
adb shell pm list packages 列出包名
adb shell pm clear <包名>

f)CPU使用情况:

查看当前系统CPU使用情况:下面命令是获取的是一段时间的均值

adb shell dumpsys cpuinfo

进程占用情况:top

adb shell top
adb shell top | grep "包名" —— 查看特定包性能
adb shell top -d 1 |grep "包名"

内存使用情况:

adb shell dumpsys meminfo

g)设置/获取设备端口号:

adb shell setprop service.adb.tcp.port 6666
adb shell setprop service.adb.tcp.port?

2、input相关指令

a)点击-点击屏幕上(666,1666)位置:

adb shell input tap 666 1666

b)输入发送文本-shuaiqi:

adb shell input text shuaiqi

c)滑动:2000为滑动时间,单位是毫秒

adb shell swip <起点x> <起点y> <终点x> <终点y> <滑动时长>
adb shell input swipe 666 1500 666 100 2000

备注:在小距离内,较长的持续时间滑动就是长按;

e)按键

返回键:adb shell input keyevent 4
home键:adb shell input keyevent 3
音量放大:adb shell input keyevent 24
音量缩小:adb shell input keyevent 25
.................................................


3、am相关命令

a)应用启动:

adb shell am start [-n/-s/-w] com.zhihu.android/.app.ui.activity.LauncherActivity
-n:启动应用
-s:停止目标应用再启动
-w:等待应用完成后再启动

启动电话拨打10010:

adb shell am start -a android.intent.action.CALL -d tel:10010

b)查看包名/启动监控:应用启动后都有操作记录

adb shell am monitor

c)结束应用:

adb shell am force-stop 包名

4、截屏

adb shell screencap -p /sdcard

5、获取设备的activity名

adb shell dumpsys package com.zhihu.android

6、pm相关命令

a)列出所有应用包名:

adb shell pm list package [ /-s/-3/-f/-i]?

-s:列出所有系统应用包名

-3:列出所有第三方应用包名

-f:列出应用的包名及安装来源

-i:关键字过滤应用包名

b)列出应用的详细信息:

adb shell pm dump com.zhihu.android

c)apk存放在手机安装应用:

adb shell pm install apk在移动端的路径

相关推荐

总结下SpringData JPA 的常用语法

SpringDataJPA常用有两种写法,一个是用Jpa自带方法进行CRUD,适合简单查询场景、例如查询全部数据、根据某个字段查询,根据某字段排序等等。另一种是使用注解方式,@Query、@Modi...

解决JPA在多线程中事务无法生效的问题

在使用SpringBoot2.x和JPA的过程中,如果在多线程环境下发现查询方法(如@Query或findAll)以及事务(如@Transactional)无法生效,通常是由于S...

PostgreSQL系列(一):数据类型和基本类型转换

自从厂子里出来后,数据库的主力就从Oracle变成MySQL了。有一说一哈,贵确实是有贵的道理,不是开源能比的。后面的工作里面基本上就是主MySQL,辅MongoDB、ES等NoSQL。最近想写一点跟...

基于MCP实现text2sql

目的:基于MCP实现text2sql能力参考:https://blog.csdn.net/hacker_Lees/article/details/146426392服务端#选用开源的MySQLMCP...

ORACLE 错误代码及解决办法

ORA-00001:违反唯一约束条件(.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。ORA-00017:请求会话以设置跟踪事件ORA-00018:超出最大会话数ORA-00...

从 SQLite 到 DuckDB:查询快 5 倍,存储减少 80%

作者丨Trace译者丨明知山策划丨李冬梅Trace从一开始就使用SQLite将所有数据存储在用户设备上。这是一个非常不错的选择——SQLite高度可靠,并且多种编程语言都提供了广泛支持...

010:通过 MCP PostgreSQL 安全访问数据

项目简介提供对PostgreSQL数据库的只读访问功能。该服务器允许大型语言模型(LLMs)检查数据库的模式结构,并执行只读查询操作。核心功能提供对PostgreSQL数据库的只读访问允许L...

发现了一个好用且免费的SQL数据库工具(DBeaver)

缘起最近Ai不是大火么,想着自己也弄一些开源的框架来捣腾一下。手上用着Mac,但Mac都没有显卡的,对于学习Ai训练模型不方便,所以最近新购入了一台4090的拯救者,打算用来好好学习一下Ai(呸,以上...

微软发布.NET 10首个预览版:JIT编译器再进化、跨平台开发更流畅

IT之家2月26日消息,微软.NET团队昨日(2月25日)发布博文,宣布推出.NET10首个预览版更新,重点改进.NETRuntime、SDK、libraries、C#、AS...

数据库管理工具Navicat Premium最新版发布啦

管理多个数据库要么需要使用多个客户端应用程序,要么找到一个可以容纳你使用的所有数据库的应用程序。其中一个工具是NavicatPremium。它不仅支持大多数主要的数据库管理系统(DBMS),而且它...

50+AI新品齐发,微软Build放大招:拥抱Agent胜算几何?

北京时间5月20日凌晨,如果你打开微软Build2025开发者大会的直播,最先吸引你的可能不是一场原本属于AI和开发者的技术盛会,而是开场不久后的尴尬一幕:一边是几位微软员工在台下大...

揭秘:一条SQL语句的执行过程是怎么样的?

数据库系统能够接受SQL语句,并返回数据查询的结果,或者对数据库中的数据进行修改,可以说几乎每个程序员都使用过它。而MySQL又是目前使用最广泛的数据库。所以,解析一下MySQL编译并执行...

各家sql工具,都闹过哪些乐子?

相信这些sql工具,大家都不陌生吧,它们在业内绝对算得上第一梯队的产品了,但是你知道,他们都闹过什么乐子吗?首先登场的是Navicat,这款强大的数据库管理工具,曾经让一位程序员朋友“火”了一把。Na...

详解PG数据库管理工具--pgadmin工具、安装部署及相关功能

概述今天主要介绍一下PG数据库管理工具--pgadmin,一起来看看吧~一、介绍pgAdmin4是一款为PostgreSQL设计的可靠和全面的数据库设计和管理软件,它允许连接到特定的数据库,创建表和...

Enpass for Mac(跨平台密码管理软件)

还在寻找密码管理软件吗?密码管理软件有很多,但是综合素质相当优秀且完全免费的密码管理软件却并不常见,EnpassMac版是一款免费跨平台密码管理软件,可以通过这款软件高效安全的保护密码文件,而且可以...