Android 调试桥 (adb)
Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作,例如安装和调试应用。adb 提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:
- 客户端:用于发送命令。客户端在开发机器上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
- 守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。
- 服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。
命令
查看已连接设备
# 查看已连接设备
$ adb devices
List of devices attached
35643218009**** device
连接设备
无线调试需要连接后才能出现在 adb devices
中
-
- 打开
无线调试
- 打开
系统设置 -> 开发者选项 -> 调试 -> 无线调试
-
- 连接ip地址和端口
这里ip没有固定的话会经常变, 端口每次打开无线调试也会变
# 连接 网络设备:ip
$ adb connect <IP地址:端口>
connected to 192.168.10.168:39773
# 再查看一下设备列表
$ adb devices
List of devices attached
35643218009*** device
192.168.10.168:39773 device # ++
断开连接
$ adb disconnect <IP地址:端口>
success
安装应用/卸载应用
$ adb install <apk路径>
success
$ adb uninstall <包名>
success
查看已安装应用包名
$ adb shell pm list packages
package:com.android.wallpaperpicker
package:com.android.providers.contacts
package:com.android.captiveportallogin
package:com.mediatek.dataprotection
...
搜索包 (仅 Linux/Mac/Git Bash
)
$ adb shell pm list packages | grep "com.android"
package:com.android.wallpaperpicker
package:com.android.providers.contacts
打开应用
adb shell am start -W -n <包名>/<Activity>
$ adb shell am start -W -n com.example.myapplication/com.example.myapplication.MainActivity
Starting: Intent { cmp=com.example.myapplication/.MainActivity }
Status: ok
Activity: com.example.myapplication/.MainActivity
ThisTime: 191
TotalTime: 191
WaitTime: 246
Complete
Activity 获取方式:
使用 apktool
工具解包, 用文本编辑器打开 AndroidManifest.xml
拿到 activity
的 android:name
第一个是首屏
# 如何解包
$ ./apktool.bat d woc.apk
关闭应用
$ adb shell am kill <包名>
success
# 杀死后台所有进程
$ adb shell am kill-all
上传文件
adb push <本地文件> <设备中目标文件>
$ adb push README.md /data/tmp/woc.md
README.md: 1 file pushed, 0 skipped. 4.1 MB/s (683 bytes in 0.000s)
下载文件
# 下载文件到电脑中
$ adb pull 路径
查看日志
adb logcat *
# 过滤指定关键词 macos / linux
$ adb logcat * | grep "connect to RTMP server by url"
...
# 过滤指定关键词 windows
$ adb logcat * | find "connect to RTMP server by url"
...
截图
TODO
模拟操作
TODO
打开网页
# 浏览器打开百度
$ adb shell am start -a android.intent.action.VIEW -d https://www.baidu.com
提取应用 apk
# 获取包文件
$ adb shell pm list packages | grep "teamviewer"
# 获取应用安装包所在位置
$ adb shell pm path com.teamviewer.quicksupport.addon.universal
# 根据 path 获取 apk
$ adb pull /data/app/com.teamviewer.quicksupport.addon.universal-6gbqnHHmnLCq7BiaQln5Bg==/base.apk
模拟输入文本
# 注意需要转码, 比如 \e3 这种, 不能输入中文
$ adb shell input text "hello,world"
发送广播
adb shell am broadcast -a <action> -p <package> –e <键> <值> …
# 发送广播模拟
# 附加数据类型说明 --ei(nt), --es(tring), --eb(ool)
$ adb shell am broadcast -a com.lhs.xcam.cmdaction -p cn.alauncher.dvr --ei camtype 1 --es cmd startrtc --es url "rtmp://xxxx/live/livestream/233"
参考
- 指令
am
: 是activity manager
的缩写, 可以启动Activity、打开或关闭进程、发送广播等操作
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容