IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android的ADB -> 正文阅读

[移动开发]Android的ADB

ADB

Adb的全称为Android Debug Bridge:android调试桥梁
Android的初衷是用adb这样的一个工具来协助开发人员在开发android应用的过程中更快更好的调试apk,因此adb具有安装卸载apk、拷贝推送文件、查看设备硬件信息、查看应用程序占用资源、在设备执行shell命令等功能;
我们可以在android sdk安装目录的platform-tools目录下找到adb工具。在window下需要配置adb环境变量,读者自行搜索博客配置(配置好可以在cmd中adb命令查看),在Ubuntu可以sudo apt-get install adb,安装好后adb version查看adb 版本。

ADB 问题

  1. 在后续使用adb命令时出现
powershell error: no devices/emulators found

时,是没有找到设备或模拟器导致的。
① 检查是否连上了设备或者打开了模拟器
②检查设备或模拟器是否打开了开发者模式,读者自行搜索如何开启。
③adb功能异常,重启adb
(1)把adb服务杀死:adb kill-server
(2)重启adb服务:adb reconnect
注:如果使用的不是真机而是模拟器,需要进行连接操作,即运行adb connect 127.0.0.1:62001 其中62001为模拟器所使用的端口号。

  1. cat:xxx Permission denied
    权限不足问题,为了获得执行权限,借助chmod指令修改文件权限即可。可以使用访问Android

ADB 命令

adb 命令的基本语法:adb [-d|-e|-s ]

  • 如果只有一个设备/模拟器连接时,可以省略掉 [-d|-e|-s ] 这一部分,直接使用 adb 。
  • 如果有多个设备/模拟器连接,则需要为命令指定目标设备。
参数含义
-d指定当前唯一通过 USB 连接的 Android 设备为命令目标
-e指定当前唯一运行的模拟器为命令目标
-s 指定相应 serialNumber 号的设备/模拟器为命令目标(adb devices前面部分)

adb devices查看已经连接的设备
输出格式为 [serialNumber] [state],serialNumber 即我们常说的 SN,state 有如下几种:

  • offline —— 表示设备未连接成功或无响应。
  • device —— 设备已连接。注意这个状态并不能标识 Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到adb,但启动完毕后系统才处于可操作状态。
  • no device —— 没有设备/模拟器连接。

以上输出显示当前已经连接了三台设备/模拟器,cf264b8f、emulator-5554 和 10.129.164.6:5555 分别是它们的 SN。从 emulator-5554 这个名字可以看出它是一个 Android 模拟器,而 10.129.164.6:5555 这种形为 : 的 serialNumber 一般是无线连接的设备或 Genymotion 等第三方 Android 模拟器。
adb connect <device-ip-address>通过 IP 地址连接设备。(需要连接USB数据线,确认 Android 设备与电脑连接到了同一个 WiFi)
不需要连接USB数据线的情况下(需要 root 权限):
在 Android 设备上安装一个终端模拟器。
已经安装过的设备可以跳过此步。推荐使用的终端模拟器下载地址是:Terminal Emulator for Android Downloads
将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。
打开 Android 设备上的终端模拟器,在里面依次运行命令:

su
setprop service.adb.tcp.port 5555

然后就是adb connect <device-ip-address>,出现connected to :5555 这样的输出则表示连接成功。
(有的设备,可能需要重启 adbd 服务,在设备的终端模拟器上运行:restart adbd
如果 restart 无效,尝试以下命令:stop adbd和start adbd
adb disconnect <device-ip-address>断开无线连接
adb get-serialno获取手机序列号
adb shell getprop ro.product.model查看手机设备型号
adb shell wm size查看手机分辨率
adb shell cat /sys/class/net/wlan0/address获取手机的mac地址
adb logcat查看日志
adb shell dumpsys battery查看电池信息
adb shell ps查看进程
adb shell top查看cpu使用情况
adb install [-lrtsdg] [apk文件的路径]apk文件需要放到你命令执行的文件夹下,或者写上apk的绝对路径

参数含义
-l将应用安装到保护目录 /mnt/asec
-r允许覆盖安装
-t允许安装 AndroidManifest.xml 里 application 指定 android:testOnly=“true” 的应用
-s将应用安装到 sdcard
-d允许降级覆盖安装
-g授予所有运行时权限

adb -s [设备号] install [apk文件的路径]多个设备安装apk
adb uninstall [apk文件的路径]普通卸载
adb uninstall -k [apk文件的路径]卸载但是保留数据
adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]查看手机上所有安装的app包名
即在 adb shell pm list packages 的基础上可以加一些参数进行过滤查看不同的列表,支持的过滤参数如下:

参数显示列表
所有应用
-f显示应用关联的 apk 文件
-d只显示 disabled 的应用
-e只显示 enabled 的应用
-s只显示系统应用
-3只显示第三方应用
-i显示应用的 installer
-u包含已卸载应用
<FILTER>包名包含 <FILTER> 字符串

adb shell dumpsys package com.ss.android.ugc.aweme | findstr activity获取某个应用包名的启动入口
adb shell am start -n [包名]/[启动入口]启动某个app
adb shell screencap [保存路径]屏幕截图
adb shell screenrecord [保存路径]录制视频
adb push 文件名 手机端SDCard路径上传文件到手机
adb pull [手机上文件路径]从手机端下载文件
adb shell input tap x坐标轴 y坐标轴模拟屏幕点击事件
adb shell input swipe 开始x轴 开始y轴 结束x轴 结束y轴 过程持续时间毫秒模拟手势滑动事件
adb shell input keyevent [key值]模拟点按键盘按钮
db shell input text [字符串信息]向屏幕输入一些信息(%s是空格)
adb shell am broadcast -a "broadcastactionfilter"发送广播
adb shell am start -a [浏览器包名] -d [网址]使用自带浏览器打开网页
adb vivoroot获取手机root权限
adb remount连接不稳定时需要挂载
adb reboot正常重启
adb reboot recovery重启手机到recovery
adb reboot bootloader重启到bootloader界面
adb kill-server关闭adb服务
adb start-server启动adb服务(一般无需手动执行此命令,在运行 adb 命令时若发现 adb server 没有启动会自动调起。)
adb -P <port> start-server指定 adb server 的网络端口。默认端口为 5037。

以 root 权限运行 adbd

adb 的运行原理是 PC 端的 adb server 与手机端的守护进程 adbd 建立连接,然后 PC 端的 adb client 通过 adb server 转发命令,adbd 接收命令后解析运行。

所以如果 adbd 以普通权限执行,有些需要 root 权限才能执行的命令无法直接用 adb xxx 执行。这时可以 adb shell 然后 su 后执行命令,也可以让 adbd 以 root 权限执行,这个就能随意执行高权限命令了。命令adb root,正常输出为restarting adbd as root。再运行 adb shell,命令行提示符就会变成 # 。
有些手机 root 后也无法通过 adb root 命令让 adbd 以 root 权限执行,比如三星的部分机型,会提示 adbd cannot run as root in production builds,此时可以先安装 adbd Insecure,然后 adb root 试试。

相应地,如果要恢复 adbd 为非 root 权限的话,可以使用 adb unroot 命令。

adb详细

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:35:19  更:2021-08-21 15:35:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:50:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码