adb(Android Debug Bridge)是 Android 提供的一个通用调试工具,借助这个工具,可以管理设备或手机模拟器的状态.
adb 功能操作:
快速更新设备或手机模拟器中的代码,如应用或 Android 系统升级
在设备上运行 shell 命令
管理设备或手机模拟器上预定端口
在设备或手机模拟器上复制、粘贴文件
adb 常用操作:
安装应用到手机或模拟器
adb install app.apk
删除应用文件:
adb shell
cd data/app
rm app.apk
打印出内核的调试信息:
adb shell dmesg
发布端口:
adb forward tcp:5555 tcp:8000
复制文件
adb push
adb push test.txt /tmp/test.txt 复制一个文件或目录到设备或模拟器上
adb pull /android/lib/libwebcore.os 从设备或模拟器上复制一个文件或目录
查看当前链接的设备:
adb devices
adb wait-for-device//等待运行的设备
查看报告:
adb bugreport
获取设备 ID
adb get-product
获取设备序列号
adb get-serialno
查看已安装apk
adb shell ls -la /data/app
查看调试信息
adb logcat
启动adb服务
adb start-server
终止服务
adb kill-server
重启手机
adb reboot
拓展 :
//显示开机信息
adb shell dmesg
adb shell netstat // 网络监听端口号信息
adb shell netcfg // 网卡信息 IP信息
//使用am调试工具
adb shell am start -a android.intent.action.CALL -d tel:10010 // 拨打电话
adb shell am start -a android.intent.action.VIEW -d http://blog.csdn.net/aikongmeng //打开网页
...
...
//adb shell pm工具查看安装包信息,配置应用的安装位置,
pm list packages [-f] [-d] [-e] [-s] [-e] [-u] [FILTER]
pm list permission-groups
pm list permissions [-g] [-f] [-d] [-u] [GROUP]
//按组列出权限和状态
pm list prermissions -d -g
//授予、撤销一项或多项权限
pm [grant|revoke] <permission-name> ...
pm list instrumentation [-f] [TARGET-PACKAGE]
pm list features
pm list libraries
pm path PACKAGE
pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH // 安装应用
pm uninstall [-k] PACKAGE
pm clear PACKAGE //清空指定包名应用的数据
pm enable PACKAGE_OR_COMPONENT
pm disable PACKAGE_OR_COMPONENT
pm disable-user PACKAGE_OR_COMPONENT
pm set-install-location [0/auto] [1/internal] [2/external]
pm get-install-location
pm createUser USER_NAME
pm removeUser USER_ID
am start 启动一个应用
am start -n [包(package)名]/[包名].[活动(activity)名称]
am start -D -n //debug 方式启动
am startservice -n [包 (package) 名]/[包名].[服务(service)名]
am broadcast -a [广播动作]
app_process [运行Java代码目录] [运行主类]
这个命令主要用于Android中一些特殊开发场景中,想启动一个jar包,不过这个jar包有要求:需要dx命令把dex文件转化成jar包功能,实际上它不是一个正常的jar包了,而是一个包含了classes.dex文件的压缩文件了。
top 查看当前应用的CPU消耗信息。
用法:top [-n/-m/-d/-s/-t]
-m // 最多显示多少个进程
-n// 刷新次数
-d// 刷新间隔时间(默认5 秒)
-s // 按哪列排序
-t// 显示线程信息而不是进程
//查看系统属性
adb shell getprop
//设置属性
adb shell setprop net.dns1 10,0,1,1
//getevent/ sendevent 工具
//getevent 获得按键 拖动 滑动等事件 十六进制数
>adb shell getevent /dev/input/event0
//sendevent 为十进制数
df系统管理工具: 查看文件系统磁盘占用情况.
adb shell df
mount 显示文件系统
adb shell mount
adb forward 设备的端口转发。
用法:adb forwrad [(远程端)协议:端口号] [(设备端)协议:端口号]
adb jdwp 查看设备中可以被调试的应用的进程号。
获取Camera的性能参数
1. 启动camera在preview状态
2. 执行 adb shell dumpsys media.camera
adb 截图:
截图保存到手机sdcard
adb shell screencap -p sdcard/screen.png
再把截图pull 到电脑上
adb pull sdcard/screen.png d:/
adb shell screenrecord 录屏操作
adb shell screenrecord /sdcard/tmp.mp4
adb shell input text 输入文本内容。 adb shell input text [需要输入文本框内容],也可以模拟物理按键、虚拟键盘、滑动、滚动等事件
//dumpsys 观察当前运行的广播\服务\电池等信息
adb shell dumpsys package //观察安装包 adb shell dumpsys package [pkgname]可以查看指定包名应用的详细信息
adb shell dumpsys meminfo //查看指定进程名或者进程id的内存信息
adb shell dumpsys dbinfo 可以查看指定包名应用的数据库存储信息(包括存储的SQL语句)
adb shell dumpsys batteryinfo //电池信息
adb shell dumpsys /data/arm/tt.txt //查看文件内容
adb shell dumpsys alarm //闹钟
adb shell dumpsys activity >/Users/log.txt // 将日志保存到指定文档 start log.txt 打开文档
adb shell dumpsys activity top 说明:可以查看当前应用的activity信息。用法:运行需要查看的应用。
adb shell pm list packages |find "experiments" // 显示包含experiments的包名
如何查看通知的messageCount值
在命令行执行:adb shell dumpsys activity service SystemUIService ,搜索 active notifications 字段可查看当前通知栏显示的所有通知
cat /proc/cpuinfo //看cpu 的信息
更多可以查看 sdk/docs/tools/help/adb.html 或者官方链接 中文官方链接:https://developer.android.google.cn/studio/command-line/adb.html