注释:()里面包名在命令行输入命令时候只用输出包名不用写 ()
有线连接:插上数据线,手机打开调试模式
输入:adb devices
看到如下信息,说明连接成功
List of devices attached
cf264b8f device
#连接多个设备时候,指定运行设备:
adb -s (设备名称) install (安装包路径)...
adb -s (设备名称) shell ........
启动 adb server 命令:adb start-server
停止 adb server 命令:adb kill-server
指定adb server启动网络端口:adb
无线连接手机:首先电脑和手机在同一个局域网内,查看手机IP设备—关于手机——状态信息——IP地址:
先输入:adb tcpip 5555#让设备在 5555 端口监听 TCP/IP 连接:
在输入:adb connect (手机IP地址)
在输入:adb devices#查看链接设备
显示:(IP地址):5555 devices #说明连接成功
断开链接 adb disconnect (ip地址)
#注:无线连接需要手机root才能进行如下操作
adb version \adb #查看adb 版本
adb devices 查看链接设备输出结果为:
List of devices attached
cf264b8f device
emulator-5554 device
10.129.164.6:5555 no device
cf264b8f offline
cf264b8f #是连接的设备号
device:状态表示设备已经连接
offline:表示设备为连接成功无响应
no device:没有设备/模拟器连接
#安装/卸载:
adb install (安装包路径)#安装软件
#显示Success为安装成功
#显示Failure 则表示安装失败
adb uninstall (包名)#卸载软件
查看链接设备的所有应用信息:
adb shell pm list packages
即在adb shell pm list packages的基础上后面可以加一些参数进行过滤查看不同的列表,支持的过滤参数如下:
#查看系统应用:
adb shell pm list package -s
#查看第三方应用:
adb shell pm list package -3
#查看包名包含某字符的应用
例如查看包名包含zhang的应用
adb shell pm list package zhang
也可以用grep来进行过滤:注意在这里用grep 过滤会出现错误,说grep不是内部命令,因为在shell后面用grep 会报错解决办法,是在shell 加" "好就可以
adb shell "pm list pcakage | grep zhang"
#清除缓存命令
adb shell pm clear (包名)
#查看前台 Activity:
adb shell "dumpsys activity activities | grep mFocusedActivity"
#查看正在运行的 Services:
adb shell dumpsys activity services (包名)
#包名不一定给出全部!给出关键字可以查看到关于这关键字的services的应用都会罗列出来
#查看应用详细信息:
adb shell dumpsys package (包名)
输出中包含很多信息,包括 Activity Resolver Table、Registered ContentProviders、包名、userId、安装后的文件资源代码等路径、版本信息、权限信息和授予状态、签名版本信息等。
#强制停止应用:
adb shell am force-stop (包名)
文件管理:需要手机root才能操作的
手机复制文件到电脑:
adb shell pull <设备路径> <电脑的目录>
电脑文件复制到手机
adb shell push <电脑文件路径> <连接设备目录>
按键模拟输入:
adb shell input keyevent
电源键:
adb shell input keyevent 26
菜单键:
adb shell input keyevent 82
HOME键:
adb shell input keyevent 3
这里我都不在一一列出了
滑动解锁:
如果锁屏没有密码,是通过滑动手势解锁,那么可以通过input swipe来解锁。
命令(参数以机型 Nexus 5,向上滑动手势解锁举例):
adb shell input swipe 300 1000 300 500
参数300 1000 300 500分别表示起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标。
输入文本:
adb shell input text hello
现在"hello"出现在文本框
查看设备信息
型号:
adb shell getprop ro.product.model
电池状况:
adb shell dumpsys battery
查看和修改屏幕分辨率;
查看:adb shell sw size
修改:adb shell sw size 480x1024#480x1024为修改后的分辨率
恢复分辨率:adb shell sw size reset
查看修改屏幕密度:
查看:adb shell sw density
修改: adb shell sw density 160 #修改后的屏幕密度为163dpi
恢复屏幕密度: adb shell sw density reset
显示屏幕参数:
adb shell dumpsys window displays
android_id:
adb shell settings get secure android_id
IMEI:国际移动号码识别号
Android4.4以下系统命令:
adb shell dumpsys iphonesubinfo
输出为:
Phone Subscriber Info:Phone Type = GSM
Device ID = 860955027785041
其中Device ID就是这个设备的IMEI
而在 Android 5.0 及以上版本里这个命令输出为空,得通过其它方式获取了(需要 root 权限):
adb shell
su
service call iphonesubinfo 1
输入为:
Result: Parcel(
0x00000000: 00000000 0000000f 00360038 00390030 '........8.6.0.9.'
0x00000010: 00350035 00320030 00370037 00350038 '5.5.0.2.7.7.8.5.'
0x00000020: 00340030 00000031 '0.4.1... ')
把里面的有效内容提取出来就是 IMEI 了,比如这里的是860955027785041。
参考:adb shell dumpsys iphonesubinfo not working since Android 5.0 Lollipop
Android 系统版本:
adb shell getprop ro.build.version.release
IP 地址
每次想知道设备的 IP 地址的时候都得「设置」-「关于手机」-「状态信息」-「IP地址」很烦对不对?通过 adb 可以方便地查看。
adb shell ifconfig | grep Mask
输出实例:
inet addr:10.130.245.230 Mask:255.255.255.252
inet addr:127.0.0.1 Mask:255.0.0.0
那么10.130.245.230就是设备 IP 地址。
Mac 地址:
adb shell cat /sys/class/net/wlan0/address
输出:f8:a9:d0:17:42:4d 这个就是Mac地址
CPU 信息:
adb shell cat /proc/cpuinfo
这是 Nexus 5 的 CPU 信息,我们从输出里可以看到使用的硬件是Qualcomm MSM 8974,processor 的编号是 0 到 3,所以它是四核的,采用的架构是ARMv7 Processor rev 0 (v71)。
内存信息:
adb shell cat /proc/meminfo
输出信息的:其中,MemTotal就是设备的总内存,MemFree是当前空闲内存。
关闭调试模式:
adb shell settings put global adb_enabled 0
屏幕截图:
截图保存到电脑:
adb exec-out screencap -p > D:\sc.png
截图保存到设备:adb shell screencap -p /sdcard/sc.png
录制屏幕:保存手机
adb shell screenrecord /sdcard/filename.mp4
导出电脑:adb pull /sdcard/filename.mp4
参考CSDN:https://blog.csdn.net/c1063891514/article/details/79118243