ADB高级操作手册
前言
在当今快速发展的移动开发领域,ADB(Android Debug Bridge,即安卓调试桥)作为一项强大的命令行工具,扮演着举足轻重的角色。它不仅是开发者与Android设备间沟通的桥梁,更是进行设备调试、应用管理、文件传输及系统维护等操作不可或缺的利器。
本指南详尽地汇集了ADB的各种命令与应用场景,从基础的设备连接与管理,到进阶的应用调试与性能监控,涵盖了开发者在日常工作中可能遇到的各种需求。无论你是希望通过Wi-Fi或USB进行设备连接,还是想要获取设备的序列号、型号等详细信息,亦或是需要进行屏幕录制、日志分析、系统属性设置等高级操作,本指南都能为你提供详尽的指导和清晰的示例。
通过熟练掌握ADB命令,你将能够更高效地解决开发过程中遇到的问题,提升工作效率,同时也为深入理解Android系统的运行机制打下坚实的基础。无论你是初学者还是经验丰富的开发者,本指南都将是你不可或缺的助手,助你在移动开发的道路上越走越远。
目录:
一、设备连接与管理
二、应用管理
三、文件传输
四、设备调试与日志
五、设备控制与交互
六、高级用法
七、系统信息与状态查询
八、应用启动与停止
九、设备设置与配置
十、设备性能监控与调试
十一、设备安全与管理
十二、设备管理与维护
十三、文件传输与操作
十四:monkey命令
一、设备连接与管理
1.查看已连接设备
命令:adb devices
示例:列当前所有已连接的设备及其状态。
adb devices
adb devices -l #列出的信息更详细
2.通过Wi-Fi连接设备
命令:adb connect <device-ip>:<port>
示例:通过设备的IP地址和端口号进行连接。
adb connect 192.168.1.2:5555
3.断开Wi-Fi连接
命令:adb disconnect <device-ip>:<port>
示例:断开与指定设备的Wi-Fi连接。
adb disconnect 192.168.1.2:5555
adb disconnect #断开所有链接
4.获取设备序列号(详细)
命令:adb get-serialno -v
示例:显示当前连接设备的序列号及其详细信息。
adb get-serialno -v
5.检查设备是否root
命令:adb shell
示例:进入设备shell后执行su命令,若能成功切换则设备已root。
adb shell
su
6.列出设备上的所有USB接口
命令:adb shell ls /sys/class/usb_device/
示例:查看设备上的USB接口信息。
adb shell ls /sys/class/usb_device/
7.启用或禁用ADB调试
命令:adb shell settings put global adb_enabled
示例:在设备的“开发者选项”中开启或关闭“USB调试”。
禁用ADB: adb shell settings put global adb_enabled 0 启用ADB: adb shell settings put global adb_enabled 1
adb usb #也可以启动usb
8.重启ADB服务
命令:adb kill-server && adb start-server
示例:先杀死ADB服务,再重新启动。
adb kill-server && adb start-server
9.查询设备IP地址
命令:adb shell ifconfig | grep 'inet ' | awk '{print $2}'
示例:获取设备的IP地址。
adb shell ifconfig | grep 'inet ' | awk '{print $2}'
或者
adb shell "ifconfig wlan0 | grep 'inet addr' | cut -d':' -f2 | cut -d' ' -f1"
10.设置设备名称
命令:adb shell setprop sys.device_name <new_name>
示例:设置设备名称 MyNewDevice。
adb shell setprop sys.device_name MyNewDevice。
11.获取设备MAC地址
命令:adb shell cat /sys/class/net/wlan0/address
示例:查看设备的Wi-Fi MAC地址。
adb shell cat /sys/class/net/wlan0/address
12.进入设备的Fastboot模式
命令:adb reboot bootloader
示例:通常是通过同时按住音量下键和电源键进入。
adb reboot bootloader
13.查询设备支持的ADB版本
命令:adb version
示例:显示ADB客户端和服务器的版本信息。
adb version
14.查看连接设备详情
命令:adb shell getprop ro.hardware
示例:显示设备的硬件信息。
adb shell getprop ro.hardware
15.查看设备制造商
命令:adb shell getprop ro.manufacturer
示例:显示设备制造商名称。
adb shell getprop ro.manufacturer
16.查看设备型号
命令:adb shell getprop ro.product.model
示例:显示设备型号。
adb shell getprop ro.product.model
17.通过TCP/IP连接设备(指定端口)
命令:adb tcpip 5555(先设置端口,再用adb connect)
示例:将ADB连接模式切换到TCP/IP,并指定端口5555。
adb tcpip 5555
adb connect <设备的IP地址>:5555
18.断开指定设备的USB连接
命令:adb usb disconnect <device_serial>(需root权限)
示例:断开特定设备的USB连接。
adb usb disconnect <device_serial>
19.检查ADB服务状态
命令:adb wait-for-device
示例:在脚本中等待直到设备连接。
adb wait-for-device
20.重启ADB守护进程(针对特定设备)
命令:adb -s <device_serial> reboot-adb
示例:重启特定设备的ADB守护进程。
adb -s <device_serial> reboot-adb
21.查看设备屏幕是否锁定
命令:adb shell dumpsys window | grep mDreamingLocked
示例:检查设备屏幕是否处于锁定状态。
adb shell dumpsys window | grep mDreamingLocked
22.启用或禁用保持唤醒状态
命令:adb shell settings put system stay_on_while_plugged_in <value>(0为禁用,1为启用)
示例:设置设备在充电时是否保持唤醒。
adb shell settings put system stay_on_while_plugged_in 1
23.获取设备当前连接的Wi-Fi名称
命令:adb shell cat /data/misc/wifi/wpa_supplicant.conf | grep ssid(需root权限)
示例:显示设备当前连接的Wi-Fi网络名称。
adb shell cat /data/misc/wifi/wpa_supplicant.conf | grep ssid
24.查看已连接设备详情
命令:adb shell getprop ro.hardware
示例:显示设备的硬件信息,如返回qcom表示高通硬件。
adb shell getprop ro.hardware
25.查看设备制造商
命令:adb shell getprop ro.manufacturer
示例:显示设备制造商名称,如小米返回Xiaomi。
adb shell getprop ro.manufacturer
26.查看设备型号
命令:adb shell getprop ro.product.model
示例:显示设备型号,如Redmi Note 10 Pro。
adb shell getprop ro.product.model
27.检查ADB服务状态
命令:adb wait-for-device
示例:在脚本中等待直到设备连接,常用于自动化脚本中确保设备已连接。
adb wait-for-device
28.重启ADB守护进程(针对特定设备)
命令:adb -s <device_serial> reboot-adb
示例:重启特定设备的ADB守护进程。
adb -s 1234567890abcdef reboot-adb
29.查看设备屏幕是否锁定
命令:adb shell dumpsys window | grep mDreamingLocked
示例:检查设备屏幕是否处于锁定状态,返回结果包含mDreamingLocked=true表示屏幕已锁定。
adb shell dumpsys window | grep mDreamingLocked
30.获取设备当前连接的Wi-Fi名称
命令:adb shell cat /data/misc/wifi/wpa_supplicant.conf | grep ssid(需root权限)
示例:显示设备当前连接的Wi-Fi网络名称,如SSID=MyHomeNetwork。
adb shell cat /data/misc/wifi/wpa_supplicant.conf | grep ssid
31.查看已连接设备详细信息
命令:adb devices -1
示例:列出当前所有已连接的Android设备及其详细信息,包括设备序列号、产品型号等。-l 参数表示“long listing”,它会显示设备的序列号、设备型号、设备状态等额外信息。
adb devices -1
32.通过USB连接特定设备
命令:adb -s <device_serial> usb
示例:通过USB连接指定序列号的设备。
adb -s 1234567890abcdef usb
33.检查ADB服务器状态
命令:adb start-server && adb devices
示例:启动ADB服务器并列出已连接设备,用于确认ADB服务是否正常。
adb start-server && adb devices
34.获取设备连接模式
命令:adb shell getprop sys.usb.config
示例:显示设备的USB连接模式,如mtp,adb等。
adb shell getprop sys.usb.config
35.设置设备为仅充电模式
命令:adb shell svc usb set_function charge_only
示例:将设备设置为仅充电模式,不进行数据传输。
adb shell svc usb set_function charge_only
36.重启ADB守护进程(对所有设备)
命令:adb root && adb reboot-adb
示例:请求root权限后重启所有设备的ADB守护进程。
adb root && adb reboot-adb
37.查询设备是否支持ADB无线调试
命令:adb shell dumpsys package | grep wireless-adb
示例:检查设备是否支持无线ADB调试功能。
adb shell dumpsys package | grep wireless-adb
38.列出所有可用的网络接口
命令:adb shell ip link show
示例:显示设备上的所有网络接口信息。
adb shell ip link show
39.通过指定网络接口连接设备
命令:adb -H <host_ip> -P connect :<adb_port>
示例:通过指定主机和端口连接设备。
adb -H 192.168.1.1 -P 5037 connect 192.168.1.2:5555
二、应用管理
1.安装应用
命令:adb install <path_to_apk>
示例:将APK文件安装到设备上。
adb install /path/to/your/app.apk
2.卸载应用
命令:adb uninstall <package_name>
示例:卸载指定包名的应用。
adb uninstall com.example.yourapp
3.清除应用数据与缓存
命令:adb shell pm clear <package_name>
示例:清除指定应用的数据和缓存。
adb shell pm clear com.example.yourapp
4.列出所有已安装的应用
命令:adb shell pm list packages
示例:显示设备上安装的所有应用包名。
adb shell pm list packages
5.查询特定应用的详细信息
命令:adb shell dumpsys package <package_name>
示例:查询包名为 com.example.myapp的详细信息。
adb shell dumpsys package com.example.myapp
6.备份应用数据
命令:adb backup -f <backup_file> <package_name>
示例:创建指定应用(com.example.myapp)的备份文件(myapp_backup.ab)。
adb backup -f myapp_backup.ab com.example.myapp
7.恢复应用数据
命令:adb restore <backup_file>
示例:将名为 myapp_backup.ab 的Android备份文件恢复到已连接的Android设备上。
adb restore myapp_backup.ab
8.禁用应用
命令:adb shell pm disable-user <package_name>
示例:禁用包名为 com.example.myapp的应用。
adb shell pm disable-user com.example.myapp
9.启用应用
命令:adb shell pm enable <package_name>
示例:重新启用被禁用的名为com.example.myapp的应用程序
adb shell pm enable com.example.myapp
10.查询应用签名信息
命令:adb shell dumpsys package <package_name> | grep "signatures="
示例:验证APK文件的签名信息(注意:此命令在PC上执行,非ADB命令,但相关)。
adb shell dumpsys package <package_name> | grep "signatures="
11.查询应用安装来源
命令:adb shell pm get-install-location
示例:显示应用的默认安装位置。
adb shell pm get-install-location
12.允许或禁止应用安装来自未知来源
命令:adb shell settings put secure install_non_market_apps
示例:“未知来源”。0,表示禁止;1,表示允许
adb shell settings put secure install_non_market_apps 0 adb shell settings put secure install_non_market_apps 1
13.查询应用是否为系统应用
命令:adb shell pm list packages -s | grep <package_name>
示例:检查指定应用是否为系统应用。
adb shell pm list packages -s | grep <package_name>
14.列出系统应用
命令:adb shell pm list packages -s
示例:显示设备上安装的所有系统应用。
adb shell pm list packages -s
15.查看应用的安装位置
命令:adb shell pm get-install-location <package_name>
示例:显示指定应用的安装位置(内部存储或外部存储)。
adb shell pm get-install-location <package_name>
16.将应用移动到外部存储
命令:adb shell pm move-package <package_name> external
示例:将指定应用移动到外部存储(如果支持)。
adb shell pm move-package <package_name> external
17.清除应用的缓存
命令:adb shell pm clear-cache <package_name>
示例:清除指定应用的缓存。
adb shell pm clear-cache <package_name>
18.查看应用的安装时间
命令:adb shell dumpsys package <package_name> | grep firstInstallTime
示例:显示指定应用的安装时间。
adb shell dumpsys package <package_name> | grep firstInstallTime
19.查看应用的启动次数
命令:adb shell dumpsys usagestats | grep <package_name>
示例:显示指定应用的启动次数和使用情况。
adb shell dumpsys usagestats | grep <package_name>
20.强制停止应用并清除数据
命令:adb shell pm clear <package_name>(与清除应用数据与缓存相同,但更明确)
示例:强制停止指定应用并清除其所有数据和缓存。
adb shell pm clear <package_name>
21.卸载应用
命令:adb uninstall <package_name>
示例:adb uninstall com.example.yourapp,卸载指定包名的应用。
adb uninstall com.example.yourapp
22.列出所有系统应用
命令:adb shell pm list packages -s
示例:显示设备上安装的所有系统应用包名。
adb shell pm list packages -s
23.清除指定应用的缓存
命令:adb shell pm clear <package_name> -c
示例:仅清除指定应用的缓存。
adb shell pm clear com.example.yourapp -c
24.禁用应用
命令:adb shell pm disable-user <package_name>
示例:adb shell pm disable-user com.example.myapp,禁用指定应用。
adb shell pm disable-user com.example.myapp
25.查询应用安装来源的详细信息
命令:adb shell pm get-install-location -d
示例:显示应用的默认安装位置及其详细信息,如内部存储或外部存储。
adb shell pm get-install-location -d
26.查看应用的数据目录
命令:adb shell pm get-package-info <package_name> | grep dataDir
示例:adb shell pm get-package-info com.example.myapp | grep dataDir,查看指定应用的数据目录路径。
adb shell pm get-package-info com.example.myapp | grep dataDir
27.强制停止应用
命令:adb shell am force-stop <package_name>
示例:强制停止指定应用的运行。
adb shell am force-stop com.example.yourapp
28.安装应用到SD卡
命令:adb install -r -s <path_to_apk>
示例:将APK文件强制安装到设备的SD卡上。
adb install -r -s /path/to/your/app.apk
29.查看应用安装位置
命令:adb shell pm get-install-location | grep -w [internal|external]
示例:检查应用是安装在内部存储还是外部存储。
adb shell pm get-install-location | grep -w [internal|external]
30.查询应用包名列表
命令:adb shell pm list packages
示例:列出设备上安装的所有应用的包名。
adb shell pm list packages
31.清除应用缓存
命令:adb shell pm clear <package_name> --keep-data
示例:清除指定应用的缓存,但保留其数据。
adb shell pm clear <package_name> --keep-data
32.备份应用数据
命令:adb backup -f <backup_file> <package_name>
示例:备份指定应用的数据。
adb backup -f /sdcard/backup.ab com.example.yourapp
33.恢复应用数据
命令:adb restore <backup_file>
示例:从备份文件中恢复应用数据。
adb restore /sdcard/backup.ab
34.查看应用权限
命令:adb shell dumpsys package <package_name> | grep -A 10 "requested permissions"
示例:显示指定应用请求的权限列表。
adb shell dumpsys package <package_name> | grep -A 10 "requested permissions"
三、文件传输
1.从设备复制文件到本地
命令:adb pull <remote> <local>
示例:将设备上的文件复制到本地目录。
adb pull /sdcard/yourfile.txt /path/to/local/directory/
2.将本地文件复制到设备
命令:adb push <local> <remote>
示例:将本地文件复制到设备上的指定目录。
adb push /path/to/local/file.txt /sdcard/
3.同步文件或目录
命令:adb sync <local_dir> <remote_dir>
示例:将本地路径下的文件或目录同步到 Android 设备的指定 SD 卡路径下。
adb sync /local/path/ /sdcard/remote/path/
4.列出设备上的所有文件
命令:adb shell find / -name "*"
示例:查找并列出设备上的所有文件。
adb shell find / -name "*"
5.删除设备上的文件
命令:adb shell rm <remote_file>
示例:删除 testfile.txt。
adb shell rm /sdcard/testfile.txt
6.重命名设备上的文件
命令: mv
示例:将名为 oldname.txt 的文件重命名为 newname.txt,并保持在 SD 卡上的同一位置。
adb shell mv /sdcard/oldname.txt /sdcard/newname.txt
7.创建设备上的目录
命令:mkdir
示例:adb shell mkdir /sdcard/newdirectory/。
adb shell mkdir /sdcard/newdirectory/
8.更改设备文件的权限
命令:chmod
示例:script.sh 脚本文件设置可读、可写、可执行的权限
adb shell chmod 755 /sdcard/script.sh
9.更改设备文件的拥有者
命令:adb shell chown : <remote_file>
示例:将 /sdcard/testfile.txt 文件的拥有者和群组更改为 root。
adb shell chown root:root /sdcard/testfile.txt
10.复制设备上的文件到另一位置
命令:cp
示例:adb shell cp <source_file> <destination_file>
adb shell cp /sdcard/source.txt /sdcard/destination/
11.计算设备文件的MD5校验和
命令:md5sum
示例:adb shell md5sum <remote_file>。
adb shell md5sum /sdcard/testfile.txt
12.搜索设备上的文件内容
命令:adb shell grep <search_term> <remote_file>
示例:搜索 /sdcard/testfile.txt 文件中包含 "hello" 文本的行。
adb shell grep "hello" /sdcard/testfile.txt
13.从设备复制整个目录到本地
命令:adb pull -a <remote_dir> <local_dir>
示例:将设备上的/sdcard/MyFolder目录递归地复制到本地的C:\Backup\目录中
adb pull -a /sdcard/MyFolder C:\Backup\
14.将本地目录复制到设备(保留权限)
命令:adb push -p <local_dir> <remote_dir>
示例:将本地的C:\Projects\目录(包括权限)复制到设备上的/sdcard/Projects/目录中
adb push -p C:\Projects\ /sdcard/Projects/
15.列出设备上的隐藏文件
命令:adb shell ls -a <path>
示例:显示指定目录中的隐藏文件。
adb shell ls -a /sdcard/
16.更改设备文件的访问时间
命令:adb shell touch -a <remote_file>
示例:更新指定文件的访问时间。
adb shell touch /sdcard/testfile.txt
17.计算设备目录的磁盘使用情况
命令:adb shell du -sh <path>
示例:显示指定目录占用的磁盘空间大小。
adb shell du -sh /sdcard/MyFolder/
18.创建设备上的符号链接
命令:adb shell ln -s <target> <linkname>
示例:在设备上创建一个符号链接。
adb shell ln -s /system/bin/sh /sdcard/mysh
19.删除设备上的空目录
命令:adb shell rmdir <remote_dir>
示例:删除指定的空目录。
adb shell rmdir /sdcard/EmptyFolder/
20.同步本地目录到设备(增量同步)
命令:adb sync -n <local_dir> <remote_dir>(-n表示不删除目标中的文件)
示例:增量同步本地目录到设备。
adb sync -n C:\Projects\ /sdcard/Projects/
21.查找并列出设备上的特定类型文件
命令:adb shell find / -name "*.jpg"
示例:查找并列出设备上的所有JPG图片文件。
adb shell find / -name "*.jpg"
22.将设备上的文件压缩为ZIP包
命令:adb shell zip -r <zip_file> <path>
示例:将指定目录及其内容压缩为ZIP包。
adb shell zip -r /sdcard/MyFolder.zip /sdcard/MyFolder/
23.从设备复制文件到本地
命令:adb pull <remote_file> <local_dir>
示例:将设备上的文件复制到本地桌面。
adb pull /sdcard/testfile.txt C:\Users\User\Desktop\
24.将本地文件复制到设备
命令:adb push <local_file> <remote_dir>
示例:将本地文件复制到设备存储。
adb push C:\Users\User\Desktop\testfile.txt /sdcard/
25.列出设备上的文件
命令:adb shell ls
示例:列出设备存储根目录下的文件和文件夹。
adb shell ls /sdcard/,
26.删除设备上的文件
命令:adb shell rm <remote_file>
示例:删除设备上的指定文件。
adb shell rm /sdcard/testfile.txt
27.重命名设备上的文件
命令:adb shell mv <old_file> <new_file>
示例:重命名设备上的文件。
adb shell mv /sdcard/testfile.txt /sdcard/newtestfile.txt
28.创建设备上的目录
命令:adb shell mkdir
示例:在设备存储上创建新目录。
adb shell mkdir /sdcard/newfolder/
29.查看设备上的文件权限
命令:adb shell ls -1
示例:查看设备存储根目录下文件和文件夹的权限信息。
adb shell ls -l /sdcard/
30.更改设备文件的权限
命令:adb shell chmod <remote_file>
示例:更改设备上文件的权限为可读可写可执行。
adb shell chmod 755 /sdcard/testfile.sh
31.计算设备文件的MD5校验和
命令:adb shell md5sum <remote_file>
示例:计算设备上文件的MD5校验和。
adb shell md5sum /sdcard/testfile.txt
32.将本地目录复制到设备(保留权限)
命令:adb push -p <local_dir> <remote_dir>
示例:保留权限地将本地目录复制到设备存储。
adb push -p C:\Users\User\Desktop\folder /sdcard/
33.从设备复制整个目录
命令:adb pull -a <remote_dir> <local_dir>
示例:递归复制设备上的音乐目录到本地。
adb pull -a /sdcard/music /home/user/music
34.将本地目录复制到设备(不保留权限)
命令:adb push <local_dir> <remote_dir>/
示例:不保留权限地复制本地文档目录到设备。
adb push /home/user/documents /sdcard/documents/
35.计算设备目录的磁盘使用情况(人类可读)
命令:adb shell du -h
示例:以人类可读格式显示设备存储的使用情况。
adb shell du -h /sdcard/
36.查找并复制设备上的特定文件
命令:adb shell find / -name " " -exec adb pull {} <local_dir>/ ;
示例:查找并复制设备上的所有名为"test.txt"的文件到本地目录。
adb shell find / -name " " -exec adb pull {} <local_dir>/ ;
37.创建设备上的符号链接
命令:adb shell ln -s
示例:在设备上创建符号链接。
adb shell ln -s /sdcard/original.txt /sdcard/link_to_original.txt
38.删除设备上的空目录
命令:adb shell rmdir -p <remote_dir>
示例:删除设备上的空目录及其父目录(如果存在)。
adb shell rmdir -p /sdcard/empty_directory/
39.更改设备文件的所有者
命令:adb shell chown : <remote_file>
示例:更改文件的所有者为root。
adb shell chown root:root /sdcard/important_file.txt
40.更改设备文件的访问和修改时间
命令:adb shell touch -t <[[CC]YY]MMDDhhmm[.ss]] <remote_file>
示例:设置文件的访问和修改时间为2023年10月10日12点00分。
adb shell touch -t 202310101200.00 /sdcard/file.txt
41.计算设备文件的SHA-256校验和
命令:adb shell sha256sum <remote_file>
示例:计算设备上文件的SHA-256校验和。
adb shell sha256sum /sdcard/file.txt
42.同步本地目录到设备(覆盖目标文件)
命令:adb sync <local_dir> <remote_dir>
示例:将本地新文件目录同步到设备,覆盖目标文件。
adb sync /home/user/new_files /sdcard/
四、设备调试与日志
1.过滤并显示特定级别的日志
命令:adb logcat *:E
示例:只显示错误级别的日志。
adb logcat *:E
2.将日志保存到指定文件并追加内容
命令:adb logcat -f <log_file>
示例:adb logcat -f /sdcard/mylog.txt。
adb logcat -f /sdcard/mylog.txt
3.导出日志
命令:adb logcat > <output_file>
示例:将日志信息导出到本地文件。
adb logcat > /path/to/output/logcat.txt
4.清空日志缓冲区
命令:adb logcat -c
示例:清空所有日志缓冲区的内容。
adb logcat -c
5.查看特定进程的日志
命令:adb logcat | grep <process_name>
示例:adb logcat | grep myapp。
adb logcat | grep myapp
6.将日志以二进制格式保存
命令:adb logcat -b all -v binary > <log_file>
示例:将Android设备上的所有日志缓冲区(主缓冲区、事件缓冲区、无线电缓冲区等)以二进制格式保存到设备的/sdcard/mylog_binary.log文件中。
adb logcat -b all -v binary > /sdcard/mylog_binary.log
7.查看长时间未更新的日志缓冲区
命令:adb logcat -b long
示例:显示长时间未滚动的日志缓冲区内容。
adb logcat -b long
8.查看系统事件的日志
命令:adb logcat -b events
示例:显示系统事件的日志信息。
adb logcat -b events
9.将日志输出到多个文件
命令:需使用tee命令结合重定向符号。
示例:将Android设备的日志同时输出到设备的/sdcard/log1.txt和/sdcard/log2.txt文件中,并在终端显示。
adb logcat | tee /sdcard/log1.txt | tee /sdcard/log2.txt
10.查看特定标签的日志
命令:adb logcat :V
示例:显示MyTag标签的详细日志。
adb logcat MyTag:V
11.查看系统日志的实时输出
命令:adb logcat -v long
示例:以长格式显示系统日志的实时输出。
adb logcat -v long
12.过滤特定标签的日志
命令:adb logcat MyTag:D *:S
示例:只显示MyTag标签的DEBUG级别日志,其他标签的日志静默。
adb logcat MyTag:D *:S
13.将日志保存到指定文件(追加模式)
命令:adb logcat -f <log_file> -r 1024
示例:将日志保存到指定文件,并设置环形缓冲区大小为1024行。
adb logcat -f <log_file> -r 1024
14.查看特定进程的日志(通过PID)
命令:adb logcat | grep <pid>
示例:通过进程ID过滤日志。
adb logcat | grep <pid>
15.导出指定时间段的日志
命令:结合adb shell和logcat的-d选项及时间戳过滤(需手动筛选)
示例:先使用adb shell logcat -d > log.txt导出日志,然后在PC上筛选指定时间段的日志。
adb shell logcat -d > log.txt
16.查看内核日志
命令:adb shell dmesg
示例:显示设备启动后的内核消息。
adb shell dmesg
17.查看特定服务的日志
命令:adb shell dumpsys <service_name>
示例:显示活动管理器的日志。
adb shell dumpsys activity
18.生成设备的错误报告(完整报告)
命令:adb bugreport full > bugreport.zip
示例:生成设备的完整错误报告并保存为ZIP文件。
adb bugreport full > bugreport.zip
19.查看电池使用历史记录
命令:adb shell dumpsys batterystats
示例:显示设备的电池使用历史记录和统计信息。
adb shell dumpsys batterystats
20.查看网络统计信息
命令:adb shell netstat
示例:显示设备的网络连接和统计信息。
adb shell netstat
21.导出设备日志到本地(追加模式)
命令:adb logcat -f <file_path>
示例:将设备日志持续导出到本地文件(追加模式)。
adb logcat -f C:\Users\User\Desktop\log.txt
22.过滤设备日志中的特定标签
命令:adb logcat | grep
示例:过滤并显示包含ActivityManager标签的日志信息。
adb logcat | grep ActivityManager
23.查看特定进程的日志
命令:adb logcat | grep
示例:过滤并显示指定进程ID的日志信息。
adb logcat | grep 12345
24.清空设备日志
命令:adb logcat -c
示例:清空设备上的日志缓冲区,用于重新开始日志记录。
adb logcat -c
25.设置日志级别
命令:adb logcat *:V
示例:设置日志级别为详细(Verbose),显示所有级别的日志信息。
adb logcat *:V
26.查看系统服务日志
命令:adb shell dumpsys <service_name>
示例:查看窗口管理器的日志信息。
adb shell dumpsys window
27.生成设备的错误报告(简化版)
命令:adb bugreport > bugreport.txt
示例:收集设备上的一系列诊断信息,包括日志、系统状态、内存信息等,并将这些信息打包成一个压缩文件。
adb bugreport /path/to/save/bugreport.zip
28.查看系统日志(主缓冲区)
命令:adb logcat -b main
示例:显示系统主缓冲区的日志信息。
adb logcat -b main
29.查看系统日志(所有缓冲区)
命令:adb logcat -b all
示例:显示系统所有缓冲区的日志信息。
adb logcat -b all
30.保存系统日志到设备文件
命令:adb shell logcat -f /sdcard/system.log
示例:将系统日志保存到设备上的system.log文件中。
adb shell logcat -f /sdcard/system.log
31.查看特定标签和级别的日志
命令:adb logcat :
示例:显示ActivityManager标签的调试级别日志。
adb logcat ActivityManager:D
32.过滤包含特定文本的日志
命令:adb logcat | grep " "
示例:过滤包含"START"文本的日志。
adb logcat | grep "START"
33.查看系统服务的状态
命令:adb shell dumpsys
示例:查看窗口管理器的状态。
adb shell dumpsys window
34.生成设备错误报告(部分报告)
命令:adb bugreport > bugreport_partial.txt
示例:生成设备的部分错误报告并保存到本地文件。
adb bugreport > bugreport_partial.txt
35.清空日志缓冲区
命令:adb logcat -c
示例:清空系统主缓冲区的日志。
adb logcat -c main
36.查看设备日志
命令:adb logcat
示例:过滤并显示包含“MyApp”的日志信息。
adb logcat | grep MyApp
37.截屏
命令:adb shell screencap <output_file>
示例:在设备上截屏并保存到SD卡中。
adb shell screencap /sdcard/screenshot.png
38.录制屏幕
命令:adb shell screenrecord <output_file>
示例:开始录制屏幕并保存到SD卡中。注意,screenrecord 开开始后会一直后台录屏,且没有暂停/结束的对应命令;需要结束录制,要么关闭 adb shell 会话,要么通过 Ctrl+C 来中断该命令。这将会停止屏幕录制。或者直接如第39条,设置录制时长。
adb shell screenrecord /sdcard/demo.mp4
39.设置录制时长
命令:--time-limit
示例:录制30秒。
adb shell screenrecord --time-limit 30 /sdcard/demo.mp4
五、设备控制与交互
1.模拟旋转屏幕
命令:adb shell settings put system user_rotation。
示例: 0=竖屏,1=横屏,2=倒竖,3=倒横屏。需要先关闭自动旋转功能。
::切换屏幕方向 adb shell settings put system user_rotation 0 adb shell settings put system user_rotation 1 adb shell settings put system user_rotation 2 adb shell settings put system user_rotation 3
2.查询屏幕方向
命令:adb shell settings get system user_rotation
示例:0=竖屏,1=横屏,3=倒横屏,2=倒竖
adb shell settings get system user_rotation
3.模拟音量增减
命令:adb shell input keyevent VOLUME_UP 或 VOLUME_DOWN
示例:模拟增加或减少音量。
adb shell input keyevent VOLUME_UP adb shell input keyevent VOLUME_DOWN
4.模拟滑动屏幕
命令:adb shell input swipe <x1> <y1> <x2> <y2> [duration(ms)]
示例:从坐标(100,500)滑动到(400,500),持续时间为1秒。
adb shell input swipe 100 500 400 500 1000
5.模拟长按屏幕
命令:adb shell input swipe <x> <y> <x> <y> [duration(ms)]
示例:在坐标(200,300)处长按3秒。
adb shell input swipe 200 300 200 300 3000
6.模拟点击屏幕
命令:adb shell input tap <x> <y>
示例:点击屏幕坐标(300,400)处。
adb shell input tap 300 400
7.模拟多点触控
命令:adb shell input multitouch <event>
示例:模拟两个触摸点。
adb shell input multitouch simulate -d 10 -t 1 300 400 0 -t 2 500 600 0
8.发送文本到设备
命令:adb shell input text <string>
示例:在设备上输入"Hello World"。
adb shell input text "Hello World" adb shell input text "Hello\ World" #空格可能需要转义
9.模拟电源键操作
命令:adb shell input keyevent POWER
示例:模拟按下电源键。
adb shell input keyevent POWER
10.模拟菜单键操作
命令:adb shell input keyevent MENU
示例:模拟按下菜单键(部分设备已废弃)。
adb shell input keyevent MENU
11.模拟返回键操作
命令:adb shell input keyevent BACK
示例:模拟按下返回键。
adb shell input keyevent BACK
12.模拟HOME键操作
命令:adb shell input keyevent HOME
示例:模拟按下HOME键。
adb shell input keyevent HOME
13.模拟搜索键操作
命令:adb shell input keyevent SEARCH
示例:模拟按下搜索键(部分设备已废弃)。
adb shell input keyevent SEARCH
14.模拟返回键操作
命令:adb shell input keyevent 4
示例:模拟按下返回键。
adb shell input keyevent 4
15.模拟菜单键操作
命令:adb shell input keyevent 82(注意:部分新设备可能不支持菜单键)
示例:模拟按下菜单键。
adb shell input keyevent 82
16.模拟相机键操作
命令:adb shell input keyevent 26(注意:部分设备可能不支持)
示例:模拟按下相机快门键。
adb shell input keyevent 26
17.切换自动旋转的打开关闭
命令:adb shell settings put system accelerometer_rotation
示例:0=禁止旋转,1=自动旋转
adb shell settings put system accelerometer_rotation 0 adb shell settings put system accelerometer_rotation 1
18.模拟屏幕截图并保存到指定位置
命令:screencap
示例:通过ADB命令截取屏幕截图并保存到设备上的指定位置。
adb shell screencap /sdcard/custom_screenshot.png
19.模拟开启/关闭勿扰模式
命令:通过ADB命令切换设备的勿扰模式状态。
示例:1 开启,0 关闭
adb shell settings put global zen_mode 1 # 开启勿扰模式 adb shell settings put global zen_mode 0 # 关闭勿扰模式
20.模拟屏幕亮度调节
命令:adb shell settings put system screen_brightness <value>(0-255)
示例:将屏幕亮度设置为中等。
adb shell settings put system screen_brightness 128
21.模拟屏幕超时设置
命令:adb shell settings put system screen_off_timeout <value>(毫秒)
示例:设置屏幕超时为30秒。
adb shell settings put system screen_off_timeout 30000
22.模拟打开通知栏
命令:adb shell input swipe <x1> <y1> <x2> <y2>(根据设备屏幕坐标调整)
示例:模拟从屏幕顶部向下滑动以打开通知栏。
adb shell input swipe 250 1500 250 500
23.模拟关闭通知栏
命令:adb shell input swipe <x1> <y1> <x2> <y2>(根据设备屏幕坐标调整)
示例:模拟从屏幕底部向上滑动以关闭通知栏。
adb shell input swipe 250 500 250 1500
24.模拟更改系统语言
命令:通过ADB命令更改设备的系统语言。
示例:设置为中文,置为国家代码为中国
adb shell setprop persist.sys.language zh # 设置为中文 adb shell setprop persist.sys.country CN # 设置为国家代码为中国
25.模拟挂断电话
命令:模拟挂断当前通话。
示例:注意:此方法可能因设备而异,且可能中断电话服务
adb shell am force-stop com.android.phone
26.模拟调整扬声器音量
命令:通过ADB命令调整设备的扬声器音量。
示例:使用media命令调整音量(需要root权限)。
adb shell su -c "media volume set 2 15" # 将铃声音量设置为15(范围可能因设备而异,2代表铃声音量类型) adb shell su -c "media volume set 2 15" # 将铃声音量设置为15(范围可能因设备而异,2代表铃声音量类型)
27.打开相机应用
命令:通过ADB命令打开相机应用。
示例:启动相机应用(com.android.camera)一次。
adb shell monkey -p com.android.camera -c android.intent.category.LAUNCHER 1
28.打开设置应用
命令:通过ADB命令打开设置应用。
示例:adb shell am start -n com.android.settings/.Settings
adb shell am start -n com.android.settings/.Settings
29.模拟打开特定设置页面
命令:通过ADB命令直接打开设备的特定设置页面。
示例:打开显示和亮度设置页面(具体Activity名可能因设备和Android版本而异)。
adb shell am start -a android.settings.DISPLAY_SETTINGS
30.调整屏幕亮度
命令:通过ADB命令调整设备屏幕亮度。
示例:最大亮度,值范围为0-255
adb shell settings put system screen_brightness 255
31.打开最近任务列表
命令:模拟打开Android设备的最近任务列表。
示例:(注意:keyevent代码可能因设备而异)
adb shell input keyevent RECENTAPPS
32.模拟调整屏幕常亮时间
命令:通过ADB命令调整设备的屏幕常亮时间。
示例: 设置为10分钟(600000毫秒)
adb shell settings put system screen_off_timeout 600000
33.关闭当前应用
命令:通过ADB命令关闭当前前台应用。
示例:替换<package_name>为应用包名
adb shell am force-stop <package_name>
34.模拟打开拨号盘
命令:通过ADB命令直接打开拨号盘应用。
示例:使用am命令启动拨号盘的Activity。
adb shell am start -t text/plain -d tel: -a android.intent.action.DIAL com.android.phone/.DialtactsActivity
35.打开指定网址
命令:通过ADB命令在设备的默认浏览器中打开指定网址。
示例:在浏览器中打开百度首页。
adb shell am start -a android.intent.action.VIEW -d "http://www.baidu.com"
36.模拟电源按钮
命令:模拟点击电源按钮。
示例:使用input keyevent命令。
adb shell input keyevent 26
37.模拟发送SMS
命令:通过ADB命令发送SMS消息。
示例:使用sms命令发送短信(需要设备已root,且可能因设备而异)。
adb shell su -c "sms send 1234567890 'Hello from ADB!'" # 发送短信到1234567890
38.打开拨号界面
命令:通过ADB命令打开拨号界面。
示例:
adb shell am start -t text/plain -d "tel:" -a android.intent.action.DIAL
39.发送短信
命令:通过ADB命令发送短信(需要设备root权限)。
示例:替换<phone_number>为电话号码
adb shell sms send <phone_number> "Hello"
40.模拟切换飞行模式
命令:通过ADB命令切换设备的飞行模式状态。
示例:1 开启飞行模式,0 关闭飞行模式
adb shell settings put global airplane_mode_on 1 adb shell settings put global airplane_mode_on 0
41.模拟挂断电话
命令:模拟挂断当前通话的操作。
示例:同样通过service call命令实现(需要root权限)。
adb shell su -c "service call phone 1"
42.打开语音助手
命令:通过ADB命令打开设备的语音助手。
示例:(Google设备示例)
adb shell am start -n com.google.android.googlequicksearchbox/com.google.android.launcher3.VoiceSearchActivity
43.打开文件管理器
命令:通过ADB命令打开文件管理器应用。
示例:部分设备支持
adb shell am start -n com.android.documentsui/.DocumentsActivity
44.模拟接听电话
命令:模拟接听来电的操作。
示例:通过service call命令模拟接听电话(需要root权限)。
adb shell su -c "service call phone 2"
45.打开日历应用
命令:通过ADB命令打开日历应用。
示例:部分设备支持
adb shell am start -n com.android.providers.calendar/.CalendarActivity
46.模拟打开相机应用
命令:通过ADB命令直接打开相机应用。
示例:使用am命令启动相机应用的Activity。
adb shell am start -n com.android.camera/.CameraActivity
六、高级用法
1.重启设备
命令:adb reboot
示例:重启设备。
adb reboot
2.重启到Bootloader模式
命令:adb reboot bootloader
示例:将设备重启到Bootloader模式。
adb reboot bootloader
3.重启到Recovery模式
命令:adb reboot recovery
示例:将设备重启到Recovery模式。
adb reboot recovery
4.手动安装OTA更新包
命令:adb sideload <file.zip>
示例:在Recovery模式下手动安装OTA更新包。
adb sideload update.zip
5.备份设备数据
命令:adb backup -f <backup_file> <package_name>
示例:备份指定应用的数据。
adb backup -f my_backup.ab com.example.myapp
6.恢复设备数据
命令:adb restore <backup_file>
示例:从备份文件中恢复数据。
adb restore my_backup.ab
7.查看设备日志缓冲区
命令:adb logcat -b <buffer_name>
示例:查看radio缓冲区的日志。
adb logcat -b radio
8.查看设备当前运行的进程
命令:adb shell ps
示例:查看包含"myapp"的进程。
adb shell ps | grep myapp
9.将文件从设备复制到本地并保留权限
命令:adb pull -p <remote_file> <local_dir>
示例:保留权限地复制文件。
adb pull -p /sdcard/myfile.txt C:\Users\User\Desktop\
10.将本地文件复制到设备并保留权限
命令:adb push -p <local_file> <remote_dir>
示例:保留权限地复制文件。
adb push -p C:\Users\User\Desktop\myfile.txt /sdcard/
11.查看设备上的所有服务
命令:adb shell service list
示例:查看包含"myservice"的服务。
adb shell service list | grep myservice
12.查看设备上的所有广播接收器
命令:adb shell dumpsys activity broadcasts
示例:查看包含"myreceiver"的广播接收器。
adb shell dumpsys activity broadcasts | grep myreceiver
13.进入Fastboot模式(命令行方式)
命令:adb reboot bootloader(部分设备可能需要手动按键组合)
示例:通过ADB命令将设备重启到Fastboot模式。
adb reboot bootloader
14.退出Fastboot模式
命令:在Fastboot模式下执行fastboot reboot
示例:从Fastboot模式重启设备回到正常系统。
fastboot reboot
15.查看设备序列号(Fastboot模式)
命令:fastboot boot boot boot.img(非直接查询,但展示Fastboot用法)
示例前说明:虽然此命令用于刷写boot分区,但fastboot getvar serialno可用于查询序列号。
fastboot boot boot boot.img
16.刷写Recovery镜像
命令:fastboot boot recovery recovery.img
示例:将自定义Recovery镜像刷写到设备。
fastboot boot recovery recovery.img
17.刷写Boot镜像
命令:fastboot boot boot_a boot_a.img(或boot_b,根据设备分区)
示例:将自定义Boot镜像刷写到设备。
fastboot boot boot_a boot_a.img
18.格式化Data分区
命令:fastboot format data(警告:此操作将清除所有数据)
示例:在Fastboot模式下格式化Data分区。
fastboot format data
19.查看设备分区信息
命令:fastboot boot boot_a get_boot_a boot_info.txt(非标准命令,但fastboot boot可查看分区)
示例前说明:使用fastboot list-partitions查看设备所有分区。
fastboot boot boot_a get_boot_a boot_info.txt
20.解锁Bootloader(注意:此操作可能违反设备保修条款,且需要特定解锁工具或权限)
命令:fastboot oem unlock(或fastboot booting unlock,根据设备)
示例:解锁设备的Bootloader。
fastboot oem unlock
21.重新锁定Bootloader(同样可能违反保修条款)
命令:fastboot oem lock(或fastboot booting lock,根据设备)
示例:重新锁定设备的Bootloader。
fastboot oem lock
22.检查Bootloader状态
命令:fastboot oem get-bootloader-unlock-state
示例前说明:检查Bootloader是否已解锁。
fastboot oem get-bootloader-unlock-state
23.查看设备MAC地址(所有网络接口)
命令:adb shell cat /sys/class/net/*/address
示例:列出设备上所有网络接口的MAC地址。
adb shell cat /sys/class/net/*/address
24.修改设备时间
命令:adb shell date -s "YYYY-MM-DD HH:MM:SS"
示例:设置设备时间为指定日期和时间。
adb shell date -s "2023-10-01 12:00:00"
25.查看设备唤醒源
命令:adb shell dumpsys power | grep "WakeLock"
示例:显示当前保持设备唤醒的WakeLock信息。
adb shell dumpsys power | grep "WakeLock"
26.查看设备屏幕分辨率
命令:adb shell wm size
示例:显示设备的屏幕分辨率。
adb shell wm size
27.修改设备屏幕密度
命令:adb shell wm density <dpi>
示例:将屏幕密度设置为480 DPI。
adb shell wm density 480
28.查看特定应用的签名证书指纹
命令:adb shell pm signapk -v -print-certs <apk_path>(注意:此命令在较新版本中可能已更改或不再支持,需根据实际情况调整)
示例:查看指定APK文件的签名证书指纹。
adb shell pm signapk -v -print-certs <apk_path>
29.查看系统属性
命令:adb shell getprop <property_name>
示例:获取设备型号。
adb shell getprop ro.product.model
30.设置系统属性(注意:修改系统属性可能需要root权限,且可能引发设备问题)
命令:adb shell setprop <property_name> <value>
示例:设置HWUI渲染线程数为4(需root)。
adb shell setprop debug.hwui.render_thread_count 4
31.查看设备磁盘使用情况
命令:adb shell df -h
示例:以人类可读格式显示设备磁盘使用情况。
adb shell df -h
32.查看设备挂载点信息
命令:adb shell mount
示例:列出设备的挂载点信息。
adb shell mount
33.卸载系统应用(注意:卸载系统应用可能需要root权限,且可能引发设备问题)
命令:adb shell pm uninstall -k --user 0 <package_name>
示例:卸载系统浏览器应用(需root)。
adb shell pm uninstall -k --user 0 com.android.browser
34.查看设备服务列表
命令:adb shell service list
示例:列出设备上运行的所有服务。
adb shell service list
35.发送广播
命令:adb shell am broadcast -a <action>
示例:发送自定义广播。
adb shell am broadcast -a com.example.ACTION_TEST
36.启动Activity
命令:adb shell am start -n <package_name>/<activity_name>
示例:启动指定应用的MainActivity。
adb shell am start -n com.example.myapp/.MainActivity
37.查看设备SELinux状态
命令:adb shell getenforce
示例:显示设备的SELinux强制模式状态(Enforcing、Permissive或Disabled)。
adb shell getenforce
38.更改设备SELinux模式(注意:此操作可能需要root权限,且可能引发安全问题)
命令:adb shell setenforce <mode>
示例:,将SELinux模式设置为Permissive(需root)。
adb shell setenforce 0
39.查看设备电池状态
命令:adb shell dumpsys battery
示例:显示设备的电池状态信息,包括电量、温度等。
adb shell dumpsys battery
40.查看设备Wi-Fi状态
命令:adb shell svc wifi show_wifi_state
示例:显示设备的Wi-Fi连接状态。
adb shell svc wifi show_wifi_state
41.启用或禁用飞行模式
命令:adb shell settings put global airplane_mode_on <value>( 为0表示禁用,1表示启用)
示例:启用飞行模式。
adb shell settings put global airplane_mode_on 1
42.查看设备传感器列表
命令:adb shell sensor list
示例:列出设备上可用的传感器。
adb shell sensor list
43.查看设备键盘布局
命令:adb shell getprop ro.hardware.keyboard
示例:获取设备的键盘布局信息。
adb shell getprop ro.hardware.keyboard
44.修改设备铃声
命令:adb push <local_ringtone_file> /sdcard/media/audio/ringtones/(然后可在设备上设置)
示例:将本地铃声文件推送到设备并设置为铃声。
adb push C:\Users\YourUsername\Desktop\myringtone.mp3 /sdcard/media/audio/ringtones/
45.查看设备相机信息
命令:adb shell cat /proc/mounts | grep /dev/block/platform(结合其他命令分析,非直接获取相机信息)
示例:结合分析命令查看设备上的相机挂载信息(需进一步处理以获取详细信息)。
adb shell cat /proc/mounts | grep /dev/block/platform
46.查看设备NFC状态
命令:adb shell dumpsys nfc(注意:此命令在支持NFC的设备上可用)
示例:显示设备的NFC服务状态和信息。
adb shell dumpsys nfc
47.获取设备内存信息
命令:adb shell cat /proc/meminfo
示例:查看设备的内存使用情况,包括总内存、可用内存等。
adb shell cat /proc/meminfo
48.查看设备CPU架构
命令:adb shell uname -m
示例:获取设备的CPU架构类型,如armv7l、aarch64等。
adb shell uname -m
49.列出设备上的所有进程
命令:adb shell ps
示例:列出设备上当前运行的所有进程及其相关信息。
adb shell ps
50.查看指定进程的详细信息
命令:adb shell cat /proc/<pid>/status
示例:查看PID为1234的进程的详细信息。
adb shell cat /proc/1234/status
51.获取设备内核版本
命令:adb shell uname -r
示例:获取设备当前运行的内核版本号。
adb shell uname -r
52.检查SELinux状态
命令:adb shell getenforce
示例:查看SELinux的当前状态,如Enforcing、Permissive等。
adb shell getenforce
53.更改SELinux模式
命令:adb shell setenforce <mode>(需root权限)
示例:将SELinux设置为Permissive模式。
adb shell setenforce 0
54.查看设备上的所有环境变量
命令:adb shell printenv
示例:列出设备上当前设置的所有环境变量。
adb shell printenv
55.设置环境变量
命令:adb shell export <variable>=<value>
示例:adb shell export MY_VAR=hello,设置环境变量MY_VAR的值为hello。
adb shell export MY_VAR=hello
56.查看设备上的文件系统挂载情况
命令:adb shell mount
示例:列出设备上当前挂载的所有文件系统。
adb shell mount
57.卸载指定的文件系统
命令:adb shell umount <mount_point>(需root权限)
示例:adb shell umount /sdcard,卸载SD卡文件系统。
adb shell umount /sdcard
58.查看设备上的所有网络接口配置
命令:adb shell ip addr
示例:列出设备上所有网络接口的配置信息。
adb shell ip addr
59.更改设备的网络配置
命令:adb shell ifconfig <interface> <ip_address>(需root权限)
示例:adb shell ifconfig wlan0 192.168.1.100,将WLAN接口的IP地址更改为192.168.1.100。
adb shell ifconfig wlan0 192.168.1.100
60.查看设备的路由表
命令:adb shell route -n
示例:列出设备上的路由表信息。
adb shell route -n
61.添加静态路由
命令:adb shell route add <network> gw <gateway>(需root权限)
示例:添加一条静态路由。
adb shell route add 192.168.2.0/24 gw 192.168.1.1
62.查看设备的DNS配置
命令:adb shell cat /etc/resolv.conf
示例:查看设备上当前设置的DNS服务器地址。
adb shell cat /etc/resolv.conf
63.启用或禁用应用组件
命令:adb shell pm enable <component> 或 adb shell pm disable <component>
示例:禁用指定应用的Activity组件。
adb shell pm disable com.example.myapp/.MainActivity
64.查看设备的系统属性
命令:adb shell getprop
示例:列出设备上当前设置的所有系统属性。
adb shell getprop
65.设置系统属性
命令:adb shell setprop <property>=<value>(需root权限)
示例:禁用硬件加速的脏区域渲染。
adb shell setprop debug.hwui.render_dirty_regions false
66.查看设备的Android ID
命令:adb shell settings get secure android_id
示例:获取设备的唯一Android ID。
adb shell settings get secure android_id
67.查看设备的Build指纹
命令:adb shell getprop ro.build.fingerprint
示例:获取设备的Build指纹信息,用于识别设备型号和Android版本。
adb shell getprop ro.build.fingerprint
68.清除应用数据
命令:adb shell pm clear <package_name>
示例:清除指定应用的所有数据。
adb shell pm clear com.example.myapp
七、系统信息与状态查询
1.获取设备信息
命令:adb shell getprop
示例:获取设备的Android版本信息。
adb shell getprop ro.build.version.release
2.查看设备序列号
命令:adb get-serialno
示例:直接运行命令,获取当前连接设备的序列号。
adb get-serialno
3.查看设备状态
命令:adb shell dumpsys
示例:查看电池状态信息。
adb shell dumpsys battery
4.CPU与架构信息
adb shell cat /proc/cpuinfo:查看CPU的详细信息。
示例:显示CPU的架构、核心数、型号等信息。
adb shell cat /proc/cpuinfo
adb shell getprop ro.product.cpu.abi:获取设备的主要CPU架构。
示例:返回如arm64-v8a、armeabi-v7a或x86等架构信息。
adb shell getprop ro.product.cpu.abi
5.查看设备型号
命令:adb shell getprop ro.product.model
示例:返回设备的型号信息,如“Pixel 6”。
adb shell getprop ro.product.model
6.获取设备制造商的序列号
命令:adb shell getprop ro.serialno
示例:返回设备的序列号。
adb shell getprop ro.serialno
7.查看设备品牌
命令:adb shell getprop ro.product.brand
示例:返回设备品牌,如“Google”。
adb shell getprop ro.product.brand
8.获取设备硬件名称
命令:adb shell getprop ro.hardware
示例:返回设备硬件名称。
adb shell getprop ro.hardware
9.查看设备指纹信息
命令:adb shell getprop ro.build.fingerprint
示例:返回设备的指纹信息,用于唯一标识设备。
adb shell getprop ro.build.fingerprint
10.获取设备的基带版本
命令:adb shell getprop ro.build.version.baseband
示例:返回基带版本信息。
adb shell getprop ro.build.version.baseband
11.查看设备是否已root
命令:adb shell su -c whoami
示例:若返回“root”,则设备已root。
adb shell su -c whoami
12.获取设备充电状态
命令:adb shell dumpsys battery | grep "mPlugged"
示例:返回充电状态,如“true”表示正在充电。
adb shell dumpsys battery | grep "mPlugged"
13.查看设备电池健康度
命令:adb shell dumpsys batterystats | grep "health"(需root)
示例:返回电池健康度信息(部分设备可能不支持)。
adb shell dumpsys batterystats | grep "health"
14.获取设备当前运行的任务
命令:adb shell dumpsys activity activities | grep -E "mResumedActivity|mFocusedActivity"
示例:返回当前运行的任务信息。
adb shell dumpsys activity activities | grep -E "mResumedActivity|mFocusedActivity"
15.查看设备上的传感器列表
命令:adb shell cat /sys/class/hwmon/hwmon*/name
示例:列出设备上的传感器名称。
adb shell cat /sys/class/hwmon/hwmon*/name
16.获取设备上的所有文件系统
命令:adb shell cat /proc/mounts
示例:显示设备上的所有文件系统及其挂载点。
adb shell cat /proc/mounts
17.查看设备内核启动参数
命令:adb shell cat /proc/cmdline
示例:返回内核启动参数。
adb shell cat /proc/cmdline
18.获取设备上的SELinux状态
命令:adb shell getenforce
示例:返回SELinux的当前状态,如“Enforcing”、“Permissive”等。
adb shell getenforce
19.查看设备是否支持SELinux
命令:adb shell cat /sys/fs/selinux/enforce
示例:返回SELinux是否启用。
adb shell cat /sys/fs/selinux/enforce
20.获取设备上的进程ID(PID)和名称映射
命令:adb shell cat /proc/[pid]/cmdline(需替换[pid]为具体进程ID)
示例:查看进程ID为1234的进程命令行。
adb shell cat /proc/1234/cmdline
21.查看设备上的正在运行的服务
命令:adb shell service list(部分设备可能不支持)
示例:列出正在运行的系统服务。
adb shell service list
22.查看设备上的所有用户信息
命令:adb shell getprop | grep user
示例:列出与用户相关的信息,如当前用户ID等。
adb shell getprop | grep user
23.获取设备上的触摸屏校准信息
命令:adb shell getevent -pl(需手动触发触摸事件以查看)
示例:运行命令后,手动触摸屏幕以查看触摸屏校准信息。
adb shell getevent -pl
24.查看设备上的USB配置信息
命令:adb shell cat /sys/bus/platform/devices/ci_hdrc.0/role
示例:返回USB配置信息,如“gadget”表示设备模式。(路径可能因设备而异)
adb shell cat /sys/bus/platform/devices/ci_hdrc.0/role
25.查看设备上的GPS状态
命令:adb shell dumpsys location | grep "GpsStatus"
示例:返回GPS状态信息。
adb shell dumpsys location | grep "GpsStatus"
26.获取设备上的Wi-Fi直连(Wi-Fi Direct)状态
命令:adb shell dumpsys wifip2p | grep "P2pState"
示例:返回Wi-Fi直连状态。
adb shell dumpsys wifip2p | grep "P2pState"
27.查看设备上的蓝牙状态
命令:adb shell dumpsys bluetooth_manager | grep "AdapterState"
示例:返回蓝牙适配器状态。
adb shell dumpsys bluetooth_manager | grep "AdapterState"
28.获取设备上的热插拔事件日志
命令:adb shell dmesg | grep "usb"
示例:列出与USB热插拔相关的事件日志。
adb shell dmesg | grep "usb"
29.获取设备构建ID
命令:adb shell getprop ro.build.id
示例:了解设备的构建ID信息。
adb shell getprop ro.build.id
30.查看设备构建类型
命令:adb shell getprop ro.build.type
示例:判断设备是用户版(user)还是工程版(eng)等。
adb shell getprop ro.build.type
31.获取设备标签
命令:adb shell getprop ro.build.tags
示例:了解设备构建时的标签信息,如release-keys等。
adb shell getprop ro.build.tags
32.查看设备指纹
命令(不同于之前的指纹命令,提供更详细信息):adb shell getprop ro.build.description
示例:获取设备的完整指纹信息,包括品牌、型号、Android版本等。
adb shell getprop ro.build.description
33.获取设备内存信息
命令:adb shell cat /proc/meminfo
示例:了解设备的总内存、可用内存等详细信息。
adb shell cat /proc/meminfo
34.查看设备CPU信息
命令:adb shell cat /proc/cpuinfo
示例:获取设备的CPU型号、核心数、频率等。
adb shell cat /proc/cpuinfo
35.获取设备磁盘使用情况
命令:adb shell df -h
示例:了解设备各分区的磁盘使用情况。
adb shell df -h
36.查看设备挂载点
命令:adb shell mount
示例:获取设备的挂载点信息,了解文件系统的挂载状态。
adb shell mount
37.列出设备上的所有应用
命令:adb shell pm list packages
示例:列出设备上安装的所有应用包名。
adb shell pm list packages
38.列出系统应用
命令:adb shell pm list packages -s
示例:专门列出系统级别的应用。
adb shell pm list packages -s
39.列出第三方应用
命令:adb shell pm list packages -3
示例:列出非系统级别的第三方应用。
adb shell pm list packages -3
40.查看应用的详细信息
命令:adb shell dumpsys package <package_name>
示例:获取指定应用的详细信息,如签名、权限等。
adb shell dumpsys package <package_name>
41.清除应用数据
命令:adb shell pm clear <package_name>
示例:清除指定应用的所有数据。
adb shell pm clear <package_name>
42.查看当前活动的窗口
命令:adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
示例:获取当前活动的窗口或应用信息。
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'
43.获取设备的Bootloader状态
命令:adb reboot bootloader(需配合手动操作查看状态)
示例:重启设备进入Bootloader模式,然后查看Bootloader界面信息。
adb reboot bootloader
44.查看设备的Recovery状态
命令:adb reboot recovery(需配合手动操作查看状态)
示例:重启设备进入Recovery模式,然后查看Recovery界面信息。
adb reboot recovery
45.查看设备制造商的序列号
命令:adb shell getprop ro.serialno
示例:获取设备的序列号,用于设备识别或售后。
adb shell getprop ro.serialno
46.获取设备的硬件抽象层版本
命令:adb shell getprop ro.hardware.abi
示例:了解设备的硬件抽象层版本,有助于确定兼容性。
adb shell getprop ro.hardware.abi
47.获取设备的基带版本
命令:adb shell getprop ro.baseband.version
示例:了解设备的基带版本,有助于解决通信问题。
adb shell getprop ro.baseband.version
48.查看设备的内核版本
命令:adb shell uname -r
示例:获取设备的内核版本,有助于了解设备的底层架构。
adb shell uname -r
49.获取设备的Bootloader版本
命令:adb shell getprop ro.bootloader
示例:了解设备的Bootloader版本,有助于进行固件升级或恢复。
adb shell getprop ro.bootloader
50.查看设备的无线电版本
命令:adb shell getprop ro.radio.version
示例:获取设备的无线电版本,有助于解决网络问题。
adb shell getprop ro.radio.version
51.获取设备的系统目录
命令:adb shell getprop ro.system
示例:了解设备的系统目录路径,有助于进行文件管理。
adb shell getprop ro.system
52.查看设备的存储路径
命令:adb shell getprop ro.data
示例:获取设备的用户数据存储路径。
adb shell getprop ro.data
53.获取设备的缓存路径
命令:adb shell getprop ro.cache
示例:了解设备的缓存目录路径,有助于进行缓存管理。
adb shell getprop ro.cache
54.查看设备的屏幕物理尺寸
命令:adb shell wm size(无需root,但仅显示当前设置)
示例(非直接获取物理尺寸,但可辅助):通过对比当前设置与设备规格了解屏幕物理尺寸。
adb shell wm size
55.查看设备的触摸屏固件版本
命令:adb shell cat /sys/class/input/input*/properties | grep 'Firmware Version'
示例:获取触摸屏固件版本,有助于解决触摸问题。
adb shell cat /sys/class/input/input*/properties | grep 'Firmware Version'
56.查看设备的充电状态
命令:adb shell dumpsys battery | grep 'AC powered'
示例:判断设备是否正在充电。
adb shell dumpsys battery | grep 'AC powered'
57.获取设备的USB充电模式
命令:adb shell dumpsys battery | grep 'USB charge mode'
示例:了解设备是否处于USB充电模式。
adb shell dumpsys battery | grep 'USB charge mode'
58.查看设备的网络状态
命令:adb shell dumpsys connectivity
示例:获取设备的网络连接状态、IP地址等信息。
adb shell dumpsys connectivity
59.查看设备的蓝牙状态
命令:adb shell dumpsys bluetooth_manager
示例:获取蓝牙连接状态、配对设备等信息。
adb shell dumpsys bluetooth_manager
60.获取设备的传感器列表
命令:adb shell getprop ro.hardware.sensorlist
示例:了解设备支持的传感器类型。
adb shell getprop ro.hardware.sensorlist
61.获取设备的屏幕超时设置
命令:adb shell settings get system screen_off_timeout
示例:了解屏幕在无操作后多久自动关闭。
adb shell settings get system screen_off_timeout
62.获取设备的日期和时间设置
命令:adb shell date
示例:了解设备的当前日期和时间设置。
adb shell date
63.查看设备的时区设置
命令:adb shell getprop persist.sys.timezone
示例:获取设备当前的时区设置。
adb shell getprop persist.sys.timezone
64.获取设备的语言设置
命令:adb shell getprop persist.sys.language
示例:了解设备的系统语言设置。
adb shell getprop persist.sys.language
65.查看设备的国家和地区设置
命令:adb shell getprop persist.sys.country
示例:获取设备设置的国家和地区代码。
adb shell getprop persist.sys.country
66.获取设备的后台进程限制设置
命令:adb shell settings get global background_process_limit
示例:了解设备对后台进程的限制策略。
adb shell settings get global background_process_limit
八、应用启动与停止
1.清除应用数据
命令:adb shell pm clear <package_name>
示例:清除指定应用的数据。
adb shell pm clear com.example.myapp
2.查看应用安装路径
命令:adb shell pm path <package_name>
示例:查看指定应用的安装路径。
adb shell pm path com.example.myapp
3.启动应用的某个服务
命令:adb shell am startservice -n <package_name>/<service_name>
示例:启动指定应用的服务。
adb shell am startservice -n com.example.myapp/.MyService
4.停止应用的某个服务
命令:adb shell am stopservice -n <package_name>/<service_name>
示例:停止指定应用的服务。
adb shell am stopservice -n com.example.myapp/.MyService
5.发送广播到应用
命令:adb shell am broadcast -a <action> -n <package_name>/<receiver_name>
示例:发送广播到指定应用的接收器。
adb shell am broadcast -a com.example.MY_ACTION -n com.example.myapp/.MyBroadcastReceiver
6.查看应用的启动活动
命令:adb shell dumpsys package <package_name> | grep -A 10 "main"
示例:查看指定应用的主活动信息。
adb shell dumpsys package com.example.myapp | grep -A 10 "main"
7.获取应用的签名
命令:adb shell packagemanager get-signatures <package_name>
示例:获取指定应用的签名信息。
adb shell packagemanager get-signatures com.example.myapp
8.查看应用的进程ID
命令:adb shell pidof <package_name>
示例:查看指定应用的进程ID。
adb shell pidof com.example.myapp
9.启动应用(指定Activity并传递数据)
命令:adb shell am start -n <package_name>/<activity_name> --es <key> <value>
示例:启动名为com.example.myapp的应用中的MainActivity,并传递一个名为username的额外字符串数据testuser给该活动。
adb shell am start -n com.example.myapp/.MainActivity --es "username" "testuser"
10.停止应用
命令:adb shell pm clear <package_name>
示例:强制停止并清除缓存
adb shell pm clear com.example.myapp
11.查看应用进程ID
命令:adb shell ps | grep <package_name>
示例:查找并显示与com.example.myapp这个应用相关的进程信息。
adb shell ps | grep com.example.myapp
12.启动服务
命令:adb shell am startservice -n <package_name>/<service_name>
示例:启动名为MyService的服务,该服务位于com.example.myapp这个应用程序包内。
adb shell am startservice -n com.example.myapp/.MyService
13.停止服务
命令:adb shell am stopservice -n <package_name>/<service_name>
示例:停止名为com.example.myapp的应用中的MyService服务。
adb shell am stopservice -n com.example.myapp/.MyService
14.查看应用安装位置
命令:adb shell pm get-install-location
示例:查看当前设备的应用安装位置(内部存储/外部存储)。
adb shell pm get-install-location
15.更改应用安装位置
命令:adb shell pm set-install-location <location>
示例:0=内部存储, 1=外部存储
adb shell pm set-install-location 0 adb shell pm set-install-location 1
16.查看应用权限
命令:adb shell dumpsys package <package_name> | grep -A 10 "requested permissions:"
示例:查看com.example.myapp应用请求的权限及其相关信息,并显示“requested permissions:”之后的10行内容。
adb shell dumpsys package com.example.myapp | grep -A 10 "requested permissions:"
17.启动特定应用的特定Activity并传递数据
命令:adb shell am start -n <package_name>/<activity_name> --es <key> <value>
示例:启动MainActivity并传递user_id为12345的额外数据。
adb shell am start -n com.example.myapp/.MainActivity --es "user_id" "12345"
18.启动应用并传递字符串数组数据 由于ADB命令不直接支持字符串数组传递,但可以通过传递一个由逗号分隔的字符串,然后在Activity中拆分这个字符串。
命令:adb shell am start -n <package_name>/<activity_name> --es <key> <value1>,<value2>,<value3>
示例:启动ListActivity并传递一个由"item1", "item2", "item3"组成的字符串数组。在Activity中,可以通过split方法拆分这个字符串来获取数组。
adb shell am start -n com.example.listapp/.ListActivity --es "items" "item1,item2,item3"
19.启动应用并传递整型数组数据 同样,由于ADB命令不直接支持整型数组传递,可以通过将整型数组转换为JSON字符串后传递。
命令:adb shell am start -n <package_name>/<activity_name> --es <key> <json_array>
示例:启动IntArrayActivity并传递一个整型数组[1, 2, 3]。在Activity中,可以使用Gson等库将JSON字符串反序列化为整型数组。
adb shell am start -n com.example.intarrayapp/.IntArrayActivity --es "int_array" "[1,2,3]"
20.启动应用并传递布尔数组数据 与整型数组类似,布尔数组也可以通过转换为JSON字符串后传递。
命令:adb shell am start -n <package_name>/<activity_name> --es <key> <json_array>
示例:启动BoolArrayActivity并传递一个布尔数组[true, false, true]。在Activity中,同样可以使用Gson等库将JSON字符串反序列化为布尔数组。
adb shell am start -n com.example.boolarrayapp/.BoolArrayActivity --es "bool_array" "[true,false,true]"
21.启动应用并打开存储设置页面
示例:启动系统设置应用并打开存储设置页面。
adb shell am start -a android.settings.STORAGE_SETTINGS
22.启动应用并传递文件内容(通过文件URI)
命令:结合adb push命令将文件推送到设备,然后使用content://或file://URI传递文件路径。
示例:将文件example.txt推送到设备并启动FileViewerActivity查看。在Activity中,可以使用Uri.parse方法解析URI并使用ContentResolver或FileInputStream读取文件内容。
adb push example.txt /sdcard/ adb shell am start -n com.example.fileviewer/.FileViewerActivity --es "file_uri" "file:///sdcard/example.txt"
23.启动应用并模拟用户登录(传递用户名和密码)
示例:启动LoginActivity并传递username为"user123"和password为"pass456"的额外数据。
adb shell am start -n com.example.loginapp/.LoginActivity --es "username" "user123" --es "password" "pass456"
24.启动应用并选择特定选项卡(Tab) 如果应用使用ViewPager或TabLayout实现选项卡功能,可以通过传递一个标识来选择特定的选项卡。这个标识可以是选项卡的索引或ID。
示例:启动MainActivity并选择第二个选项卡(索引为1)。在Activity中,根据传递的tab_index设置ViewPager的当前项。
adb shell am start -n com.example.tabapp/.MainActivity --ei "tab_index" 1
25.启动应用并打开特定Fragment 如果应用使用Fragment来组织界面,可以通过传递一个标识来选择并打开特定的Fragment。
示例:启动MainActivity并打开SettingsFragment。在Activity中,根据传递的fragment_name使用FragmentManager交易并打开指定的Fragment。
adb shell am start -n com.example.fragmentapp/.MainActivity --es "fragment_name" "com.example.fragmentapp.SettingsFragment"
26.启动应用并传递位置信息 位置信息通常包括经度和纬度,可以通过传递两个额外的浮点型数据来实现。
示例:启动MapActivity并传递经度116.397128和纬度39.916527。
adb shell am start -n com.example.mapapp/.MapActivity --ef "longitude" 116.397128 --ef "latitude" 39.916527
27.启动应用并传递联系人信息 联系人信息可以包括姓名、电话号码、电子邮件等,可以通过传递多个额外的字符串数据来实现。
示例:启动ContactActivity并传递姓名"John Doe"、电话号码"1234567890"和电子邮件"john.doe@example.com"。
adb shell am start -n com.example.contactapp/.ContactActivity --es "name" "John Doe" --es "phone" "1234567890" --es "email" "john.doe@example.com"
28.启动应用并传递图片数据(通过内容URI) 如果图片已经存在于设备上,可以通过内容提供者URI传递图片数据。
示例:将图片example.jpg推送到设备并启动ImageViewerActivity查看。在Activity中,使用ContentResolver和BitmapFactory读取并显示图片。
adb push example.jpg /sdcard/ # 假设已经有一个内容提供者可以访问/sdcard/example.jpg adb shell am start -n com.example.imageviewer/.ImageViewerActivity --es "image_uri" "content://com.example.provider/external_files/example.jpg"
29.启动应用并传递音频数据(通过内容URI) 与图片数据类似,音频数据也可以通过内容提供者URI传递。
示例:将音频文件example.mp3推送到设备并启动AudioPlayerActivity播放。在Activity中,使用MediaPlayer或ExoPlayer等播放音频。
adb push example.mp3 /sdcard/ # 假设已经有一个内容提供者可以访问/sdcard/example.mp3 adb shell am start -n com.example.audioplayer/.AudioPlayerActivity --es "audio_uri" "content://com.example.provider/external_files/example.mp3"
30.启动应用并传递视频数据(通过内容URI) 视频数据的传递方式与音频数据类似。
示例:将视频文件example.mp4推送到设备并启动VideoPlayerActivity播放。在Activity中,使用VideoView或ExoPlayer等播放视频。
adb push example.mp4 /sdcard/ # 假设已经有一个内容提供者可以访问/sdcard/example.mp4 adb shell am start -n com.example.videoplayer/.VideoPlayerActivity --es "video_uri" "content://com.example.provider/external_files/example.mp4"
31.启动应用并进入特定页面(如设置页面中的某个子页面) 如果应用有设置页面,并且设置页面中有多个子页面,可以通过传递一个标识来选择特定的子页面。
示例:启动SettingsActivity并进入PrivacySettings子页面。在SettingsActivity中,根据传递的settings_page加载相应的Fragment或启动相应的Activity。
adb shell am start -n com.example.settingsapp/.SettingsActivity --es "settings_page" "PrivacySettings"
32..启动应用并打开显示设置页面
示例:启动系统设置应用并打开显示设置页面。
adb shell am start -a android.settings.DISPLAY_SETTINGS
33.启动应用并传递字符串数据
示例:启动MainActivity并传递一个名为"user_name"的额外字符串数据,值为"JohnDoe"。
adb shell am start -n com.example.app/.MainActivity --es "user_name" "JohnDoe"
34.启动应用并传递布尔值数据
示例:启动SettingsActivity并传递一个名为"is_night_mode"的布尔值数据,值为true。
adb shell am start -n com.example.app/.SettingsActivity --ez "is_night_mode" true
35.启动应用并选择特定Fragment
示例:启动MainActivity并选择显示名为"settings_fragment"的Fragment。 (注意:此方法依赖于Fragment的显式Intent和Fragment标识符)
adb shell am start -n com.example.app/.MainActivity#com.example.app:id/settings_fragment
36.启动应用并传递整型数据
示例:启动ProfileActivity并传递一个名为"age"的整型数据,值为30。
adb shell am start -n com.example.app/.ProfileActivity --ei "age" 30
37.启动应用并传递长整型数据
示例:启动TransactionActivity并传递一个名为"transaction_id"的长整型数据,值为123456789012345。
adb shell am start -n com.example.app/.TransactionActivity --el "transaction_id" 123456789012345
38.启动应用并传递浮点数数据
示例:启动WeatherActivity并传递一个名为"temperature"的浮点数数据,值为25.5。
adb shell am start -n com.example.app/.WeatherActivity --ef "temperature" 25.5
39.启动应用并打开声音设置页面
示例:启动系统设置应用并打开声音设置页面。
adb shell am start -a android.settings.SOUND_SETTINGS
40.启动应用并打开特定页面(通过Deep Linking)
示例:启动浏览器应用并打开指定网页。
adb shell am start -a android.intent.action.VIEW -d "http://www.example.com"
41.启动应用并打开特定页面(通过URI)
示例:启动音乐应用并打开特定歌曲的播放页面。
adb shell am start -d "content://com.example.music.provider/songs/123"
42.启动应用并打开文件选择器
示例:启动文件管理应用并打开文件选择器,预选中一个文件。 (由于ADB限制,通常无法直接预选中文件,但可以通过Intent启动文件选择器)
adb shell am start -t text/plain -d "file:///sdcard/example.txt" -a android.intent.action.GET_CONTENT
43.启动应用并打开相机并直接保存照片
示例:启动相机应用并拍照后直接保存到指定路径(需应用支持)。 (由于安全限制,通常无法直接指定保存路径,但可以通过应用内设置实现)
adb shell am start -n com.example.camera/.CameraActivity --action android.media.action.IMAGE_CAPTURE --es output "/sdcard/photo.jpg"
44.启动应用并打开联系人选择器
示例:启动联系人应用并打开联系人选择器。
adb shell am start -t vnd.android.cursor.dir/contact -a android.intent.action.PICK
45.启动应用并打开位置选择器
示例:启动地图应用并选择特定位置(需应用支持)。 (由于应用差异,具体实现可能不同)
adb shell am start -d "geo:37.7749,-122.4194"
46.启动应用并打开特定设置的Activity
示例:启动系统设置应用并打开Wi-Fi设置页面。
adb shell am start -a android.settings.WIFI_SETTINGS
47.启动应用并模拟发送短信
示例:启动短信应用并模拟发送短信到指定号码(需用户确认)。
adb shell am start -t text/plain -d "smsto:1234567890" --es sms_body "Hello from ADB" -a android.intent.action.SENDTO
48.启动应用并模拟拨打电话
示例:启动拨号应用并模拟拨打电话到指定号码(需用户确认)。
adb shell am start -d "tel:1234567890" -a android.intent.action.CALL
49.启动应用并打开电子邮件客户端
示例:启动电子邮件应用并准备发送邮件到指定地址。
adb shell am start -t text/plain -d "mailto:example@example.com" --es subject "Test Email" --es body "Hello from ADB" -a android.intent.action.SENDTO
50.启动应用并打开浏览器并导航到指定URL
示例:启动浏览器应用并打开指定URL。
adb shell am start -d "http://www.example.com" -a android.intent.action.VIEW
51.启动应用并打开日历并创建事件
示例:启动日历应用并创建一个新事件(需应用支持)。 (由于应用差异,具体实现可能不同,这里仅为概念性示例)
adb shell am start -t text/plain -d "content://com.android.calendar/events" --putExtra "title" "ADB Event" --putExtra "dtstart" "2023-10-01T10:00:00Z" --putExtra "dtend" "2023-10-01T12:00:00Z" -a android.intent.action.INSERT
52.启动应用并打开任务管理器
示例:启动系统任务管理器(部分设备可能不支持)。
adb shell am start -a android.intent.action.VIEW -n com.android.systemui/.RecentTasksActivity
53.启动应用并打开搜索界面
示例:启动全局搜索应用并打开搜索界面。
adb shell am start -a android.intent.action.SEARCH -d "search_query=adb commands"
54.启动应用并打开特定应用的通知设置页面
示例:启动系统设置应用并打开指定应用的通知设置页面。 (需应用支持,且具体实现可能因设备和Android版本而异)
adb shell am start -a android.settings.APP_NOTIFICATION_SETTINGS -d "package:com.example.app"
55.启动应用并打开应用信息页面
示例:启动系统设置应用并打开指定应用的应用信息页面。
adb shell am start -a android.settings.APPLICATION_DETAILS_SETTINGS -d "package:com.example.app"
56.启动应用并模拟分享内容
示例:启动分享对话框并分享文本内容到指定应用。 (需用户选择分享应用)
adb shell am start -t text/plain -d "This is a share test" -a android.intent.action.SEND
57.启动应用并打开蓝牙设置页面
示例:启动系统设置应用并打开蓝牙设置页面。
adb shell am start -a android.settings.BLUETOOTH_SETTINGS
58.启动应用并打开开发者选项页面
示例:启动系统设置应用并打开开发者选项页面(需设备已解锁开发者选项)。
adb shell am start -a android.settings.DEVELOPER_OPTIONS_SETTINGS
59.启动应用并打开电池设置页面
示例:启动系统设置应用并打开电池设置页面。
adb shell am start -a android.settings.BATTERY_SAVER_SETTINGS
九、设备设置与配置
1.设置屏幕亮度
命令:adb shell settings put system screen_brightness <value>
示例:将屏幕亮度设置为最大值。
adb shell settings put system screen_brightness 255
2.设置屏幕超时时间
命令:adb shell settings put system screen_off_timeout <value>
示例:将屏幕超时时间设置为30秒(30000毫秒)。
adb shell settings put system screen_off_timeout 30000
3.修改系统日期和时间
命令:adb shell date <date_string>
示例:将系统日期和时间设置为2023年1月1日12:00:00。
adb shell date 20230101.120000
4.开启/关闭飞行模式
命令:adb shell settings put global airplane_mode_on <0或1>
示例:开启飞行模式。
adb shell settings put global airplane_mode_on 1
5.设置系统语言
命令:adb shell setprop persist.sys.language <language_code> adb shell setprop persist.sys.country <country_code>
示例:将系统语言设置为简体中文。
adb shell setprop persist.sys.language zh adb shell setprop persist.sys.country CN
6.修改音量设置(铃声音量)
命令:adb shell service call audio 3 i32 <volume_level> i32 15
示例:将铃声音量设置为最大。
adb shell service call audio 3 i32 15 i32 15
7.修改音量设置(媒体音量)
命令:adb shell service call audio 9 i32 <volume_level> i32 15
示例:将媒体音量设置为最大。
adb shell service call audio 9 i32 15 i32 15
8.修改音量设置(闹钟音量)
命令:adb shell service call audio 2 i32 <volume_level> i32 15
示例:将闹钟音量设置为最大。
adb shell service call audio 2 i32 15 i32 15
9.设置系统时间格式(24小时制)
命令:adb shell settings put system 24_hour_format <0或1>
示例:设置为24小时制。
adb shell settings put system 24_hour_format 1
10.设置自动旋转屏幕
命令:adb shell settings put system user_rotation
示例:设置为横向旋转。
adb shell settings put system user_rotation 1
11.允许/禁止安装未知来源的应用
命令:adb shell settings put global install_non_market_apps <0或1>
示例:允许安装未知来源的应用。
adb shell settings put global install_non_market_apps 1
12.设置动画缩放(窗口动画缩放)
命令:adb shell settings put system window_animation_scale
示例:将窗口动画缩放设置为0.5倍速。
adb shell settings put system window_animation_scale 0.5
13.设置动画缩放(过渡动画缩放)
命令:adb shell settings put system transition_animation_scale
示例:将过渡动画缩放设置为关闭(0倍速)。
adb shell settings put system transition_animation_scale 0
14.设置动画缩放(动画师时长缩放)
命令:adb shell settings put system animator_duration_scale
示例:将动画师时长缩放设置为2倍速。
adb shell settings put system animator_duration_scale 2
15.启用/禁用开发者选项
命令:adb shell settings put global developer_options_on <0或1>
示例:启用开发者选项。
adb shell settings put global developer_options_on 1
16.设置默认输入法
命令:adb shell ime set <input_method_id>
示例:将默认输入法设置为com.example.inputmethod。
adb shell ime set com.example.inputmethod/.InputMethodActivity
17.清除应用缓存
命令:adb shell pm clear <package_name>
示例:清除com.example.app的缓存。
adb shell pm clear com.example.app
18.强制停止应用 命令:
adb shell am force-stop <package_name>
示例:强制停止com.example.app。
adb shell am force-stop com.example.app
19.禁用应用
命令:adb shell pm disable-user <package_name>
示例:禁用com.example.app。
adb shell pm disable-user com.example.app
20.启用应用
命令:adb shell pm enable <package_name>
示例:启用com.example.app。
adb shell pm enable com.example.app
21.设置系统字体大小
命令:adb shell settings put system font_scale
示例:将系统字体大小设置为1.2倍。
adb shell settings put system font_scale 1.2
22.允许/禁止系统振动
命令:adb shell settings put system haptic_feedback_enabled <0或1>
示例:允许系统振动。
adb shell settings put system haptic_feedback_enabled 1
23.设置自动同步
命令:adb shell settings put account auto_sync <0或1>
示例:开启自动同步。
adb shell settings put account auto_sync 1
24.清除所有应用缓存
命令:adb shell pm clear-all-user-data
示例:清除所有应用缓存。
adb shell pm clear-all-user-data
25.重启设备
命令:adb reboot
示例:重启设备。
adb reboot
26.进入Recovery模式
命令:adb reboot recovery
示例:进入Recovery模式。
adb reboot recovery
27.修改默认闹钟铃声
命令:adb shell am broadcast -a com.android.alarmclock.SET_ALARM --es alarm_time <time_in_ms> --es alarm_label <label> --es alarm_ringtone <ringtone_uri>
示例:设置一个5分钟后响起的闹钟,铃声为自定义铃声。
adb shell am broadcast -a com.android.alarmclock.SET_ALARM --es alarm_time $(($(date +%s) + 300)) --es alarm_label "Morning Alarm" --es alarm_ringtone "content://media/internal/audio/media/123"
28.启用/禁用蓝牙
命令:adb shell svc bluetooth <enable或disable>
示例:启用蓝牙。
adb shell svc bluetooth enable
29.设置WiFi状态
命令:adb shell svc wifi <enable或disable>
示例:禁用WiFi。
adb shell svc wifi disable
30.设置WiFi热点
命令:adb shell tether <interface_name>
示例:将wlan0接口设置为热点。
adb shell tether wlan0
31.修改系统壁纸
命令:adb shell wallpaper set <path_to_image>
示例:将/sdcard/pictures/wallpaper.jpg设置为壁纸。
adb shell wallpaper set /sdcard/pictures/wallpaper.jpg
32.锁定设备
命令:adb shell input keyevent 26
示例:锁定屏幕。
adb shell input keyevent 26
33..设置系统动画缩放比例(统一设置)
命令:adb shell settings put system window_animation_scale <scale> adb shell settings put system transition_animation_scale <scale> adb shell settings put system animator_duration_scale <scale> 示例:将所有动画缩放比例设置为0.5倍速。
adb shell settings put system window_animation_scale 0.5 adb shell settings put system transition_animation_scale 0.5 adb shell settings put system animator_duration_scale 0.5
34.修改系统铃声
命令:adb push <local_ringtone_path> /system/media/audio/ringtones/<ringtone_name>
示例:将local_ringtone.mp3复制到系统铃声目录并命名为new_ringtone.mp3。
adb push local_ringtone.mp3 /system/media/audio/ringtones/new_ringtone.mp3
35.设置默认铃声
命令:adb shell settings put system ringtone <ringtone_uri>
示例:将默认铃声设置为/system/media/audio/ringtones/new_ringtone.mp3。(注意:这里可能需要使用铃声的ID而不是直接路径)
adb shell settings put system ringtone "content://settings/system/ringtone/1"
36.清除系统日志
命令:adb logcat -c
示例:清除当前日志。
adb logcat -c
37.获取系统日志
命令:adb logcat -d > logcat.txt
示例:将系统日志保存到本地文件logcat.txt。
adb logcat -d > logcat.txt
38.设置日期和时间(使用date命令的另一种格式)
命令:adb shell date MMDDhhmm[[CC]YY][.ss]
示例:将日期和时间设置为2023年10月5日14:30。
adb shell date 100514302023
39.修改DNS服务器
命令:adb shell settings put global dns1 <dns_server_1> adb shell settings put global dns2 <dns_server_2>
示例:将DNS服务器设置为8.8.8.8和8.8.4.4。
adb shell settings put global dns1 8.8.8.8 adb shell settings put global dns2 8.8.4.4
40.获取设备信息
命令:adb shell getprop
示例:获取所有设备属性。
adb shell getprop
41.设置屏幕唤醒模式(保持屏幕开启)
命令:adb shell settings put system screen_off_timeout -1
示例:将屏幕超时时间设置为永不超时。
adb shell settings put system screen_off_timeout -1
42.获取应用列表
命令:adb shell pm list packages
示例:列出所有已安装的应用。
adb shell pm list packages
43.卸载应用
命令:adb shell pm uninstall -k <package_name>
示例:卸载并保留数据com.example.app。
adb shell pm uninstall -k com.example.app
44.模拟按键输入
命令:adb shell input keyevent <keycode>
示例:模拟按下电源键。
adb shell input keyevent 26
45.修改系统字体样式
命令(需要root权限并替换字体文件):adb push <local_font_path> /system/fonts/<font_name>
示例:将Roboto-Regular.ttf替换为CustomFont.ttf。
adb push CustomFont.ttf /system/fonts/Roboto-Regular.ttf
46.启用/禁用开发者调试模式
命令(通常通过UI设置,但可以用ADB检查状态):adb shell getprop ro.debuggable
示例:检查设备是否处于调试模式。(返回1表示启用,0表示禁用)
adb shell getprop ro.debuggable
47. .修改系统音量(所有音量统一调整)
命令:adb shell service call audio 2 i32 <volume_level> i32 1
示例:将所有音量设置为最大。(注意:这里的i32 15表示最大音量级别,可能因设备而异)
adb shell service call audio 2 i32 15 i32 1
48.设置系统铃声模式(静音/振动/响铃)
命令:adb shell settings put system ringer_mode <mode>
示例:设置为振动模式(mode值为2)。
adb shell settings put system ringer_mode 2
十、设备性能监控与调试
1.查看CPU使用情况
命令:adb shell top
示例:直接运行命令,查看当前设备的CPU使用情况。
adb shell top
2.查看内存使用情况
命令:adb shell dumpsys meminfo <package_name>
示例:查看指定应用的内存使用情况。
adb shell dumpsys meminfo com.example.myapp
3.查看GPU使用情况
命令:adb shell dumpsys gfxinfo <package_name>
示例:查看指定应用的GPU渲染信息。
adb shell dumpsys gfxinfo com.example.myapp
4.查看CPU使用情况
命令:adb shell top -m 10
示例:查看CPU使用率最高的前10个进程。
adb shell top -m 10
5.查看内存使用情况
命令:adb shell dumpsys meminfo <package_name>
示例:查看指定应用的内存使用情况。
adb shell dumpsys meminfo com.example.myapp
6.查看电池使用情况
命令:adb shell dumpsys batterystats
示例:查看指定应用的电池使用情况。
adb shell dumpsys batterystats | grep com.example.myapp
7.查看GPU渲染信息
命令:adb shell dumpsys gfxinfo <package_name>
示例:查看指定应用的GPU渲染信息。
adb shell dumpsys gfxinfo com.example.myapp
8.查看CPU使用情况
命令:adb shell top -m 10
示例:查看当前CPU使用率最高的前10个进程。
adb shell top -m 10
9.查看内存使用情况
命令:adb shell dumpsys meminfo <package_name>
示例:adb shell dumpsys meminfo com.example.myapp
adb shell dumpsys meminfo com.example.myapp
10.查看电池使用情况
命令:adb shell dumpsys batterystats
示例:查看详细的电池使用统计信息。
adb shell dumpsys batterystats
11.查看网络流量使用情况
命令:adb shell dumpsys netstats
示例:查看设备的网络流量统计信息。
adb shell dumpsys netstats
12.查看GPU使用情况
命令:adb shell dumpsys gfxinfo <package_name>
示例:adb shell dumpsys gfxinfo com.example.myapp
adb shell dumpsys gfxinfo com.example.myapp
13.实时查看系统进程信息
命令:adb shell ps
示例:列出当前设备上运行的所有进程。
adb shell ps
14.查看系统进程树
命令:adb shell pstree
示例:以树状结构显示进程信息。
adb shell pstree
15.监控CPU频率变化
命令:adb shell cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
示例:查看每个CPU核心的当前频率。
adb shell cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
16.查看系统内存使用情况(另一种方式)
命令:adb shell cat /proc/meminfo
示例:查看详细的内存使用情况。
adb shell cat /proc/meminfo
17.监控磁盘I/O使用情况
命令:adb shell iostat
示例:查看磁盘I/O的统计信息(注意:某些设备可能不支持此命令)。
adb shell iostat
18.查看系统负载平均值
命令:adb shell uptime
示例:输出系统自启动以来的运行时间和平均负载。
adb shell uptime
19.监控网络接口的实时流量
命令:adb shell iftop
示例:实时显示网络接口的流量信息(注意:某些设备可能不支持此命令)。
adb shell iftop
20.查看系统进程状态(详细)
命令:adb shell cat /proc/[pid]/status
示例:查看指定进程的详细状态信息。
adb shell cat /proc/[具体PID]/status
21.监控文件系统的使用情况
命令:adb shell df -h
示例:以人类可读的格式显示文件系统的使用情况。
adb shell df -h
22.查看系统日志(实时)
命令:adb logcat
示例:实时查看系统日志信息。
adb logcat
23.查看特定应用的日志
命令:adb logcat | grep <package_name>
示例:查看指定应用的日志信息。
adb logcat | grep com.example.myapp
24.监控应用启动时间
命令:adb shell am start -W -n <package_name>/<activity_name>
示例:查看应用启动时间。
adb shell am start -W -n com.example.myapp/.MainActivity
25.查看应用的ANR(Application Not Responding)日志
命令:adb shell dumpsys activity anr
示例:查看最近发生的ANR日志信息。
adb shell dumpsys activity anr
26.监控应用的FPS(每秒帧数)
命令:adb shell dumpsys SurfaceFlinger --latency <package_name>
示例:监控指定应用的FPS。
adb shell dumpsys SurfaceFlinger --latency com.example.myapp
27.查看系统服务状态
命令:adb shell service list
示例:列出当前系统上运行的所有服务。
adb shell service list
27.监控应用的内存分配情况
命令:adb shell am profile <package_name> start <file_path>
示例:开始监控应用的内存分配情况,并将结果保存到指定文件。
adb shell am profile com.example.myapp start /sdcard/profile.txt
29.查看应用的性能分析报告
命令:adb shell am profile <package_name> stop
示例:停止性能分析并生成报告(通常与上一条命令结合使用)。
adb shell am profile com.example.myapp stop
30.监控应用的垃圾回收情况
命令:adb shell dumpsys gcinfo <package_name>
示例:查看指定应用的垃圾回收日志。
adb shell dumpsys gcinfo com.example.myapp
31.查看系统的电量消耗情况(另一种方式)
命令:adb shell dumpsys power
示例:查看系统的电量消耗和电源管理信息。
adb shell dumpsys power
32.监控应用的电量消耗情况
命令:adb shell dumpsys batterystats <package_name>
示例:查看指定应用的电量消耗情况。
adb shell dumpsys batterystats com.example.myapp
33.查看系统唤醒锁的情况
命令:adb shell dumpsys power | grep WakeLocks
示例:查看当前系统上所有持有的唤醒锁信息。
adb shell dumpsys power | grep WakeLocks
34.监控应用的网络请求
命令:adb shell netstat -an | grep <package_name>
示例:监控指定应用的网络请求(注意:这种方法可能不够精确,因为netstat输出的是网络接口的统计信息)。
adb shell netstat -an | grep <package_name>
35.查看系统网络配置
命令:adb shell ip addr show
示例:查看设备的网络配置信息。
adb shell ip addr show
36.监控系统的网络吞吐量
命令:adb shell nload
示例:实时显示网络吞吐量(注意:某些设备可能不支持此命令)。
adb shell nload
37.查看系统线程信息
命令:adb shell cat /proc/[pid]/task/[tid]/status
示例:查看指定进程内特定线程的详细信息。
adb shell cat /proc/[pid]/task/[tid]/status
38.监控应用的资源使用情况(如文件句柄、网络连接等)
命令:adb shell lsofs
示例:列出当前打开的文件和网络连接(注意:某些设备可能不支持此命令)。
adb shell lsofs
39.查看设备的VM(虚拟机)堆内存信息
命令:adb shell dumpsys meminfo --heap <package_name>
示例:查看指定应用的VM堆内存使用情况。
adb shell dumpsys meminfo --heap com.example.myapp
十一、设备安全与管理
1.授予应用权限
命令:adb shell pm grant <package_name> <permission>
示例:授予指定应用相机权限。
adb shell pm grant com.example.myapp android.permission.CAMERA
2.撤销应用权限
命令:adb shell pm revoke <package_name> <permission>
示例:撤销指定应用的相机权限。
adb shell pm revoke com.example.myapp android.permission.CAMERA
3.重置应用权限
命令:adb shell pm reset-permissions
示例:重置指定应用的所有权限。
adb shell pm reset-permissions com.example.myapp
4.查看应用权限
命令:adb shell dumpsys package <package_name> | grep -A 10 "requested permissions:"
示例:查看指定应用的权限请求情况。
adb shell dumpsys package com.example.myapp | grep -A 10 "requested permissions:"
5.检查应用是否为系统应用
命令:adb shell pm list packages -s | grep <package_name>
示例:检查指定应用是否为系统应用。
adb shell pm list packages -s | grep com.example.myapp
6.查看设备上的所有用户
命令:adb shell pm list users
示例:列出设备上的所有用户(包括主用户和访客用户)。
adb shell pm list users
7.查看应用的安装位置
命令:adb shell pm get-install-location
示例:获取应用的默认安装位置(内部存储或外部存储)。
adb shell pm get-install-location
8.设置应用的安装位置
命令:adb shell pm set-install-location
示例:设置应用的默认安装位置为0(内部存储)或1/2(外部存储,具体值可能因设备而异)。
adb shell pm set-install-location
9.查看设备是否已启用未知来源应用安装
命令:adb shell getprop ro.install.non_market_apps
示例:检查设备是否允许安装来自未知来源的应用。
adb shell getprop ro.install.non_market_apps
10.锁定设备
命令:adb shell input keyevent 26
示例:模拟按下电源键锁定设备屏幕。
adb shell input keyevent 26
11.检查设备是否有激活的应用使用访问性服务
命令:adb shell dumpsys accessibility
示例:列出所有已激活的访问性服务应用。
adb shell dumpsys accessibility
12.检查设备是否已root
命令:adb shell dumpsys accessibility
示例:进入设备shell后,尝试执行su命令,若成功则说明设备已root。
adb shell dumpsys accessibility su
13.查看SELinux状态
命令:adb shell getenforce
示例:获取当前SELinux的运行模式(Enforcing、Permissive等)。
adb shell getenforce
14.查看设备的制造商和安全补丁级别
命令:adb shell getprop ro.product.manufacturer && adb shell getprop ro.build.version.security_patch
示例:获取设备的制造商和安全补丁级别信息。
adb shell getprop ro.product.manufacturer && adb shell getprop ro.build.version.security_patch
15.查看设备是否启用调试模式
命令:adb shell getprop ro.debuggable
示例:检查设备是否已启用ADB调试模式。
adb shell getprop ro.debuggable
16.查看设备的SELinux策略版本
命令:adb shell getprop ro.boot.selinux_enforce
示例:获取设备的SELinux策略版本信息(注意:属性名可能因设备而异)。
adb shell getprop ro.boot.selinux_enforce
17.获取设备的硬件抽象层(HAL)信息
命令:adb shell dumpsys SurfaceFlinger --latency
示例:获取设备的SurfaceFlinger服务(负责屏幕显示)的HAL信息,包括帧率、延迟等。
adb shell dumpsys SurfaceFlinger --latency
18.查看设备的加密状态
命令:adb shell getprop ro.crypto.state
示例:检查设备的存储加密状态。
adb shell getprop ro.crypto.state
19.获取设备的序列号
命令:adb get-serialno
示例:获取设备的唯一序列号。
adb get-serialno
20.查看设备是否支持SELinux
命令:adb shell getprop ro.have_selinux
示例:检查设备是否支持SELinux功能。
adb shell getprop ro.have_selinux
21.检查设备是否已安装特定证书
命令:adb shell keytool -list -keystore /system/etc/security/cacerts
示例:列出设备系统证书存储中的所有证书(需要root权限)。
adb shell keytool -list -keystore /system/etc/security/cacerts
22.查看设备的MAC地址
命令:adb shell cat /sys/class/net/wlan0/address
示例:获取设备的Wi-Fi MAC地址(注意:路径可能因设备而异)。
adb shell cat /sys/class/net/wlan0/address
23.检查设备是否启用了远程ADB访问
命令:adb shell getprop ro.adb.secure
示例:检查设备是否允许通过Wi-Fi进行远程ADB连接(值为0表示允许,1表示不允许)。
adb shell getprop ro.adb.secure
24.查看设备的启动模式
命令:adb shell getprop ro.bootmode
示例:获取设备的启动模式(如正常启动、恢复模式等)。
adb shell getprop ro.bootmode
25.检查设备是否安装了特定应用
命令:adb shell pm list packages | grep <package_name>
示例:检查设备上是否安装了指定应用。
adb shell pm list packages | grep com.example.myapp
26.查看设备上的所有安装包
命令:adb shell pm list packages
示例:列出设备上安装的所有应用包名。
adb shell pm list packages
27.检查应用是否为调试模式
命令:adb shell dumpsys package <package_name> | grep debuggable
示例:检查指定应用是否在调试模式下运行。
adb shell dumpsys package <package_name> | grep debuggable
28.查看设备是否允许模拟位置
命令:adb shell settings get secure allow_mock_location
示例:检查设备是否允许应用模拟位置信息。
adb shell settings get secure allow_mock_location
29.禁用/启用模拟位置
命令:adb shell settings put secure allow_mock_location <0或1>
示例:禁用模拟位置:
adb shell settings put secure allow_mock_location 0
30.查看设备的安装源
命令:adb shell getprop ro.build.fingerprint
示例:获取设备的构建指纹,了解设备来源和安全性。
adb shell getprop ro.build.fingerprint
31.检查设备是否已安装特定的系统应用
命令:adb shell pm list packages -s | grep <system_package_name>
示例:检查系统应用是否安装:
adb shell pm list packages -s | grep SystemUI
32..检查设备是否有激活的VPN连接
命令:adb shell dumpsys vpn
示例:列出所有已激活的VPN连接信息。
adb shell dumpsys vpn
33.检查设备是否有Root权限管理应用
命令:adb shell ps | grep superuser
示例:查找设备上是否有superuser进程,判断是否有Root管理应用。
adb shell ps | grep superuser
34.查看设备的电池状态和使用情况
命令:adb shell dumpsys battery
示例:获取电池的详细状态和使用情况,包括电量、充电状态等。
adb shell dumpsys battery
35.检查设备上是否有未知的应用签名
命令:adb shell pm list packages -3 | grep <unknown_package_name>
示例:列出第三方应用并检查是否有未知签名。
adb shell pm list packages -3 | grep <unknown_package_name>
36.查看设备的内核版本
命令:adb shell uname -r
示例:获取设备的内核版本号。
adb shell uname -r
37.检查设备是否有正在运行的后台进程
命令:adb shell ps
示例:列出所有正在运行的进程,检查是否有异常或未知进程。
adb shell ps
38.查看设备的基带版本
命令:adb shell getprop ro.build.version.baseband
示例:获取设备的基带版本号,了解设备通信模块的安全性。
adb shell getprop ro.build.version.baseband
39.检查设备是否允许安装未知来源的APK
命令:adb shell settings get global install_non_market_apps
示例:检查设备是否允许从非官方市场安装应用。
adb shell settings get global install_non_market_apps
40.查看设备的屏幕锁定状态
命令:adb shell dumpsys window | grep -E 'mCurrentUser|mLocked'
示例:获取当前用户的屏幕锁定状态。
adb shell dumpsys window | grep -E 'mCurrentUser|mLocked'
41.检查设备是否已设置屏幕锁定
命令:adb shell settings get system screen_off_timeout
示例:虽然不直接显示锁定状态,但可间接判断设备是否可能已设置屏幕锁定(值非0通常表示已设置)。
adb shell settings get system screen_off_timeout
42.查看设备的硬件信息
命令:adb shell cat /proc/cpuinfo
示例:获取设备的CPU信息,了解硬件安全性。
adb shell cat /proc/cpuinfo
43.检查设备是否有激活的设备管理器
命令:adb shell dumpsys device_policy
示例:查看设备上是否有激活的设备管理器应用,这些应用可远程控制设备。
adb shell dumpsys device_policy
44.查看设备的SELinux策略加载状态
命令:adb shell cat /sys/fs/selinux/enforce
示例:获取SELinux的当前执行模式(Enforcing、Permissive)。
adb shell cat /sys/fs/selinux/enforce
45.检查设备是否有正在运行的服务
命令:adb shell dumpsys activity services
示例:列出所有正在运行的服务,检查是否有异常或未知服务。
adb shell dumpsys activity services
46.查看设备的构建日期和时间
命令:adb shell getprop ro.build.date.utc
示例:获取设备的构建日期和时间,了解设备的新旧程度。
adb shell getprop ro.build.date.utc
47.检查设备是否有安装的证书颁发机构(CA)
命令:adb shell keytool -list -keystore /system/etc/security/cacerts -storepass changeit
示例:列出系统信任的CA证书(需要root权限)。
adb shell keytool -list -keystore /system/etc/security/cacerts -storepass changeit
48.检查设备是否有USB调试权限
命令:adb shell getprop ro.debuggable && adb devices
示例:虽然不直接显示USB调试权限,但可结合设备列表判断是否有调试权限。
adb shell getprop ro.debuggable && adb devices
49.查看设备的无线局域网(WLAN)状态
命令:adb shell dumpsys wifi
示例:获取WLAN的详细状态信息,包括连接状态、信号强度等。
adb shell dumpsys wifi
十二、设备管理与维护
1.重启设备
命令:adb reboot
示例:直接运行命令,重启连接的Android设备。
adb reboot
2.重启到Recovery模式
命令:adb reboot recovery
示例:将设备重启到Recovery模式,用于刷机或恢复系统。
adb reboot recovery
3.重启到Bootloader模式
命令:adb reboot bootloader
示例:将设备重启到Bootloader模式,用于进行底层的硬件操作或刷机。
adb reboot bootloader
4.设备连接管理
命令:adb devices
示例:列出当前连接的所有Android设备。
adb devices
5.等待设备连接
命令:adb wait-for-device
示例:在脚本中等待设备连接,直到设备可用。
adb wait-for-device
6.查看设备分辨率和屏幕密度
命令:adb shell wm size && adb shell wm density
示例:查看当前设备的屏幕分辨率和屏幕密度。
adb shell wm size && adb shell wm density
7.监控应用的内存泄漏
命令:adb shell dumpsys meminfo --leak <package_name>
示例:检测指定应用是否存在内存泄漏。
adb shell dumpsys meminfo --leak com.example.myapp
8.查看设备CPU架构信息
命令:adb shell getprop ro.product.cpu.abi
示例:获取设备的CPU架构信息。
adb shell getprop ro.product.cpu.abi
9.监控设备的温度
命令:adb shell cat /sys/class/thermal/thermal_zone*/temp
示例:查看设备各个热区的当前温度(单位为毫摄氏度,需要除以1000转换为摄氏度)。
adb shell cat /sys/class/thermal/thermal_zone*/temp
10.查看系统当前唤醒源
命令:adb shell dumpsys power | grep WakeLock
示例:查看当前保持设备唤醒的唤醒源。
adb shell dumpsys power | grep WakeLock
11.监控应用的活动(Activity)生命周期
命令:adb shell dumpsys activity activities
示例:查看当前所有活动的Activity信息,包括其状态、栈信息等。
adb shell dumpsys activity activities
12.查看设备电池状态
命令:adb shell dumpsys battery
示例:获取设备的电池状态信息,如电量、是否充电等。
adb shell dumpsys battery
13.监控设备触摸事件
命令:adb shell getevent
示例:实时查看设备上的触摸、按键等事件。
adb shell getevent
14.查看系统服务详细状态
命令:adb shell dumpsys <service_name>
示例:查看Window Manager服务的详细状态。
adb shell dumpsys window
15.查看应用的Service信息
命令:adb shell dumpsys activity services <package_name>
示例:查看指定应用已启动的Service信息。
adb shell dumpsys activity services <package_name>
16.监控设备的CPU温度
命令(对于支持的设备):adb shell cat /sys/class/thermal/thermal_zone0/temp
示例:查看设备的CPU温度(注意:路径可能因设备而异)。
adb shell cat /sys/class/thermal/thermal_zone0/temp
17.查看系统Bootloader信息
命令:adb shell getprop ro.bootloader
示例:获取设备的Bootloader版本信息。
adb shell getprop ro.bootloader
18.查看设备的Baseband版本
命令:adb shell getprop ro.baseband
示例:获取设备的Baseband版本信息(对于支持的设备)。
adb shell getprop ro.baseband
19.监控设备的网络连接状态
命令:adb shell dumpsys connectivity
示例:查看设备的网络连接状态,包括Wi-Fi、移动数据等。
adb shell dumpsys connectivity
20.查看设备的Build信息
命令:adb shell getprop ro.build.*
示例:获取设备的Build信息,如版本号、编译时间等。
adb shell getprop ro.build.*
21.监控应用的BroadcastReceiver信息
命令:adb shell dumpsys activity broadcasts
示例:查看当前系统已注册的BroadcastReceiver信息。
adb shell dumpsys activity broadcasts
22.查看设备的内核版本
命令:adb shell uname -r
示例:获取设备的内核版本信息。
adb shell uname -r
23.监控设备音频状态
命令:adb shell dumpsys audio
示例:查看设备的音频状态信息,如音量、音频输出等。
adb shell dumpsys audio
24.查看设备是否处于Root状态
命令:adb shell
示例:进入设备shell后,尝试执行su命令,若成功则说明设备已Root。
adb shell su
25.查看设备当前运行的SELinux策略
命令:adb shell getenforce
示例:获取当前SELinux的运行模式(Enforcing、Permissive等)。
adb shell getenforce
26.监控设备的摄像头使用情况
命令:adb shell dumpsys camera
示例:查看设备的摄像头使用情况和状态信息。
adb shell dumpsys camera
27.查看设备的传感器信息
命令:adb shell sensor list
示例:列出设备上的所有传感器及其相关信息(注意:某些设备可能不支持此命令)。
adb shell sensor list
28.监控设备的应用安装情况
命令:adb shell pm list packages
示例:列出设备上已安装的所有应用。
adb shell pm list packages
29.查看设备的磁盘使用情况(按目录)
命令:adb shell du -sh /path/to/directory
示例:查看指定目录的磁盘使用情况。
adb shell du -sh /path/to/directory
30.监控设备的磁盘I/O等待时间
命令:adb shell iowait
示例:查看设备的磁盘I/O等待时间(注意:某些设备可能不支持此命令)。
adb shell iowait
31.查看设备的系统属性
命令:adb shell getprop
示例:获取设备的所有系统属性信息。
adb shell getprop
32.监控设备的GPU频率
命令(对于支持的设备):adb shell cat /sys/class/kgsl/kgsl-*/gpufreq/cur_freq
示例:查看设备的GPU当前频率(注意:路径可能因设备而异)。
adb shell cat /sys/class/kgsl/kgsl-*/gpufreq/cur_freq
33.查看设备的硬件信息
命令:adb shell cat /system/build.prop | grep "hardware"
示例:获取设备的硬件信息,如主板、平台等。
adb shell cat /system/build.prop | grep "hardware"
34.监控设备的电源管理信息
命令:adb shell dumpsys powerstats
示例:查看设备的电源管理统计信息(注意:某些设备可能不支持此命令)。
adb shell dumpsys powerstats
十三、文件传输与操作
1.从设备复制文件到本地
命令:adb pull <remote_path> <local_path>
示例:将设备上的文件复制到本地计算机。
adb pull /sdcard/test.txt C:\Users\User\Desktop\
2.从本地复制文件到设备
命令:adb push <local_path> <remote_path>
示例:将本地计算机上的文件复制到设备上。
adb push C:\Users\User\Desktop\test.txt /sdcard/
3.查看设备上的文件
命令:adb shell ls <path>
示例:列出设备上的指定目录中的文件。
adb shell ls /sdcard/
4.删除设备上的文件
命令:adb shell rm <remote_path>
示例:删除设备上的指定文件。
adb shell rm /sdcard/test.txt
5.删除设备上的目录
命令:adb shell rm -r <remote_path>
示例:递归删除设备上的指定目录及其内容。
adb shell rm -r /sdcard/test_dir/
6.重命名设备上的文件
命令:adb shell mv <old_path> <new_path>
示例:将设备上的文件重命名。
adb shell mv /sdcard/test.txt /sdcard/new_test.txt
7.创建设备上的目录
命令:adb shell mkdir <remote_path>
示例:在设备上创建指定目录。
adb shell mkdir /sdcard/new_dir/
8.查看设备上的文件权限
命令:adb shell ls -l
示例:以长格式列出设备上的指定目录中的文件及其权限。
adb shell ls -l /sdcard/
9.更改设备上的文件权限
命令:adb shell chmod <remote_path>
示例:更改设备上的文件权限。
adb shell chmod 755 /sdcard/script.sh
10.更改设备上的文件所有者
命令:adb shell chown : <remote_path>
示例:更改设备上的文件所有者。
adb shell chown root:root /sdcard/test.txt
11.复制设备上的文件
命令:adb shell cp <source_path> <destination_path>
示例:在设备上复制文件。
adb shell cp /sdcard/test.txt /sdcard/backup/test_backup.txt
12.查找设备上的文件
命令:adb shell find -name
示例:在设备上查找指定名称的文件。
adb shell find /sdcard/ -name "*.jpg"
13.查看设备上的文件内容
命令:adb shell cat <remote_path>
示例:查看设备上的文件内容。
adb shell cat /sdcard/test.txt
14.在设备上编辑文件 注意:此操作通常需要在设备上使用文本编辑器,但可以通过adb shell调用vi、nano等编辑器。
示例:使用vi编辑器编辑设备上的文件。
adb shell vi /sdcard/test.txt
15.压缩设备上的文件
命令:adb shell tar -czvf <archive_name.tar.gz> <file_or_directory>
示例:将设备上的文件或目录压缩为tar.gz格式。
adb shell tar -czvf backup.tar.gz /sdcard/test_dir/
16.解压设备上的文件
命令:adb shell tar -xzvf <archive_name.tar.gz> -C <destination_path>
示例:将设备上的tar.gz文件解压到指定目录。
adb shell tar -xzvf backup.tar.gz -C /sdcard/
17.计算设备上的文件大小
命令:adb shell du -sh
示例:计算设备上的文件或目录大小。
adb shell du -sh /sdcard/test_dir/
18.检查设备上的磁盘使用情况
命令:adb shell df -h
示例:查看设备上的磁盘使用情况。
adb shell df -h
19.挂载设备上的文件系统 注意:此操作通常用于root设备,需要谨慎使用。
命令:adb shell mount -o <mount_point>
示例:挂载设备上的某个分区。
adb shell mount -o rw,remount /system
20.卸载设备上的文件系统 注意:此操作通常用于root设备,需要谨慎使用。
命令:adb shell umount <mount_point>
示例:卸载设备上的某个挂载点。
adb shell umount /sdcard/
21.同步设备上的文件到本地 注意:此操作可以使用rsync命令,但需要先确保设备上已安装rsync。
命令:adb shell rsync -avz <remote_path> <local_path>
示例:将设备上的文件同步到本地计算机。
adb shell rsync -avz /sdcard/test_dir/ /mnt/sdcard/test_dir/ # 假设已挂载sdcard
22.将本地文件同步到设备上 注意:同样需要使用rsync命令,并确保设备上已安装rsync。
命令:rsync -avz <local_path> <remote_path>
示例:将本地计算机上的文件同步到设备上。
rsync -avz /mnt/sdcard/test_dir/ adb shell:/sdcard/test_dir/ # 假设已挂载sdcard,并需要调整命令格式以适应adb
23.在设备上创建空文件
命令:adb shell touch <remote_path>
示例:在设备上创建空文件。
adb shell touch /sdcard/empty_file.txt
24.在设备上创建符号链接
命令:adb shell ln -s <target_path> <link_path>
示例:在设备上创建符号链接。
adb shell ln -s /sdcard/test.txt /sdcard/test_link.txt
25.在设备上创建硬链接 注意:硬链接通常只能用于同一文件系统内的文件。
命令:adb shell ln <target_path> <link_path>
示例:在设备上创建硬链接。
adb shell ln /sdcard/test.txt /sdcard/test_hardlink.txt
26.在设备上查看文件类型
命令:adb shell file <remote_path>
示例:查看设备上的文件类型。
adb shell file /sdcard/test.txt
27.在设备上查看文件的MD5校验和
命令:adb shell md5sum <remote_path>
示例:计算并查看设备上的文件的MD5校验和。
adb shell md5sum /sdcard/test.txt
28.在设备上比较两个文件
命令:adb shell cmp <file1_path> <file2_path>
示例:比较设备上的两个文件是否相同。
adb shell cmp /sdcard/test1.txt /sdcard/test2.txt
29.在设备上分割文件
命令:adb shell split -b <input_file> <output_prefix>
示例:将设备上的大文件分割为指定大小的小文件。
adb shell split -b 1M /sdcard/large_file.txt /sdcard/output_file_prefix_
30.在设备上合并文件
命令:adb shell cat <file1_path> <file2_path> > <output_file_path>
示例:将设备上的多个文件合并为一个文件。
adb shell cat /sdcard/file1.txt /sdcard/file2.txt > /sdcard/merged_file.txt
31.列出设备上的所有文件(包括隐藏文件)
命令:adb shell ls -a
示例:列出设备上的指定目录中的所有文件,包括隐藏文件。
adb shell ls -a /sdcard/
32.列出设备上的文件,并显示文件类型
命令:adb shell ls -F
示例:以特定格式列出设备上的文件,包括文件类型标识。
adb shell ls -F /sdcard/
33.统计设备上的文件数量
命令:adb shell find -type f | wc -l
示例:统计设备上的指定目录及其子目录中的文件数量。
adb shell find /sdcard/ -type f | wc -l
34.统计设备上的目录数量
命令:adb shell find -type d | wc -l
示例:统计设备上的指定目录及其子目录中的目录数量。
adb shell find /sdcard/ -type d | wc -l
35.更改设备上的文件或目录的时间戳
命令:adb shell touch -t [[CC]YY]MMDDhhmm[.ss] <remote_path>
示例:将设备上的文件或目录的时间戳更改为指定时间。
adb shell touch -t 202301011200.00 /sdcard/test.txt
36.在设备上查找并删除文件
命令:adb shell find -name -exec rm {} ;
示例:在设备上查找并删除指定名称的文件。
adb shell find /sdcard/ -name "*.tmp" -exec rm {}
37.在设备上查找并删除空文件
命令:adb shell find -type f -empty -exec rm {} ;
示例:在设备上查找并删除空文件。
adb shell find /sdcard/ -type f -empty -exec rm {}
38.在设备上查找并删除空目录
命令:adb shell find -type d -empty -exec rmdir {} ;
示例:在设备上查找并删除空目录。
adb shell find /sdcard/ -type d -empty -exec rmdir {}
39.在设备上查找并压缩文件
命令:adb shell find -name -exec tar -czvf {}.tar.gz {} ; -exec rm {} ;
示例:在设备上查找指定名称的文件,并将其压缩为tar.gz格式,然后删除原文件。
adb shell find /sdcard/ -name "*.log" -exec tar -czvf {}.tar.gz {} ; -exec rm {}
40.在设备上查找并解压文件
命令:adb shell find -name <archive_name.tar.gz> -exec tar -xzvf {} -C <destination_path> ; -exec rm {} ;
示例:在设备上查找tar.gz文件,并将其解压到指定目录,然后删除原压缩文件。
adb shell find /sdcard/ -name "*.tar.gz" -exec tar -xzvf {} -C /sdcard/backup/ ; -exec rm {}
41.在设备上查找并替换文件内容
命令:adb shell find -name -exec sed -i 's/<old_text>/<new_text>/g' {} ;
示例:在设备上查找指定名称的文件,并替换其中的文本内容。
adb shell find /sdcard/ -name "*.txt" -exec sed -i 's/oldword/newword/g' {}
42.在设备上查找并创建文件的备份
命令:adb shell find -name -exec cp {} {}.bak ;
示例:在设备上查找指定名称的文件,并创建其备份文件。
adb shell find /sdcard/ -name "*.conf" -exec cp {} {}.bak
43.在设备上查找并恢复文件的备份
命令:adb shell find -name <filename.bak> -exec mv {} {}.original ; -exec mv {}.bak {} ;
示例:在设备上查找备份文件,并将其恢复为原始文件。
adb shell find /sdcard/ -name "*.bak" -exec mv {} {}.original ; -exec mv {}.bak {}
44.在设备上查找并打印文件内容
命令:adb shell find -name -exec cat {} ;
示例:在设备上查找指定名称的文件,并打印其内容。
adb shell find /sdcard/ -name "*.log" -exec cat {}
45.在设备上查找并计算文件的MD5校验和
命令:adb shell find -name -exec md5sum {} ;
示例:在设备上查找指定名称的文件,并计算其MD5校验和。
adb shell find /sdcard/ -name "*.bin" -exec md5sum {}
46.在设备上查找并比较两个文件的内容
命令:adb shell find -name -exec cmp {} / ;
示例:在设备上查找第一个文件,并将其与第二个文件进行比较。
adb shell find /sdcard/dir1/ -name "file1.txt" -exec cmp {} /sdcard/dir2/file1.txt
47.在设备上查找并分割大文件
命令:adb shell find -name <large_file> -exec split -b {} <output_prefix> ;
示例:在设备上查找大文件,并将其分割为指定大小的小文件。
adb shell find /sdcard/ -name "largefile.dat" -exec split -b 10M {} largefile_part_
48.在设备上查找并合并小文件
命令:使用循环和cat命令合并文件(由于ADB shell的限制,可能需要编写脚本)
示例:在设备上查找指定前缀的小文件,并将它们合并为一个文件。编写脚本或使用adb shell进入设备后执行以下命令(示例为合并part1到part5)
adb shell "cat /sdcard/part1 /sdcard/part2 /sdcard/part3 /sdcard/part4 /sdcard/part5 > /sdcard/merged_file"
49.在设备上查找并修改文件的权限
命令:adb shell find -name -exec chmod {} ;
示例:在设备上查找指定名称的文件,并修改其权限。
adb shell find /sdcard/ -name "*.sh" -exec chmod 755 {}
50.在设备上查找并修改文件的所有者
命令:adb shell find -name -exec chown : {} ;
示例:在设备上查找指定名称的文件,并修改其所有者。
adb shell find /sdcard/ -name "*.log" -exec chown system:system {}
51.在设备上查找并创建文件的硬链接
命令:adb shell find -name -exec ln {} <link_path> ;
示例:在设备上查找指定名称的文件,并为其创建硬链接。
adb shell find /sdcard/ -name "important.txt" -exec ln {} /sdcard/important_link.txt
52.在设备上查找并创建文件的符号链接
命令:adb shell find -name -exec ln -s {} <link_path> ;
示例:在设备上查找指定名称的文件,并为其创建符号链接。
adb shell find /sdcard/ -name "config.conf" -exec ln -s {} /sdcard/config_link.conf
53.在设备上查找并更改文件的扩展名
命令:编写脚本或使用循环和mv命令(由于ADB shell的限制,可能需要编写脚本)
示例:在设备上查找指定扩展名的文件,并将其扩展名更改为另一个扩展名。编写脚本或使用adb shell进入设备后执行以下命令(示例为将.txt更改为.md)
adb shell "for file in /sdcard/*.txt; do mv $file ${file%.txt}.md; done"
54.在设备上查找并移动文件到指定目录
命令:adb shell find -name -exec mv {} <destination_path> ;
示例:在设备上查找指定名称的文件,并将其移动到指定目录。
adb shell find /sdcard/ -name "*.jpg" -exec mv {} /sdcard/Pictures/
十四:Monkey命令
monkey命令,稍微复杂一点,我们分为三个部分来讲,
第①部分,先简要认识一下什么monkey命令
第②部分,给出几条最基础的命令,用以观察学习
第③部分,给出一些工作中实用的命令作为参考
①:Monkey命令讲解
Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。它主要用于测试待测应用的稳定性、健壮性(是否会发生崩溃、闪退)以及整机测试。
Monkey命令的基本格式为:[adb shell] monkey [options] <eventcount>,其中<eventcount>是生成的事件总数。以下是对Monkey命令中一些常用选项的详细解释:
1.-v:用于指定反馈信息级别(即日志的详细程度),总共分为三个级别。
-
- ·-v:日志级别Level 0,缺省值,仅提供启动提示、测试完成和最终结果等少量信息。
- ·-v -v:日志级别Level 1,提供较为详细的日志,包括每个发送到Activity的事件信息。
- ·-v -v -v:日志级别Level 2,最详细的日志,包括了测试中选中/未选中的Activity信息。
2.-s:用于指定伪随机数生成器的seed值。如果seed值相同,则两次Monkey测试所产生的事件序列也相同,这有助于复现测试中发现的bug。
3.--throttle<毫秒>:用于指定用户操作(即事件)间的时延,单位是毫秒。这可以降低系统的压力,使测试更加平稳。
4.--randomize-throttle:在事件之间插入随机延迟,随机延迟范围为0到throttle设置的时间,单位为毫秒。
5.-p:指定有效的package,即只针对指定的应用进行测试。如果不指定,则对系统中所有package有效。
6.--pkg-whitelist-file:指定白名单文件,只有文件中列出的包名会被测试。
7.--pkg-blacklist-file:指定黑名单文件,文件中列出的包名不会被测试。
8.--pct-*:这类选项用于指定不同类型事件的百分比,如--pct-touch指定触摸事件的百分比,--pct-motion指定滑动事件的百分比等。
此外,还有一些调试选项,如--ignore-crashes忽略崩溃、--ignore-timeouts忽略超时、--monitor-native-crashes跟踪本地方法的崩溃问题等。
②基础命令及使用场景
1.对指定应用进行100次随机事件测试
使用场景:当需要测试某个特定应用的稳定性时,可以使用此命令对应用进行随机事件测试,观察应用是否会出现崩溃或异常。
adb shell monkey -p com.example.app -v 100
2.使用相同的seed值复现bug
使用场景:当在测试中发现了bug,并希望复现该bug以便进行调试和修复时,可以使用相同的seed值重新运行测试,以生成相同的事件序列并复现bug。
adb shell monkey -p com.example.app -s 12345 -v -v 1000
3.指定事件间的时延进行测试
使用场景:当希望降低测试对系统的压力,使测试更加平稳时,可以指定事件间的时延。这样,每次事件之间都会有一定的间隔时间,从而降低系统的负载。
adb shell monkey -p com.example.app --throttle 2000 -v 100
4.调整不同类型事件的百分比进行测试
使用场景:当希望测试应用在不同类型事件下的表现时,可以调整不同类型事件的百分比。例如,可以增加触摸事件的百分比,减少滑动事件的百分比,以观察应用在不同操作下的稳定性和响应速度。
adb shell monkey -p com.example.app --pct-touch 70 --pct-motion 30 -v 100
5.使用白名单文件进行测试
使用场景:当希望对多个应用进行测试,但又不希望测试所有应用时,可以使用白名单文件指定要测试的应用。这样,只有白名单中列出的应用会被测试,从而提高了测试的针对性和效率。
adb push D:\whitelist.txt /data/local/tmp adb shell monkey --pkg-whitelist-file /data/local/tmp/whitelist.txt -v 100
③:更多实用命令
1. 发送触摸事件
命令:adb shell monkey -p <package_name> -v 500 --throttle 100 100
示例:测试com.example.app的响应速度和稳定性。
adb shell monkey -p com.example.app -v 500 --throttle 100 100
2. 发送轨迹球事件
命令:adb shell monkey -p <package_name> --pct-trackball 20 100
示例:测试com.game.app中轨迹球对游戏操作的影响。
adb shell monkey -p com.game.app --pct-trackball 20 100
3. 发送屏幕旋转事件
命令:adb shell monkey -p <package_name> --pct-rotation 30 100
示例:测试com.video.app在不同屏幕方向下的视频播放稳定性。
adb shell monkey -p com.video.app --pct-rotation 30 100
4. 发送基本导航事件
命令:adb shell monkey -p <package_name> --pct-nav 10 100
示例:测试com.browser.app中导航按钮(上下左右)的响应。
adb shell monkey -p com.browser.app --pct-nav 10 100
5. 发送主要导航事件
命令:adb shell monkey -p <package_name> --pct-majornav 15 100
示例:测试com.launcher.app中主要导航按钮(如返回键、主页键)的响应。
adb shell monkey -p com.launcher.app --pct-majornav 15 100
6. 发送系统事件
命令:adb shell monkey -p <package_name> --pct-syskeys 5 100
示例:测试com.settings.app中系统按键(如音量键、电源键)的响应。
adb shell monkey -p com.settings.app --pct-syskeys 5 100
7. 发送活动启动事件
命令:adb shell monkey -p <package_name> -c android.intent.category.LAUNCHER 1
示例:单独启动com.example.app的主活动。
adb shell monkey -p com.example.app -c android.intent.category.LAUNCHER 1
8. 发送长按事件
命令:adb shell monkey -p <package_name> --pct-longpress 20 100
示例:测试com.reader.app中长按文本的选择功能。
adb shell monkey -p com.reader.app --pct-longpress 20 100
9. 发送触摸和轨迹球混合事件
命令:adb shell monkey -p <package_name> --pct-touch 50 --pct-trackball 50 100
示例:测试com.map.app中触摸和轨迹球混合使用的导航效果。
adb shell monkey -p com.map.app --pct-touch 50 --pct-trackball 50 100
10. 发送触摸、轨迹球和旋转混合事件
命令:adb shell monkey -p <package_name> --pct-touch 40 --pct-trackball 30 --pct-rotation 30 100
示例:测试com.game.adventure中复杂操作组合下的游戏稳定性。
adb shell monkey -p com.game.adventure --pct-touch 40 --pct-trackball 30 --pct-rotation 30 100
11. 发送触摸和主要导航混合事件
命令:adb shell monkey -p <package_name> --pct-touch 60 --pct-majornav 40 100
示例:测试com.messaging.app中消息发送和主要导航按钮的交互。
adb shell monkey -p com.messaging.app --pct-touch 60 --pct-majornav 40 100
12. 发送触摸和系统事件混合事件
命令:adb shell monkey -p <package_name> --pct-touch 70 --pct-syskeys 30 100
示例:测试com.settings.app中触摸和系统按键的交互。
adb shell monkey -p com.settings.app --pct-touch 70 --pct-syskeys 30 100
13. 发送触摸、主要导航和系统事件混合事件
命令:adb shell monkey -p <package_name> --pct-touch 50 --pct-majornav 25 --pct-syskeys 25 100
示例:测试com.launcher.custom中多种用户输入事件的交互。
adb shell monkey -p com.launcher.custom --pct-touch 50 --pct-majornav 25 --pct-syskeys 25 100
14. 发送大量触摸事件
命令:adb shell monkey -p <package_name> -v 500 --throttle 50 1000
示例:长时间、高频率地测试com.social.app的触摸响应。
adb shell monkey -p com.social.app -v 500 --throttle 50 1000
15. 发送带有特定事件比例的触摸事件
命令:adb shell monkey -p <package_name> --pct-touch 80 --pct-anyevent 20 100
示例:测试com.music.app中触摸事件占主导地位的交互。
adb shell monkey -p com.music.app --pct-touch 80 --pct-anyevent 20 100
16. 发送带有特定事件数量的触摸事件
命令:adb shell monkey -p <package_name> -v 1 --throttle 100 50
示例:发送固定数量的触摸事件以测试com.example.app的启动性能。
adb shell monkey -p com.example.app -v 1 --throttle 100 50
17. 发送带有特定事件间隔的触摸事件
命令:adb shell monkey -p <package_name> -v 500 --throttle 200 50
示例:测试com.game.puzzle中较慢的触摸事件响应。
adb shell monkey -p com.game.puzzle -v 500 --throttle 200 50
18. 发送带有特定事件类型和数量的混合事件
命令:adb shell monkey -p <package_name> --pct-touch 40 --pct-trackball 20 --pct-rotation 10 --pct-nav 10 --pct-majornav 10 --pct-syskeys 5 --pct-anyevent 5 100
示例:全面测试com.office.suite中各种用户输入事件的交互。
adb shell monkey -p com.office.suite --pct-touch 40 --pct-trackball 20 --pct-rotation 10 --pct-nav 10 --pct-majornav 10 --pct-syskeys 5 --pct-anyevent 5 100
19. 发送带有日志详细级别的触摸事件
命令:adb shell monkey -p <package_name> -v -v -v -v --throttle 100 100
示例:详细记录com.example.app的触摸事件日志。
adb shell monkey -p com.example.app -v -v -v -v --throttle 100 100
20. 发送带有错误处理的触摸事件
命令:adb shell monkey -p <package_name> --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --kill-process-after-error --throttle 100 100
示例:在测试com.bank.app时忽略崩溃和超时错误,继续发送事件。
adb shell monkey -p com.bank.app --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --kill-process-after-error --throttle 100 100
21. 发送带有事件种子的重复测试
命令:adb shell monkey -p <package_name> -s 12345 --throttle 100 100
示例:为了复现特定的测试示例或bug,使用相同的事件种子重复测试com.example.app。
adb shell monkey -p com.example.app -s 12345 --throttle 100 100
22. 发送带有网络延迟模拟的触摸事件
命令:adb shell monkey -p <package_name> --network-latency 500 --throttle 100 100
示例:模拟网络延迟,测试com.streaming.app在网络不佳情况下的表现。
adb shell monkey -p com.streaming.app --network-latency 500 --throttle 100 100
23. 发送带有事件比例限制的触摸事件
命令:adb shell monkey -p <package_name> --pct-touch 90 --pct-anyevent 10 --throttle 100 100
示例:限制其他事件类型,主要测试com.game.racing中的触摸响应。
adb shell monkey -p com.game.racing --pct-touch 90 --pct-anyevent 10 --throttle 100 100
24. 发送带有特定设备方向的触摸事件
命令:adb shell monkey -p <package_name> --force-portrait --throttle 100 100
示例:强制设备为竖屏模式,测试com.reader.app在竖屏下的阅读体验。
adb shell monkey -p com.reader.app --force-portrait --throttle 100 100
25. 发送带有日志输出的触摸事件(指定文件)
命令:adb shell monkey -p <package_name> -v --log-file /sdcard/monkey_log.txt --throttle 100 100
示例:将日志输出到指定文件,便于后续分析com.example.app的测试情况。
adb shell monkey -p com.example.app -v --log-file /sdcard/monkey_log.txt --throttle 100 100
26. 发送带有特定事件持续时间的触摸事件
命令:adb shell monkey -p <package_name> --duration 300000 --throttle 100
示例:持续发送事件300秒,测试com.video.player在长时间播放下的稳定性。
adb shell monkey -p com.video.player --duration 300000 --throttle 100
27. 发送带有事件比例和持续时间的混合事件
命令:adb shell monkey -p <package_name> --pct-touch 60 --pct-nav 20 --pct-majornav 10 --pct-syskeys 10 --duration 60000 --throttle 100
示例:在限定时间内,按一定比例发送多种事件类型,测试com.launcher.app的综合性能。
adb shell monkey -p com.launcher.app --pct-touch 60 --pct-nav 20 --pct-majornav 10 --pct-syskeys 10 --duration 60000 --throttle 100
28. 发送带有特定应用权限限制的触摸事件
命令:adb shell monkey -p <package_name> --permission-target-system --throttle 100 100
示例:测试com.system.app在具有系统权限下的行为表现。
adb shell monkey -p com.system.app --permission-target-system --throttle 100 100
结语
亲爱的朋友:
希望本文中描述的问题以及解决方案,可以帮助到您。当然,我们深知,问题和挑战总是层出不穷,新的情况也在不断涌现。如果读者朋友您有更好的方案,或者在实际应用中发现了文中的不足之处,请不吝分享您的宝贵建议。诚挚地邀请每一位读者加入我们的行列,共同完善这份教程。
感谢您的阅读与支持!
Dear frends,
We hope that the questions and solutions presented in this article can be of assistance to you. Of course, we are fully aware that problems and challenges are always emerging in an endless stream, and new situations are constantly arising. If you, our readers, have better solutions or have discovered any deficiencies in this article through practical application, please do not hesitate to share your valuable suggestions with us. We sincerely invite every reader to join us in continuously improving this tutorial.
Thank you for your reading and support!
See you,Parting is for better meeting!

浙公网安备 33010602011771号