Android - ADB 命令备忘及其他

ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。

这是 GitHub 上 star 最多的,介绍 adb 用法的仓库 —— awesome-adb 的开场词,简单清晰,一句话概括 adb 的用处和强大。只要做 Android 开发,几乎都绕不开 adb 这个工具,我最近在项目中就经常用到里面的 adb shell "dumpsys window w | grep name="adb shell am start -n com.android.settings/com.android.settings.Settings,用来查看当前 Activity 和进入系统设置界面。

虽然 adb 很好用,但在 Mac 上刚开始使用也碰到了一点问题。当我霹雳巴拉的敲下 Command + C、Command + V、回车键后,终端给我的回应却是冷酷的 adb: command not found,嗯哼,“Sorry! The number you dialed does not exist, please check it and dial later?”,好的,let’s fuck it.oh,no,let’s fix it.

解决 MAC 下 adb: command not found

提示 adb: command not found 是因为 mac 电脑下没有配置 Android 环境变量。

  1. 打开终端,输入: cd ~/ 进入用户目录;
  2. 输入:touch .bash_profile,如果当前没有这个文件,则会默认创建;
  3. 输入:open .bash_profile,如果是第一次创建,则默认为空白的文件;
  4. 输入:export ANDROID_HOME=/Users/Kaaaaai/Library/Android/sdk,这里的 export ANDROID_HOME= 你的安卓 sdk 路径
    mac下 的 Android studio,点击:preferences,会出现下图页面,复制地址替换就可以了
  5. 输入:export PATH=${PATH}:${ANDROID_HOME}/tools
  6. 输入:export PATH=${PATH}:${ANDROID_HOME}/platform-tools
  7. 输入 source .bash_profile 即可使改动生效;
    当然,你也可以输入 adb version 查看是否生效

现在就可以了,但是在我的电脑上还会有个问题,就是重启终端后,adb 命令又会失效,需要我重新执行 source ~/.bash_profile 语句才行。这有是怎么回事呢?

解决每次都要执行 source ~/.bash_profile 配置的环境变量才生效

谷歌了一下,发现因为之前给终端配置过显示主题,所以终端每次启动加载是 ~/.zshrc 文件,而不是 ~/.bash_profile。解决方法也很简单,打开 ~/.zshrc 文件,在最后增加一行:

Terminal
1
source ~/.bash_profile

现在就行了。如果从恋爱的角度去看,这个阶段,是我们已经要到了 adb 这个磨人小妖精的联系方式了,接下来就是深入了解的阶段了。

常用的 adb 命令

基本命令

1
2
3
4
adb version  显示 adb 版本 
adb help 帮助
adb start-server 启动 adb
adb kill-server 停止 adb 服务器

调试设备

1
2
3
4
5
6
7
8
9
10
11
12
13
adb kill-server //关闭adb服务
adb start-server //打开adb服务
adb devices//获取连接的设备
adb pull {手机地址} {电脑存储文件地址} //从手机取出文件
adb push {电脑存储文件地址} {手机地址} //往手机中添加文件
adb install {your package name}//安装包
adb uninstall {your package name} //卸载包

adb shell settings get secure android_id //获得手机id

adb devices //显示设备
adb reboot //重启
adb -s //选择设备

查看文件
1.查看手机磁盘文件

1
2
3
第一步:adb shell 
第二步:ls
第三部:cd /mnt/sdcard/

2.查看手机应用程序包存储的文件

1
2
第一步:adb shell 
第二步:run-as {应用程序包名}

查看 Activity 栈信息

1
2
3
4
adb shell "dumpsys window w | grep name="  //查看当前Activity
adb shell dumpsys activity | grep "mFocusedActivity" //查看当前栈顶的Activity
adb shell dumpsys activity your.package.name //查看当前栈顶的Activity的Fragment
adb shell dumpsys activity top //也可以不用包名,而直接使用"top"选项

启动 Activity/Broadcast/Service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
adb shell am start com.android.settings/com.android.settings.Settings // 打开设置页面
adb shell am start com.android.settings/com.android.settings.SecuritySettings // 打开设置安全页面
adb shell am start com.android.settings/com.android.settings.RadioInfo //打开手机无线信息页面
adb shell am start com.android.settings/com.android.settings.DevelopmentSettings //打开手机开发者选项页面

//通过Intent启动应用程序Activity
adb shell am start -a {action} -d {数据}

这里-a表示动作,-d表述传入的数据,还有-t表示传入的类型

//例如,打开一个网页
adb shell am start -a android.intent.action.VIEW -d http://www.baidu.com (这里-d表示传入的data)

// 打开音乐播放器
adb shell am start -a android.intent.action.MUSIC_PLAYER

// 发送广播
adb shell am broadcast -a {广播动作}

// 启动和关闭服务
adb shell am startservice {服务名称} //打开服务
adb shell am stopservice {服务名称} //关闭服务

贪多嚼不烂。本着这种精神只记录了一些常用的命令,其他的命令需要的可以自行在网络上搜索。以上。

------本文结束 感谢阅读------

本文地址:http://kaaaaai.cn/articles/Android-More-than-Adb-commands.html
本文基于 知识共享署名-相同方式共享 4.0 国际许可协议发布
转载请注明出处,谢谢!

众筹项目:拯救世界!
0%