Android adb常见命令总结
Android Debug Bridge(adb)是Android开发中不可或缺的工具,它提供了丰富的命令集,用于与Android设备进行通信、调试和管理。本文将详细探讨一些常见的adb命令及其具体用法,帮助开发者更深入地理解和运用adb工具。
1. 连接设备
1.1 连接设备(通过USB)
adb devices
该命令用于列出当前连接的所有Android设备及其状态。设备连接后,需确保已启用开发者选项和USB调试。
1.2 连接设备(通过Wi-Fi)
adb tcpip 5555
adb connect <device_ip_address>:5555
通过Wi-Fi连接到Android设备。首先,使用adb tcpip 5555将设备端口设置为5555,然后使用adb connect <device_ip_address>:5555连接到指定IP地址的设备。
2. 安装和卸载应用
2.1 安装APK
adb install <path_to_apk>
将指定的APK文件安装到连接的Android设备上。若设备上已存在同名应用,可以使用-r选项进行覆盖安装。
2.2 卸载应用
adb uninstall <package_name>
卸载指定包名的应用。应用包名可以在设备上的应用管理界面或使用adb shell pm list packages获取。
2.3 更新安装APK
adb install -r <path_to_apk>
更新已安装应用的APK文件,保留应用数据和设置。
3. 文件传输
3.1 从设备复制文件到本地
adb pull <remote_path> <local_path>
从连接的Android设备上复制文件到本地计算机。<remote_path>是设备上文件的路径,<local_path>是目标路径。
3.2 从本地复制文件到设备
adb push <local_path> <remote_path>
将本地计算机上的文件复制到连接的Android设备。<local_path>是本地文件路径,<remote_path>是设备上的目标路径。
4. 运行命令
4.1 启动shell
adb shell
启动连接设备上的交互式shell会话,可以在该shell中执行各种命令。
4.2 执行shell命令
adb shell <command>
在连接设备的shell中执行指定的命令。例如,adb shell ls -l /sdcard用于列出设备上sdcard目录的文件。
5. 应用管理
5.1 查看已安装应用列表
adb shell pm list packages
列出设备上所有已安装应用的包名。
5.2 查看应用详细信息
adb shell dumpsys package <package_name>
显示指定应用的详细信息,包括版本号、权限、组件等。
5.3 清除应用数据和缓存
adb shell pm clear <package_name>
清除指定应用的数据和缓存,相当于应用的“清除数据”操作。
6. 日志查看
6.1 查看设备日志
adb logcat
实时查看连接设备的系统和应用日志。可以通过添加选项(如-d)以及过滤器(如应用名称或日志级别)进行更精细的控制。
6.2 保存设备日志到文件
adb logcat -d > <file_name>
将设备日志保存到本地文件中,方便后续分析和调试。
7. 重启和恢复出厂设置
7.1 重启设备
adb reboot
重新启动连接的Android设备。
7.2 进入恢复模式
adb reboot recovery
重新启动设备并进入恢复模式,用于执行高级操作,如固件刷写或数据恢复。
7.3 恢复出厂设置
adb shell recovery --wipe_data
在恢复模式下执行,清除设备的所有用户数据和设置,将设备恢复到出厂状态。
8. 截屏和录屏
8.1 截屏
adb shell screencap /sdcard/screenshot.png
adb pull /sdcard/screenshot.png <local_path>
在设备上截取当前屏幕内容,并将截图保存到本地计算机。
8.2 录屏
adb shell screenrecord /sdcard/demo.mp4
adb pull /sdcard/demo.mp4 <local_path>
在设备上录制屏幕操作,并将录屏文件保存到本地计算机。
9. 调试和性能分析
9.1 查看设备CPU信息
adb shell cat /proc/cpuinfo
显示连接设备的CPU信息,包括处理器型号、核心数等。
9.2 查看设备内存信息
adb shell cat /proc/meminfo
显示连接设备的内存信息,包括总内存、空闲内存、缓存等。
9.3 查看设备GPU信息
adb shell dumpsys SurfaceFlinger --list
显示连接设备的GPU信息,包括支持的显示器信息和图层信息。
9.4 查看设备网络状态
adb shell dumpsys netstats
显示连接设备的网络统计信息,包括数据使用情况、流量统计等。
10. 调试模式设置
10.1 切换设备到Root模式
adb root
将连接设备切换到Root模式,获取更高的系统权限。需要设备支持并已解锁。
10.2 查看设备SELinux状态
adb shell getenforce
显示连接设备的SELinux安全策略状态,通常为Enforcing、Permissive或Disabled。
11. 文件系统操作
11.1 查看文件或目录属性
adb shell ls -l <path>
显示连接设备上指定路径的文件或目录属性,包括权限、所有者、大小等信息。
11.2 修改文件或目录权限
adb shell chmod <permissions> <path>
修改连接设备上指定路径的文件或目录的权限。<permissions>可以是八进制或符号形式的权限。
12. 硬件操作
12.1 获取设备分辨率
adb shell wm size
显示连接设备的屏幕分辨率信息。
12.2 截取指定区域的屏幕截图
adb shell screencap -p | sed 's/\r$//' > screen.png
这个命令截取的屏幕内容保存为文件
13. 输入事件模拟
13.1 发送文本到设备
adb shell input text "Hello, Android!"
将指定文本输入到设备当前活动的文本框中。适用于自动化测试和输入模拟场景。
13.2 模拟触摸事件
adb shell input tap <x> <y>
在设备屏幕上的指定位置 <x>, <y> 执行一次单击操作。可用于自动化测试或远程控制设备。
13.3 模拟滑动事件
adb shell input swipe <start_x> <start_y> <end_x> <end_y> [<duration_ms>]
从设备屏幕上的起始位置 <start_x>, <start_y> 滑动到结束位置 <end_x>, <end_y>。可选参数 <duration_ms> 指定滑动的持续时间(毫秒)。
14. 与应用交互
14.1 发送广播给应用
adb shell am broadcast -a <action>
向设备上的应用发送广播,<action> 是广播的动作名称,可以携带额外的数据和信息。
14.2 启动应用的Activity
adb shell am start -n <package_name>/<activity_name>
启动指定应用的指定Activity,<package_name> 是应用的包名,<activity_name> 是要启动的Activity名称。
14.3 强制停止应用
adb shell am force-stop <package_name>
停止运行中的指定应用,清除其所有活动和进程。
15. 日志管理
15.1 清除设备日志缓存
adb logcat -c
清除设备上当前日志的缓存,通常在需要清除旧日志并开始记录新日志时使用。
15.2 过滤显示特定应用的日志
adb logcat -s <tag>
仅显示指定标签 <tag> 的日志消息,用于调试特定应用或组件。
16. 系统状态查询
16.1 查看连接设备的系统版本
adb shell getprop ro.build.version.release
显示连接设备的Android系统版本号。
16.2 查看设备电池状态
adb shell dumpsys battery
显示连接设备的当前电池状态,包括充电状态、电池健康状况和剩余电量等信息。
17. 其他实用命令
17.1 安装应用时跳过权限提示
adb install -g <path_to_apk>
安装应用时跳过权限提示,仅适用于开发者模式。
17.2 查看连接设备的指定目录下文件列表
adb shell ls -l /sdcard/
显示连接设备上指定路径(如/sdcard/)的文件和目录列表。
17.3 获取设备截屏并显示在屏幕上
adb shell screencap -p | display
将设备的当前屏幕截图获取并显示在计算机的屏幕上。
18. 进程管理
18.1 查看设备上运行的进程
adb shell ps
显示连接设备上当前正在运行的所有进程及其详细信息,包括进程ID(PID)、用户ID(UID)、内存使用情况等。
18.2 结束指定进程
adb shell kill <pid>
结束指定进程,其中 <pid> 是要结束的进程的ID。
19. 调试器连接
19.1 连接调试器到指定进程
adb jdwp
启动一个新的JDWP(Java调试器协议)连接,用于调试连接设备上的指定Java进程。
19.2 列出设备上所有的调试器端口
adb lsof
显示连接设备上所有当前打开的文件(包括网络套接字和本地文件),可用于查看调试器端口。
20. 应用数据查看和操作
20.1 导出应用数据库到本地
adb pull /data/data/<package_name>/databases/<database_name> <local_path>
将连接设备上指定应用的数据库文件导出到本地计算机,便于离线分析和备份。
20.2 导出应用的Shared Preferences文件到本地
adb pull /data/data/<package_name>/shared_prefs/<pref_file_name>.xml <local_path>
将连接设备上指定应用的Shared Preferences文件导出到本地计算机,用于查看和修改应用的设置数据。
21. 功能性测试
21.1 执行Monkey测试
adb shell monkey -p <package_name> -v <event_count>
执行Monkey测试,随机生成用户事件(如点击、滑动等),用于测试应用的稳定性和响应性能。
21.2 安装应用时不保留数据和缓存
adb install -f <path_to_apk>
安装应用时不保留旧数据和缓存,用于清除应用数据后进行新一轮的安装测试。
22. 应用性能分析
22.1 启动应用性能监视器
adb shell dumpsys cpuinfo
显示连接设备上当前正在运行的应用的CPU使用情况和详细信息,用于性能分析和优化。
22.2 查看应用的内存使用情况
adb shell dumpsys meminfo <package_name>
显示连接设备上指定应用的内存使用情况,包括内存总量、分配的堆大小、内存泄漏等信息。
23. 设备权限管理
23.1 授予应用权限
adb shell pm grant <package_name> <permission>
为连接设备上的应用授予指定的权限,<permission> 是权限名称。
23.2 撤销应用权限
adb shell pm revoke <package_name> <permission>
撤销连接设备上的应用的指定权限,<permission> 是权限名称。
24. 网络调试
24.1 查看设备网络连接状态
adb shell netstat
显示连接设备的网络连接状态,包括TCP和UDP连接信息。
24.2 设置设备网络模拟条件
adb shell tc qdisc add dev <interface> root netem delay <delay_time>
通过添加网络模拟队列规则,模拟设备的延迟等网络条件,用于测试应用在不同网络环境下的表现。
25. 调试安全性
25.1 查看设备安全性状态
adb shell dumpsys package <package_name> | grep permissions
显示连接设备上指定应用的权限信息,用于安全审计和权限管理。
25.2 检查设备安全漏洞
adb shell dumpstate > <file_name>
生成连接设备的状态信息报告,并保存到本地文件,包括设备信息、系统状态和可能的安全漏洞。
26. 多设备管理
26.1 列出所有连接的设备和模拟器
adb devices -l
显示所有连接到计算机的Android设备和模拟器的详细信息,包括设备序列号、状态和类型。
26.2 在多个设备上并行执行命令
adb -s <device_serial_number> <command>
使用指定的设备序列号执行adb命令,适用于同时管理多个连接的设备或模拟器。
27. 系统设置调整
27.1 修改设备屏幕亮度
adb shell settings put system screen_brightness <value>
设置连接设备的屏幕亮度值,<value> 是一个0到255之间的整数。
27.2 修改设备音量
adb shell media volume --stream music --set 10
设置连接设备的媒体音量值

