---
title: adb命令
categories:
- 常用命令
---

* 目录
{:toc}

#### adb 命令

adb 命令是 adb 这个程序自带的一些命令

`//`后面是追加注释下同


* 显示都有哪些设备连接
```adb devices ```

* 清空日志
```adb logcat  -c```

* 将日志从手机实时推出到电脑文件中
```adb logcat  -v threadtime >> test.log```

* 将电脑文件推到手机文件中
```adb push monkey.jar /sdcard```

* 从手机拉取到本地
```adb pull sdcard/test.txt /User/xx/xx/xx/xx``` //例如复制 Sdcard 下的 pull.txt 文件到 D 盘：

* 进入adb模式，操作手机
```adb shell```

* sdcard路径
`````/mnt/sdcard`````

* 设定指定的device
```adb -s deviceSerial shell```

PS:远程设备 adb -s ip:port shell

*  结束 adb 服务、启动 adb 服务
```adb kill-server、adb start-server```

* 安装app
```adb install``` //覆盖安装是使用 -r 选项，目标 apk 存放于 PC 端，请用 adb install 安装
```pm install``` //adb shell 命令，目标 apk 存放于 Android 设备上，请用 pm install 安装

* 卸载应用
```adb uninstall``` //后面跟的参数是应用的包名（特别注意），-k 选项，卸载时保存数据和缓存目录
```pm uninstall``` //同上安装

* 重启 Android 设备
```adb reboot```

* 进入 fastboot 模式
```bootloader、adb reboot-bootloader``` //进入 fastboot 模式
```recovery``` //进入 recovery 模式

* 将宿主机上的某个端口重定向到设备的某个端口
```adb forward tcp:1314 tcp:8888``` //执行该命令后所有发往宿主机 1314 端口的消息、数据都会转发到 Android 设备的 8888 端口上，因此可以通过远程的方式控制 Android 设备。
                                
* 远程连接 Android 设备
```adb connect ip:port``` //一般5555

#### adb shell 命令

```adb shell``` 命令则是调用的 Android 系统中的命令，这些 Android 特有的命令都放在了 Android 设备的 system/bin 目录下

*  列出安装在设备上的应用
```adb shell pm list package``` //显示的是 package:包名
    
    ```
    -s：列出系统应用
    -3：列出第三方应用
    -f：列出应用包名及对应的apk名及存放位置
    -i：列出应用包名及其安装来源
    ```
    
```adb shell pm list package -f -3 -i qutest``` //过滤关键字，可以很方便地查找自己想要的应用

* 列出对应包名的 .apk 位置
```adb shell pm path com.qu.test```

* 实时查看当前正在运行的Activity
```adb shell logcat | grep ActivityManager```

* 查看当前activity
```adb shell "dumpsys window | grep mCurrentFocus"```

* 列出含有单元测试 case 的应用
```pm list instrumentation```

* 获取当前安卓系统版本，并赋值给变量
```osVersion=$(adb devices shell getpropro.build.version.release)```

* 查看运行在 Android 设备上的 adb 后台进程
```adb shell ps | grep adbd```

* 列出指定应用的 dump 信息
```adb shell pm dump com.qu.test```

* 清除应用数据
```pm clear```

* 设置应用安装位置、获取应用安装位置
```pm set-install-location、pm get-install-location```

* 截图
```adb shell screencap -p /sdcard/screen.png``` //截屏，保存至 sdcard 目录
                                            
* 发送按键事件
```adb shell input keyevent KEYCODE_HOME```

* 显示所有输入法
```adb shell ime list -s``` //禁用的不显示

* 禁用输入法
```adb shell ime desable com.sohu.inputmethod.sogouoem/.SogouIME``` //com.sohu.inputmethod.sogouoem/.SogouIME是输入法id，由前面命令得到

* 将ADBKeyBoard输入法设置为默认输入法
```adb shell ime set com.android.adbkeyboard/.AdbIME```

* uiautomator传多参数
```adb shell uiautomator runtest jar包 -c 含监听方法的全类名 -e key1 value1 -e key2 value2```

* 关闭app
```adb shell am force-stop $packageName``` //app包名

* 输入
```adb shell input keyevent 3``` //3是键对应的值

* 设置代理
```adb shell settings put global http_proxy ip:port```

* 移除代理
```
adb shell settings delete global http_proxy
adb shell settings delete global global_http_proxy_host
adb shell settings delete global global_http_proxy_port 
```
//移除必须在重启后生效

仅供参考。后续遇到还会补充。。。
















