sidebar: auto

Android 调试桥 (adb)

Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作,例如安装和调试应用。adb 提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:

  • 客户端:用于发送命令。客户端在开发机器上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
  • 守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。
  • 服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。

命令

查看已连接设备

# 查看已连接设备
$ adb devices
List of devices attached
35643218009**** device

连接设备

无线调试需要连接后才能出现在 adb devices

    1. 打开 无线调试

系统设置 -> 开发者选项 -> 调试 -> 无线调试

    1. 连接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 拿到 activityandroid: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、打开或关闭进程、发送广播等操作

Android 调试桥 (adb) 使用教程/示例的更多相关文章

  1. 转:Android 调试桥(adb)是多种用途的工具

    转自:http://my.oschina.net/xuwa/blog/1574 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入 ...

  2. Android 调试桥(adb)是多种用途的工具

    Android 调试桥 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入adb: 在设备上运行shell命令 通过端口转发来管理 ...

  3. Android调试桥 adb安装详解

    Android调试桥(adb) 一.简介 Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Uni ...

  4. Android 调试桥 (adb) 是 命令行命令--官方拷贝过来的,留作自己查看

    Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令 ...

  5. Android 调试桥介绍 (adb)

    Android 调试桥 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试 ...

  6. Android调试桥-Android Debug Birdge详解

    原文:http://android.eoe.cn/topic/summary Android调试桥-Android Debug Birdge Android调试桥(adb)是一个多功能的命令行功具,它 ...

  7. 在 MAC OS X 安装 ADB (Android调试桥)

    什么是 ADB? Android调试桥( adb )是一个开发工具,帮助安卓设备和个人计算机之间的通信. 这种通信大多是在USB电缆下进行,但是也支持Wi-Fi连接. adb 还可被用来与电脑上运行的 ...

  8. Android 开发笔记 “android调试遇到ADB server didn't ACK以及顽固的sjk_daemon进程 ”

    资源来源:http://blog.csdn.net/wangdong20/article/details/20839533 做Android调试的时候经常会遇到,程序写好了,准备接上手机调试,可不一会 ...

  9. android调试之adb

    ADB 其实大部分的PC开发机与Android设备的操作都是通过adb(android debug bridge)技术完成的,这是一个C/S架构的命令行工具,主要由三个部分组成 运行在PC开发机上的命 ...

  10. (转)当android调试遇到ADB server didn't ACK以及顽固的sjk_daemon进程 .

    转:http://blog.csdn.net/wangdong20/article/details/20839533 做Android调试的时候经常会遇到,程序写好了,准备接上手机调试,可不一会儿出现 ...

随机推荐

  1. 安装ODOO13

    在CentOS 7服务器下安装和配置Odoo 13 录到服务器: ssh root@your_server_ip1如需检查计算机上安装的CentOS的版本,可以运行以下命令: cat /etc/red ...

  2. 【Python&目标识别】labelimg报错IndexError: list index out of range

            博主在使用labelimg选取深度学习样本时,命令行报错IndexError: list index out of range,几经周折终于解决了,所以跟大家分享一下.         ...

  3. Java CAS:AtomicInteger、AtomicReference、AtomicStampedReference

    Java CAS:AtomicInteger.AtomicReference.AtomicStampedReference 什么是CAS? 什么是CAS? 即比较并替换,实现并发算法时常用到的一种技术 ...

  4. 离线安装mysql报错解决方法:/usr/sbin/mysqld: error while loading shared libraries: libaio.so.1: cannot open sha --九五小庞

    Linux:centos 7.6 64位 mysql:5.6使用离线方式安装:rpm -ivh --nodeps mysql* ,执行 systemctl start mysqld.service发现 ...

  5. 无缝数据转换!使用C++ 实现 Excel文件与CSV之间的相互转换

    CSV格式是一种通用的文本文件格式,可在多个应用程序之间共享和使用.相比之下,Excel文件是一种电子表格格式,通常只能在Microsoft Excel中编辑和查看.因此,将Excel文件转换为CSV ...

  6. 【Linux】部署Nginx

    1.先安装gcc-c++编译器 yum install gcc-c++ yum install -y openssl openssl-devel 2.再安装pcre包 yum install -y p ...

  7. 全网最详细4W字Flink入门笔记(下)

    本文已收录至Github,推荐阅读 Java随想录 微信公众号:Java随想录 目录 Flink State状态 CheckPoint & SavePoint CheckPoint原理 Sav ...

  8. 【原创】CPU性能优化小记

    CPU性能优化小记 目录 CPU性能优化小记 一.现象 TOP各指标含义 二.分析 启动应用前 启动应用后 采集内核函数的方法 内核采集分析 火焰图分析 三.解决 一.现象 业务线反馈,单板只要一跑我 ...

  9. Oracle批量处理SQL

    批量更新且更新字段数字需要递增 示例: DECLARE n int; -- 定义变量 BEGIN n:=1000010; --为n 赋值 FOR i IN (SELECT AGENCY.ID FROM ...

  10. 代码随想录贪心专题-day1

    35. 分发糖果 n 个孩子站成一排.给你一个整数数组 ratings 表示每个孩子的评分. 你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果. 相邻两个孩子评分更高的孩子会获 ...