温欣爸比

  • 主页
  • Alfred Workflow
  • 《Vim 练级手册》
  • 常用命令
  • 代码笔记
  • 合辑
  • 在线工具
所有文章 友链 关于我

温欣爸比

  • 主页
  • Alfred Workflow
  • 《Vim 练级手册》
  • 常用命令
  • 代码笔记
  • 合辑
  • 在线工具

Android 远程调试命令 adb

2019-03-11

adb 是 Android 的远程调试命令,在 Android 打开 USB 调试模式或直接打开 ADB 功能,就可以用 shell 命令来控制系统。



  • Android 打开 USB 调试
  • 安装 adb
    • Mac OS X
  • 链接设备
  • 使用 shell 命令
  • 包管理
  • 进程管理
  • 更多命令

Android 打开 USB 调试

打开 Android 系统的开发者模式的通用模式。

1
2
3
4
1.打开“设置”应用,然后滚动到底部。
2.如果它没有“开发者选项”设置,请点击“关于手机”(或“关于平板电脑”),滚动到底部,然后点击内置版本号7次。
3.返回并点击开发者选项。
4.启用 USB 调试。

安装 adb

Mac OS X

使用 brew 可以很简单的安装

1
2
$ brew cask install android-platform-tools
$ adb devices

随后就可以使用 adb 命令,不需要在配置各种环境变量

其他安装方式见 Set up adb on Mac OS X

链接设备

启动服务

1
$ adb start-server

查看设备列表

1
2
3
4
$ adb devices

List of devices attached
emulator-5554 device

关闭服务

1
$ adb kill-server

链接设备

当设备没有出现在设备列表中时,我们可以手动链接设备

1
$ adb connect <ip>:5555

Android 的 uiautomator 模块默认使用了 5555 端口号

链接成功后,设备会出现在设备列表中

1
2
3
4
5
$ adb devices

List of devices attached
10.0.2.1:5555 device
emulator-5554 device

使用 shell 命令

1
2
$ adb shell
root@x86:/ #

当有一个设备时,默认链接,如果有多个设备,需要指定设备

1
2
$ adb -s 10.0.2.1:5555 shell
root@x86:/ #

如果不想每次都手动指定,可以设置环境变量

1
export ANDROID_SERIAL="DC886B75"

shell 登陆后即可使用常见的脚本命令,比如 ls

1
2
3
4
5
$ adb shell
root@x86:/ # ls
mnt
lib
...

如果只是执行简单的命令,我们也可以直接在本地执行

1
2
3
4
$ adb shell ls
mnt
lib
...

包管理

安装

1
2
3
4
5
6
7
$ adb install test.apk
$ adb install -l test.apk # forward lock application
$ adb install -r test.apk # replace existing application
$ adb install -t test.apk # allow test packages
$ adb install -s test.apk # install application on sdcard
$ adb install -d test.apk # allow version code downgrade
$ adb install -p test.apk # partial application install

卸载

1
2
$ adb uninstall com.test.app
$ adb uninstall -k com.test.app # Keep the data and cache directories around after package removal.

查看包安装列表

1
2
3
4
5
6
7
8
9
$ adb shell pm list packages
$ adb shell pm list packages -f # See their associated file.
$ adb shell pm list packages -d # Filter to only show disabled packages.
$ adb shell pm list packages -e # Filter to only show enabled packages.
$ adb shell pm list packages -s # Filter to only show system packages.
$ adb shell pm list packages -3 # Filter to only show third party packages.
$ adb shell pm list packages -i # See the installer for the packages.
$ adb shell pm list packages -u # Also include uninstalled packages.
$ adb shell pm list packages --user <USER_ID> # The user space to query.

包路径

1
2
$ adb shell pm path com.android.phone
package:/system/priv-app/TeleService/TeleService.apk

清除数据和缓存

1
$ adb shell pm clear com.test.abc

进程管理

启动应用

1
2
$ adb shell 进入 Android
$ am start -n <package-name>/<package-name>.<activity-name>

或者直接运行

1
$ adb shell am start -n <package-name>/<package-name>.<activity-name>

一些系统应用打开方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 设置
$ am start -n com.android.settings/com.android.settings.Settings
# 日历
$ am start -n com.android.calendar/com.android.calendar.LaunchActivity
# 闹钟
$ am start -n com.android.alarmclock/com.android.alarmclock.AlarmClock
# 音乐和视频
$ am start -n com.android.music/com.android.music.MusicBrowserActivity
$ am start -n com.android.music/com.android.music.VideoBrowserActivity
$ am start -n com.android.music/com.android.music.MediaPlaybackActivity
# 照相机
$ am start -n com.android.camera/com.android.camera.Camera
# 浏览器
$ am start -n com.android.browser/com.android.browser.BrowserActivity
# 打开网址
$ am start -a android.intent.action.VIEW -d http://www.google.cn/
# 拨打电话
$ am start -a android.intent.action.CALL -d tel:10086

这里有个问题,我们可以通过 pm 命令查到 apk 的包名,但是 activity 就不方便知道了,我们希望只通过包名就能启动应用,从网上查到这个方法

1
$ am start -a android.intent.action.MAIN -n <package-name>

但是这种方式,我在模拟器中只可以打开系统应用,第三方应用会报错,再次查找发现可以使用 monkey 命令来启动应用

1
$ monkey -p <package-name> -c android.intent.category.LAUNCHER 1

经过测试,这种方式是比较方便打开各种应用

杀掉应用

1
$ am force-stop <package-name>

杀掉所有后台进程

1
$ am kill-all

更多命令

推送文件到设备

1
$ adb push test.apk /data

拉取设备的文件到本地

1
2
$ adb pull /data/test.apk
$ adb pull /data/test.apk ~/Downloads

查看设备 SSN 号

1
$ adb shell getprop | grep ro.boot.serialno

参考

  • adb
  • Android使用ADB启动应用程序
最近更新
Alfred Workflow 命令行帮助工具
最近热读
Go 判断数组中是否包含某个 item
Vim 高级功能 vimgrep 全局搜索文件
办理北京工作居住证的一些细节
Go 语法错误:Non-declaration statement outside function body
Mac 电脑查看字体文件位置
扫码关注公众号,或搜索公众号“温欣爸比” 及时获取我的最新文章
赏

谢谢你请我喝咖啡

支付宝
微信
  • android
Python 列表的交集、并集、差集
Go 自动打开系统默认浏览器
  1. 1. Android 打开 USB 调试
  2. 2. 安装 adb
    1. 2.1. Mac OS X
  3. 3. 链接设备
  4. 4. 使用 shell 命令
  5. 5. 包管理
  6. 6. 进程管理
  7. 7. 更多命令
© 2017 - 2022 温欣爸比 京ICP备15062634号 总访问量1364414次 访客数1122162人次 本文总阅读量3607次 216.73.216.209
Hexo Theme Yilia by Litten
  • 所有文章
  • 友链
  • 关于我

tag:

  • python
  • flask
  • javascript
  • docker
  • 工具
  • openresty
  • 微信
  • java
  • hexo
  • 杂谈
  • vim
  • git
  • mysql
  • http
  • linux
  • mac
  • tmux
  • ssh
  • 算法
  • 开发
  • node
  • 杂文
  • jinja2
  • maven
  • spring
  • 北京
  • 生活
  • springboot
  • react
  • shell
  • graphql
  • iterm
  • expect
  • nginx
  • sqlalchemy
  • html
  • electron
  • vagrant
  • elastic
  • 宝贝
  • ansible
  • css
  • jquery
  • go
  • markdown
  • awk
  • redis
  • leetcode
  • zsh
  • 漫威
  • ssr
  • android
  • ffmpeg
  • chrome
  • vmware
  • youtube
  • windows
  • jupyter
  • excel
  • jq
  • Mac
  • Homebrew
  • mongo
  • py2
  • HomeBrew
  • movie
  • nodejs

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • Guru99
每天看书
每天背单词
每天一篇
写写代码
听听周杰伦
爱爱老婆