何为adb?
adb是android sdk的一个工具
adb是用来链接安卓手机和pc端的桥梁,要有adb作为二者之间的维系,才能让用户在电脑上对手机进行全面的操作。

1、常用命令:

adb devices #查看连接设备
adb -s cf27456f shell # 指定连接设备使用命令

adb install test.apk # 安装应用
adb install -r test.apk 保留数据和缓存文件,重新安装apk
adb install -s test.apk 安装apk 到sd 卡
adb -s xxx(设备) install xxx.pak 指定某个设备安装apk

adb uninstall com.yykuaile.sh #卸载应用,需要指定包
adb uninstall -k com.yykuaile.sh #卸载应用,但想要保留数据和缓存文件

adb shell pm list packages #列出手机装的所有app的包名
adb shell pm list packages -3 #列出除了系统应用的第三方应用包名
adb shell pm clear com.yykuaile.sh #清除应用数据与缓存

√ adb shell am start -com.kuaile.sh/.ui.SplashActivity #启动应用
√ adb shell am force-stop com.yykuaile.sh #强制停止应用

adb shell dumpsys package #包信息Package Information
adb logcat #查看日志
adb logcat -c #清除log 缓存,一般在看日志前都会执行这个命令
adb reboot #手机重启
adb shell getprop ro.build.version.release #查看Android 系统版本

adb push <电脑上的目录> <设备里的文件路径> #从本地复制文件到设备
例:adb push test.flv /sdcard/test/good.flv

adb pull <设备里的文件路径> <电脑上的目录> #从设备复制文件到本地
例:adb pull /sdcard/test/good flv test.flv

adb help #查看ADB 帮助

2.1连接设备

adb [-d|-e|-s ]

连接指定设备

参数:

-d 指定当前唯一通过USB 连接的Android 设备为命令目标

-e 指定当前唯一运行的模拟器为命令目标

-s 指定相应serialNumber 号的设备/模拟器为命令目标

command 为所需对设备执行的命令

示例:
$adb devices

List of devices attached
cf263b7f device device表示连接成功
emulator-5554 offline offline表示设备未连接成功或无响应
192.168.1.6:5555 device

$adb -s cf263b7f #连接cf264b8f 设备
adb devices 查看已连接的设备信息, 上面已经连接3台设备。

2.2查看信息

2.21 查看版本设备

adb version 查看adb版本信息
adb devices 查看adb连接设备
adb shell getprop ro.product.model 查看设备型号
adb shell getprop ro.build.version.release 查看Android 系统版本
adb logcat 查看日志

2.2.2查看应用信息
adb shell pm list packages 列出手机装的所有app 的包名

adb shell pm list packages -s 列出系统应用的所有包名

adb shell pm list packages -3 列出除了系统应用的第三方应用包名

adb shell pm list packages | find “test” (windows)列出手机装带有的test的包

adb shell pm list packages | grep ‘test’ (linux) 列出手机装带有的test的包

adb shell dumpsys package com.yykuaile.sh 包信息Package Information
adb shell dumpsys activity services [] 查看正在运行的包的Services
参数不是必须的,指定 表示查看与某个包名相关的Services,不指定表示查看所有Services。

不一定要给出完整的包名,比如运行adb shell dumpsys activity services org.zhihu,那么包名org.zhihu.demo1、org.zhihu.demo2 和org.zhihu 等相关的Services 都会列出来。
2.2.3 强制停止应用
#查询出包名
$adb shell pm list package

#强制停止微信
$adb shell am force-stop com.tencent.mm

2.2.4查看日志*
作为测试做常用的adb查看日志命令:
1.adb logcat -v time 打印log的详情日志
2.adb logcat -v time > D:\log.txt 把日志输出到电脑的上查看,在窗口打印的同时,文件也会同时打印的,ctrl+c,停止后,可查看日志文件
3.adb logcat -c 清除之前的日志信息,一般在看日志前都会执行这个命令,目的是好看日志,不然前面的日志应该会超级多,不好看问题

过滤规则
有两种规则,一种是按照日志级别过滤,一种是按照日志中的tag过滤,当然会有混合日志和tag在一起过滤
过滤格式:
adb logcat [:priority]
tag表示标签,priority输出的级别,注意如果要是要根据级别查看时记得要tag一定要给,如果没有指定,那个tag哪里输入*号就行了

V —— Verbose(最低,输出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高,啥也不输出)

示例:输出W之上的日志,(W,E,F,S)

$adb logcat *:W

adb logcat -c 清空日志
adb shell dmesg 查看内核日志

2.3查看设备信息

2.3.1 andriod_id
adb shell settings get secure android_id

2.3.2 Android 系统版本
adb shell getprop ro.build.version.release

2.3.3 ip地址
adb shell ifconfig
找到对应的 wlan0 下面的inet addr 即可

2.3.4 手机分辨率
adb shell wm size

2.4实用功能

2.4.1 屏幕截图

adb exec-out screencap -p > img.png # 老版本无exec-out命令,只适合于新版的截图

adb shell screencap -p /sdcard/img.png # 老版本截图先保存在设备端
adb pull /sdcard/img.png # 通过pull拷贝到本地

screencap 参数:
-p 指定保存文件为 png 格式
-d display-id 指定截图的显示屏编号(有多显示屏的情况下)
2.4.2屏幕录制
adb shell screenrecord /sdcard/filename.mp4

screenrecord 参数:
–size WIDTHxHEIGHT 视频的尺寸,比如 1280x720,默认是屏幕分辨率。
–bit-rate RATE 视频的比特率,默认是 4Mbps。
–time-limit TIME 录制时长,单位秒。
–verbose 输出更多信息。

2.4.3 重启手机

adb reboot

2.4.4 检测设备是否已root

adb shell su
此时命令行提示符是 $ 则表示没有 root 权限,是 # 则表示已 root。

2.4.5 使用Monkey进行压力测试

adb shell monkey -p -v 500 向 指定的应用程序发送 500 个伪随机事件

2.5更多 adb shell 命令

2.5.1 查看进程

adb shell ps

2.5.2 查看实时资源占用情况

adb shell top
top命令参数如下:
使用方法: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [ -t ] [ -h ]
-m num 最多显示多少个进程
-n num 刷新多少次后退出
-d num 刷新时间间隔(单位秒,默认值 5)
-s col 按某列排序(可用 col 值:cpu, vss, rss, thr)
-t 显示线程信息
-h 显示帮助文档

2.5.3 其他
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐