ADB

参考来自:https://www.jianshu.com/p/5980c8c282ef

1.ADB

adb工具即Android Debug Bridge(安卓调试桥) tools。用于通过电脑端与模拟器或者真是设备交互。在某些特殊的情况下进入不了系统,adb就派上用场啦!.包含如下几个部分:

  • Client端, 运行在PC. 用来发送adb命令.
  • Deamon,守护进程, 运行在调试设备中, 即的调试手机或模拟器.
  • Server端, 作为一个后台进程运行在开发机器中, 即你的开发PC机. 用来管理PC中的Client端和手机的Deamon之间的通信.
2. 常用命令
  • 启动adb:adb start-server
  • 查看已经连接的设备:adb devices
  • adb logcat: 打印log信息
  • 发送文件到设备:adb push
  • 下载文件到电脑:adb pull 手机文件路径 电脑目标路径
  • 截屏命令:adb shell screencap /sdcard/文件名.png
  • 杀死adb:adb kill-server
  • adb连接应用:adb connect …(地址)
  • adb 命令控制:adb shell
  • adb connect/disconnect:通过wifi远程连接手机调试.
  • adb shell am:am即activity manager.
    该命令用来执行一些系统动作, 例如启动指定activity, 结束进程, 发送广播, 更改屏幕属性等
指令说明备注
start 根据intent指向启动ActivityIntent可以是显示的指向activity, 也可以是ACTION方式, 并且可以添加flag, data等参数信息.
startservice 启动Service可以添加flag, data等参数信息.
broadcast 发送广播可以添加flag, data等参数信息.
monitor启动一个Crash和ANR的监听器如有Crash或ANR会在控制台输出相关信息.
force-stop 强制停止该包相关的一切传入package name.
kill 杀死该包相关的所有进程传入package name.
kill-all杀死所有后台进程
display-size WxH改变显示的分辨率例如adb shell am display-size 1280x720, 手机可能不支持.
display-density 改变显示的density例如adb shell am display-density 320, 手机可能不支持.

- adb shell pm
:pm即package manager.
用来执行package相关的操作, 例如安装卸载, 查询系统的安装包等.

指令说明备注
list packages 列出满足filter条件的所有包
list permissions 列出该Group的所有权限
list features查看系统支持哪些feature例如蓝牙, wifi, 摄像头等.
install /uninstall 安装卸载
clear 清除应用数据
  • adb shell screencap:截屏
  • adb shell screenrecord:录屏
  • adb shell dumpsys:强大的dump工具, 可以输出很多系统信息. 例如window, activity, task/back stack信息, wifi信息
指令说明备注细分参数
activity输出app组件相关信息还可以用细分参数获得单项内容, 下同. 例如adb shell dumpsys activity activities来获取activity task/back stack信息.activites, service, providers, intents, broadcasts, processes
alarm输出当前系统的alarm信息//
cpuinfo输出当前的CPU使用情况//
diskstats输出当前的磁盘使用状态//
batterystats电池使用信息//
packagepackage相关信息, 相当于pm功能的集合输出诸如libs, features, packages等信息/
meminfo输出每个App的内存使用和系统内存状态可以指定包名, 例如adb shell dumpsys meminfo com.anly.githubapp/
window输出当前窗口相关信息/
08-12
Android调试桥接工具(ADB)是Android开发中不可或缺的一部分,用于连接设备与开发环境,执行调试、安装应用等操作。以下是与ADB相关的常见操作及连接问题的解决方案。 ### ADB常见操作 1. **启动ADB服务** 使用命令 `adb start-server` 可以手动启动ADB服务。如果ADB服务未启动,将导致设备无法连接。 2. **查看连接设备** 使用命令 `adb devices` 可以查看当前连接的设备列表。如果设备未列出,则表示ADB未能正确识别设备。 3. **安装应用** 使用命令 `adb install app.apk` 安装APK文件到设备上。 4. **卸载应用** 使用命令 `adb uninstall package_name` 卸载指定包名的应用程序。 5. **执行shell命令** 使用命令 `adb shell` 可以进入设备的shell环境,执行如文件操作、查看日志等命令。 6. **转发端口** 使用命令 `adb forward tcp:<port> tcp:<port>` 可以将设备的端口转发到主机上,便于调试网络应用。 ### ADB连接问题及解决方案 1. **ADB服务未启动或崩溃** 如果控制台报错 `The connection to adb is down, and a severe error has occurred`,可能是ADB服务未启动或崩溃。此时可以尝试重启ADB服务,使用命令 `adb kill-server` 停止服务,再使用 `adb start-server` 启动服务[^1]。 2. **ADB路径配置错误** 如果提示ADB无法执行,可能是ADB路径配置错误。可以在开发工具(如Eclipse)中关闭“Use detected ADB location”选项,手动选择ADB的路径,通常为 `SDK路径\platform-tools\adb.exe`[^2]。 3. **端口占用问题** 如果出现 `Connection reset by peer` 错误,可能是ADB使用的5037端口被其他程序占用。可以通过命令 `netstat -ano | findstr :5037` 查看占用该端口的进程ID,再使用任务管理器终止该进程。如果问题仍未解决,尝试重启计算机[^3]。 4. **设备无法识别** 如果设备未被ADB识别,确保设备已启用开发者选项和USB调试模式。此外,尝试更换USB端口或数据线,以排除硬件问题。 5. **ADB版本不兼容** 如果ADB版本过旧,可能会导致与设备或开发工具不兼容。建议使用最新版本的ADB工具,通常包含在Android SDK的platform-tools目录中。 6. **日志调试** 使用 `adb logcat` 命令可以查看设备的日志信息,帮助诊断连接问题。例如,可以使用 `adb logcat -v time` 查看带时间戳的日志。 ### 示例代码:ADB连接测试 以下是一个简单的Python脚本示例,用于测试ADB连接并列出设备: ```python import subprocess def run_adb_command(command): try: result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, shell=True) return result.stdout except Exception as e: return str(e) # 检查ADB是否安装 adb_version = run_adb_command("adb version") print("ADB Version:", adb_version) # 列出连接的设备 devices = run_adb_command("adb devices") print("Connected Devices:\n", devices) ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值