调试操作步骤
-
在手机设置中打开USB调试功能(某些手机还能限制是否允许远程调试,如果存在此选项需要一并打开)。
-
将手机和PC在同一网络下(连接同一WIFI)。
-
使用USB将手机连接到电脑。
-
使用adb devices命令检查设备连接情况
$ adb devices List of devices attached 693298ff device # 现连接的设备1 693298gg device # 现连接的设备2
-
使用adb tcpip命令在电脑端指定手机设备的tcpip端口
$ adb -s 693298ff tcpip 5555 restarting in TCP mode port: 5555 # 启用结果
5555 端口是默认端口,也可以用其他端口,-s是adb中操作指定设备的参数 -s 693298ff是指定在693298ff这个设备上执行此操作,如果只连接了一台设备可省略此参数.
-
断开手机与PC的USB连接
-
使用adb connect命令将手机连接到电脑
$ adb connect 192.168.3.142:5555 connected to 192.168.3.142:5555 # 远程连接结果
192.168.3.142是自己手机连接WIFI后的ip,再次说明,手机和电脑需要在同一网络环境下(只要在一个局域网内 有线网络也可以)
-
使用adb devices命令检查设备连接情况
$ adb devices List of devices attached 192.168.3.142:5555 device # 远程连接的手机 693298gg device # 通过usb连接的手机
-
当需要连接多个设备时,可重复上面的操作,但是端口号需要稍做修改,不能重复。
需要注意的是,如果一个手机同时通过USB和tcpip连接到PC的话,adb devices会识别出2个设备,但其实是同一个手机的2种连接方式。
-
当不再需要设备连接时,可以使用adb disconnect 命令来断开连接,示例:
$ adb disconnect 192.168.3.142:5555
扩展知识(adb常用命令)
-
查看手机设备
$ adb devices [-l]
-
多设备连接时指定命令到设备
$ adb [-s <device-name>] [cmd]
-
连接、断开设备
$ adb connect <ip:port> # 连接设备 $ adb disconnect <ip:port> # 断开设备
-
安装、卸载包,如果需要覆盖则需要在install后面添加-r参数
$ adb install [-r] <apk-path> # 安装包,如需保留数据及缓存文件安装新包,需添加-r参数 $ adb uninstall <apk-path> # 卸载包
-
启动、关闭adb服务
$ adb start-server # 启动adb服务 $ adb kill-server # 关闭adb服务
-
查看手机里包名
$ adb shell pm list packages # 查看所有包名 $ adb shell pm list packages -3 # 查看所有第三方包名
-
截频并保存文件在手机上为xxx.png
$ adb shell /system/bin/screencap -p /sdcard/xxx.png
-
打包指定包名应用
$ adb shell pm path <package-name>
-
电脑、手机文件传输
$ adb pull <android-path> <pc-path> # 将手机文件下载到电脑 $ adb push <pc-path> <android-path> # 将电脑文件导入手机
-
清除缓存数据
$ adb shell pm clear com.ablesky.ui.activity
-
启动、强制停止程序
$ adb shell am start -n com.ablesky.ui.activity/com.ablesky.activity.SplashActivity # 启动程序 $ adb shell am force-stop com.ablesky.simpleness.activity # 强制停止运行程序 $ taskkill /pid 2027 /f # 杀掉某进程
-
查看、下载日志
$ adb logcat # 查看日志 $ adb logcat > D:\log.txt # 将日志打印到电脑上
-
查看端口及进程PID
$ netstat -aon|findstr "5037" # 查看被占用端口对应的PID $ tasklist /fi "PID eq <pidNum>" # 查看端口号对应的进程
-
指定APP产生随机事件100次
$ adb shell monkey -p <package-name> 100 # 指定APP产生随机事件100次 $ adb shell monkey -p <package-name> -v 100 # 指定APP产生随机事件100次并发送详细的activity信息
-
获取手机系统信息
$ adb shell "cat /system/build.prop | grep "product"" # 获取手机CPU,厂商名称等信息 $ adb shell getprop ro.build.version.release # 获取手机系统版本 $ adb shell getprop ro.build.version.sdk # 获取手机系统api版本
-
获取手机设备信息
$ adb -d shell getprop ro.product.model # 获取手机设备型号 $ adb -d shell getprop ro.product.brand # 获取手机厂商名称
-
获取手机的序列号,有以下两种方式
$ adb get-serialno # 获取手机的序列号,方式一 $ adb shell getprop ro.serialno # 获取手机的序列号,方式二
-
获取手机的IMEI,有三种方式,由于手机和系统的限制,略有区别
$ adb shell dumpsys iphonesubinfo # 其中Device ID即为IMEI号 $ adb shell getprop gsm.baseband.imei $ service call iphonesubinfo 1 # 此种方式,需要自己处理获取的信息得到
-
获取手机硬件信息
$ adb shell cat /sys/class/net/wlan0/address # 获取手机mac地址 $ adb shell cat /proc/meminfo # 获取手机内存信息 $ adb shell cat /proc/cpuinfo # 获取手机cpu信息 $ adb shell df # 获取手机存储信息
-
获取手机内部存储信息
$ adb shell df /mnt/shell/emulated # 魅族手机 $ adb shell df /data # 其他 $ adb shell df /storage/sdcard # 获取sdcard存储信息
-
获取手机分辨率
$ adb shell "dumpsys window | grep mUnrestrictedScreen"
-
获取手机物理密度
$ adb shell wm density
-
查看apk的包名
$ aapt dump badging <apk-path> # 查看指定apk的包名 $ adb shell pm list package -f # 查看所有apk包名
-
查看当前活动应用
$ adb shell dumpsys activity top | findstr ACTIVITY