Android 开发常用的adb命令
Posted wx_962464
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 开发常用的adb命令相关的知识,希望对你有一定的参考价值。
作者: Aaron
主页: http://www.wxtlife.com/2017/09/07/Android-adb-commond/
微信文章:https://mp.weixin.qq.com/s/IKN6KLAhO9rO-uIXKv7u2g
欢迎订阅我的公众号
adb 在开发中调试是很常用的命令,下面就来说说常用的adb命令。
简化adb 连接命令
如果指定ip 连接,一般为 adb conenct 172.18.xxx.xxx
,这样每次进行连接时,发现都有重复的的命令需要敲,程序员就是要减少重复工作,所以现在就将重复的命令省掉。(以下为mac下的配置的方法):
- 新建.alias_bash 文件
- 文件中使用alias
别名关键字重新命令
alias ac="adb connect $1"
alias ad="adb devices"
alias ak="adb kill-server"
alias as="adb start-server"
- 修改根目录下的
.bash_profile
, 或者其他以.bash
的文件中,将最后加上source ./.alias_bash
然后重新执行source ./.bash_profile
,或者直接关掉终端,重新打开一个。 - 尝试使用
ac 172.18.**.**
,则可直接连接上机器,在输入ad
即可看到adb连接到的设备。
上面只是个例子,可以在文件.alias_bash
文件中添加其他的简化命令。
adb 多设备指定连接
在使用adb连接多个设备,当想连接到某一个设备的shell时adb -s 172.18.xx.xx:5555 shell
。
adb 文件处理
复制电脑里的文件到设备
命令:
adb push <电脑上的文件路径> <设备里的目录>
例:
adb push ~/sr.mp4 /sdcard/
复制设备里的文件到电脑
命令:
adb pull <设备里的文件路径> [电脑上的目录]
- 其中 电脑上的目录 参数可以省略,默认复制到当前目录。
例:
adb pull /sdcard/sr.mp4 ~/tmp/
adb 安装卸载应用
adb 安装应用
命令格式:
adb install [-lrtsdg] <path_to_apk>
参数:
adb install 后面可以跟一些可选参数来控制安装 APK 的行为,可用参数及含义如下:
参数 | 含义 |
---|---|
-l | 将应用安装到保护目录 /mnt/asec |
-r | 允许覆盖安装 |
-t | 允许安装 androidManifest.xml 里 application 指定 android:testOnly=”true” 的应用 |
-s | 将应用安装到 sdcard |
-d | 允许降级覆盖安装 |
-g | 授予所有运行时权限 |
运行命令后如果见到类似如下输出(状态为 Success)代表安装成功:
[100%] /data/local/tmp/1.apk
pkg: /data/local/tmp/1.apk
Success
adb 卸载应用
命令:
adb uninstall [-k] <packagename>
- 表示应用的包名,-k参数可选,表示卸载应用但保留数据和缓存目录。
命令示例:
adb uninstall com.aaron.test
adb 启动应用
启动activity
命令格式:
adb shell am start [options] <INTENT>
例如:
adb shell am start -n com.aaron.test/.LauncherActivity
如果想要对启动的Intent添加参数可以按照key-value形式添加。
adb shell am start -n org.mazhuang.boottimemeasure/.MainActivity --es "url" "wxtlife.com"
启动servies
命令格式:
adb shell am startservice [options] <INTENT>
例如:
adb shell am startservice -n com.aaron.test/.MusicService
表示调起音乐服务Service。
发送广播
命令格式:
adb shell am broadcast [options] <INTENT>
可以向所有组件广播,也可以只向指定组件广播。
例如,向所有组件广播 BOOT_COMPLETED:
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
向指定的接收器发送广播,例子:
adb shell am broadcast -a com.aaron.action.SHOW_TIME -n com.aaron.test/.PlaySerices
如果带参数的广播则在后面加上参数的key, value 。 例如:
adb shell am broadcast -a com.aaron.action.SHOW_TIME -es "url" "wxtlife.com"
adb 杀进程
命令:
adb shell am force-stop <packagename>
命令示例:
adb shell am force-stop com.aaron.test
adb 清除应用缓存等
命令:
adb shell pm clear <packagename>
- 表示应用名包,这条命令的效果相当于在设置里的应用信息界面点击了「清除缓存」和「清除数据」。
命令示例:
adb shell pm clear com.aaron.test
adb 模拟事件
命令:
adb shell input keyevent <keycode>
例子:
adb shell input keyevent 26 //模拟电源键
adb 查看日志
命令格式:
[adb] logcat [<option>] ... [<filter-spec>] ...
例子:
adb logcat *:W
Android 的日志分为如下几个优先级(priority):
- V —— Verbose(最低,输出得最多)
- D —— Debug
- I —— Info
- W —— Warning
- E —— Error
- F —— Fatal
- S —— Silent(最高,啥也不输出)
过滤指定TAG
adb logcat -s <TAG>
其他常用命令
查看应用列表信息
查看应用列表的基本命令格式是
adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]
- 即在 adb shell pm list packages 的基础上可以加一些参数进行过滤查看不同的列表,支持的过滤参数如下:
参数 | 显示列表 |
---|---|
无 | 所有应用 |
-f | 显示应用关联的 apk 文件 |
-d | 只显示 disabled 的应用 |
-e | 只显示 enabled 的应用 |
-s | 只显示系统应用 |
-3 | 只显示第三方应用 |
-i | 显示应用的 installer |
-u | 包含已卸载应用 |
FILTER | 包名包含 FILTER 字符串 |
例如:
- 第三方应用
pm list packages -s
- 包名包含某字符串的应用
adb shell pm list packages -3
- 查看包名包含字符串aaron的命令
adb shell pm list packages aaron
查看前台 Activity
命令:
adb shell dumpsys activity activities | grep mFocusedActivity
查看正在运行的Services
命令:
adb shell dumpsys activity services [<packagename>]
- 参数不是必须的,指定 表示查看与某个包名相关的 Services,不指定表示查看所有 Services。
CPU信息
命令:
adb shell cat /proc/cpuinfo
内存信息
内存信息
命令:
adb shell cat /proc/meminfo
- 其中,MemTotal 就是设备的总内存,MemFree 是当前空闲内存。
查看占用cpu占用排行
命令:
adb shell busybox top
总结:
adb 的使用还有很多的命令,这里不一一列举了。更多的可以查看adb 命令的帮助信息。
欢迎订阅我的公众号
以上是关于Android 开发常用的adb命令的主要内容,如果未能解决你的问题,请参考以下文章