如果你还在慢慢在手机点击各种界面来 进行对应的操作,那你就太out 了.通过adb 连接上你的手机,你就拥有了全世界. 在实际的开发过程中,我感觉这个adb真的很有用
ADB 全称 Android Debugger Bridge .
是放在android sdk包 platform-tools 中的一个可执行程序工具.因为是一个单独的程序,所以如果有需要的话可以把它和它依赖的库单独的拿出来使用,不用下载完整的sdk.
官网上有这个一个地址用来介绍的:
https://developer.android.google.cn/studio/command-line/adb.html
adb 功能大全
本文会列举adb 的主要功能,一些在实际的开发过程中会用到的十分实用的操作.
需要说明的是,中间的命令十分的多, 尽可能的列举一些实用的功能.其中的命令如果想知道具体的含义,基本都可以通过 [command] --help的方式查看
adb 功能列表
通过 adb --help 可以获取到一个如下的列表
中间的功能进行一简单的列举.如下表所示:
模块 | 具体命令 | 说明 |
---|---|---|
通用选项 | 可以配置一些 | 功能不常用,可以根据需要查看看原始文档 |
通用命令 | device, help, version | 基本信息的查看 |
网络操作 | connect, disconnect… | 进行连接动作,查看相关套接子 |
文件传输 | push, pull, sync | 可以往安卓设备上传下载文件 |
shell操作 | linux里面命令都可以一起用 | 这个是最强大的,最后会重点说明 |
安装命令 | install, unisntall | 安装卸载apk使用,里面会有一些参数,会有不同的效果 |
备份与存储 | backup | |
调试 | logcat jdwp | 调试查看日志 这个是必须的啊 |
安全 | disable-verity, enable-verity | |
脚本 | reboot remount root… | 在一些权限相关的问题需要用到这个 |
内部调试 | start-server, kill-server | 操作adb的服务,开始,杀死服务 |
adb 功能举例
这里只列举可能有用到的,不做全部的说明
网络操作
关于这部分,其实只需要连接它可以通过无线网络进行连接,其底层是基于TCP的套接字(socket).当然 我还是喜欢用数据线
//局域网下通过 ip:port的方式来连接某一个手机
adb connect HOST[:PORT]
文件传输
-
adb push localPath remotePath
把电脑上的文件上传到手机上面去//把当前目录下的一个文件上传手机sdcard上去 adb push ./test /sdcard/test
-
adb pull remotePath localPath
这个操作是相反的,把手机上的文件取到电脑上//把手机sdcard拉到本地来 adb push /sdcard/test ./test
-
adb sync [DIR] . 同步下文件没啥好说的,需要设置环境变量 ANDROID_PRODUCT_OUT ,把本地的文件同步到电脑
adb shell 的使用
这个命令最强大,通过adb shell的方式进行到了安卓设备的命令环境时,里面可以执行很多的操作,执行 exit 可以退出shell,这个就是全篇的重点了.介绍几个非常常用
adb shell am 说明
adb shell am --help 可以查看帮助文档
- 启动activity
am start [-D] [-N] [-W] [-P ] [–start-profiler <FILE>] [–sampling INTERVAL] [-R COUNT] [-S] [–track-allocation] [–user <USER_ID> | current] <INTENT>
具体的命令操作
//启动某一个具体的activity ,其中最重要的就是intent 下面会附上一张表具体说明intent
adb shell am start com.test/com.test.myactivity
- 启动service
startservice [–user <USER_ID> | current] <INTENT>
adb shell am startservice com.test/com.test.myservice
- 发送广播
am broadcast [–user <USER_ID> | all | current] <INTENT>
adb shell am broadcast -action com.test.test com.test
//广播参数说明
[-a <ACTION>] [-d \<DATA_URI>] [-t \<MIME_TYPE>]
[-c \<CATEGORY> [-c \<CATEGORY>] ...]
重要的intent需要做出说明
intent 说明
参数 | 说明 |
---|---|
-a [action] | 设置action |
-d <DATA_URI> | 设置传递数据uri |
-t <MIME_TYPE> | 设置mime类型 |
-c | 设置设置类型 |
package | 设置包名 |
compnent | 设置组件,就是包名+类的全路径名 |
–es <EXTRA_KEY> <EXTRA_STRING_VALUE> | 传递key-value的字符串参数 |
–ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> … | 传递key-value的bool参数 |
–ei <EXTRA_KEY> <EXTRA_INT_VALUE> … | 传递key-value的整数参数 |
–el <EXTRA_KEY> <EXTRA_LONG_VALUE> … | 传递key-value的long参数 |
–ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE> … | 传递key-value的float参数 |
–eu <EXTRA_KEY> <EXTRA_URI_VALUE> … | 传递key-value的uri参数 |
–ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE> | 传递key-value的组件参数 |
adb shell pm
1.清除数据
adb shell pm clear 包名
2.卸载应用
adb shell pm uninstall 包名
adb shell dumpsys
- 查看当前页面activity (可以通过这一步简单的查看任何界面对应的包名是什么)
adb shell dumpsys activity top
- 查看应用信息
adb shell dumpsys package 包名
- 查看内存信息
adb shell dumpsys meminfo 包名
- 查看alarm信息
adb shell dumpsys alarm
- 查看dumpsys 支持的所有的服务,看看可以dump什么信息
adb shell dumpsys -l
adb 安装相关
- adb install xx.apk 安装程序,install 这个命令可以带上参数,一般 ‘-r’ 比较常用,需要进行替换操
-l: forward lock application
-r: replace existing application
-t: allow test packages
-s: install application on sdcard
-d: allow version code downgrade (debuggable packages only)
-p: partial application install (install-multiple only)
-g: grant all runtime permissions
- adb uninstall 包名
卸载程序
adb 服务相关
有的手机 你很难链接上有问题,可以尝试用adb kill-server 再 adb start-sever的方式来处理
如果有多个设备,你就需要选择设置,
adb devices -l 查看设备找到对应的transport id
adb -t transportId shell 就可以进入选中的设备
文章的最后 总要来点实际的
尾部的这部分会持续加入更新
查看路径adb shell pm path {包名}
查看屏幕大小 adb shell wm size
截屏 adb shell screencap -p {path}
查看系统属性 getprop
查看系统相关信息 cat /system/build.prop |grep product