Android 调试桥 (adb) 使用教程/示例
sidebar: auto
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、打开或关闭进程、发送广播等操作
Android 调试桥 (adb) 使用教程/示例的更多相关文章
- 转:Android 调试桥(adb)是多种用途的工具
转自:http://my.oschina.net/xuwa/blog/1574 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入 ...
- Android 调试桥(adb)是多种用途的工具
Android 调试桥 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入adb: 在设备上运行shell命令 通过端口转发来管理 ...
- Android调试桥 adb安装详解
Android调试桥(adb) 一.简介 Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Uni ...
- Android 调试桥 (adb) 是 命令行命令--官方拷贝过来的,留作自己查看
Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令 ...
- Android 调试桥介绍 (adb)
Android 调试桥 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试 ...
- Android调试桥-Android Debug Birdge详解
原文:http://android.eoe.cn/topic/summary Android调试桥-Android Debug Birdge Android调试桥(adb)是一个多功能的命令行功具,它 ...
- 在 MAC OS X 安装 ADB (Android调试桥)
什么是 ADB? Android调试桥( adb )是一个开发工具,帮助安卓设备和个人计算机之间的通信. 这种通信大多是在USB电缆下进行,但是也支持Wi-Fi连接. adb 还可被用来与电脑上运行的 ...
- Android 开发笔记 “android调试遇到ADB server didn't ACK以及顽固的sjk_daemon进程 ”
资源来源:http://blog.csdn.net/wangdong20/article/details/20839533 做Android调试的时候经常会遇到,程序写好了,准备接上手机调试,可不一会 ...
- android调试之adb
ADB 其实大部分的PC开发机与Android设备的操作都是通过adb(android debug bridge)技术完成的,这是一个C/S架构的命令行工具,主要由三个部分组成 运行在PC开发机上的命 ...
- (转)当android调试遇到ADB server didn't ACK以及顽固的sjk_daemon进程 .
转:http://blog.csdn.net/wangdong20/article/details/20839533 做Android调试的时候经常会遇到,程序写好了,准备接上手机调试,可不一会儿出现 ...
随机推荐
- CentOS系统重命名
感觉默认的系统名称很难看,得改改,如下 一.查看linux 系统版本信息 [root@iZbp15rmf8lyj2yhq136ebZ ~]# cat /etc/redhat-release CentO ...
- 基于Quartz的可视化UI操作组件GZY.Quartz.MUI更新说明(附:在ABP中集成GZY.Quartz.MUI可视化操作组件)
前言 时隔2年.(PS:其实陆陆续续在优化,不过没发博客).. .本组件又迎来了新的更新... 很久没更新博客了.生了娃,换了工作单位,太忙了..实在抱歉 NET Core 基于Quartz的UI可视 ...
- 数据库SQL复习
数据库SQL介绍 Def:SQL是一种极其高效的数据库系统语言:可以实现对数据库中的数据进行增删改查等操作 增加操作:使用create命令: 可以create table 可以create View ...
- 在树莓派上实现numpy的LSTM长短期记忆神经网络做图像分类,加载pytorch的模型参数,推理mnist手写数字识别
这几天又在玩树莓派,先是搞了个物联网,又在尝试在树莓派上搞一些简单的神经网络,这次搞得是LSTM识别mnist手写数字识别 训练代码在电脑上,cpu就能训练,很快的: import torch imp ...
- nodejs使用eggjs创建项目,接入influxdb完成单表增删改查
转载请注明出处: 1.Eggjs 特性: Eggjs 是 Node.js 服务端应用开发框架,它提供了一套约定,使开发者能够快速搭建.开发和部署应用.以下是 Egg.js 的一些特性和作用: 框架内置 ...
- C2简介
C2简介 学习命令与控制的基本知识,帮助您成为更好的红队队员并简化您的下一次红队评估! thm:https://tryhackme.com/room/introtoc2 介绍 命令与控制 ( C2 ) ...
- Some book
## book [C++] Accelerated C++ C++ Primer 5th C++ 程序设计语言: 1 ~ 3 C++ 程序设计语言: 4 C++ 编程思想 C++ 标准库 2th C+ ...
- 前端分页组件简单好用列表分页page组件
快速实现 简单好用列表分页组件, 分页器组件,用于展示页码.请求数据等 ,包含翻页. 详情请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12 ...
- 如何通过AWS的云安全服务保护企业数据
目录 随着企业数字化程度的不断加深,数据安全和隐私保护成为了企业面临的新的挑战.在数字化转型的过程中,企业需要处理大量的数据,这些数据的安全性和隐私保护的重要性不言而喻. AWS 云安全服务是Amaz ...
- 「学习笔记」CDQ分治
CDQ 分治的思想最早由 IOI2008 金牌得主陈丹琦在高中时整理并总结,目前这个思想的拓展十分广泛. 优点:可以将数据结构或者 DP 优化掉一维 缺点:这是离线算法. 引入 让我们来看一个问题 有 ...