ADB/ADB shell

ADB(Android Debug Bridge)是Android开发工具包(Android SDK)的一部分,是一个命令行工具,它充当电脑与Android设备之间的桥梁,提供多种功能,主要包括:

0. 使用 adb shell/run-as 包名 可以看到data/data/包名 里面的数据,其他的目录还不行。

1. **设备连接管理**:
   - 列出连接到电脑的所有Android设备或模拟器:`adb devices`
   - 启动、停止或重启设备的ADB服务:`adb start-server`, `adb kill-server`

2. **应用程序部署**:
   - 将APK文件安装到设备上:`adb install <path_to_apk>`
   - 卸载应用程序:`adb uninstall <package_name>`
   - 推送文件到设备:`adb push <local_path> <remote_path>`
   - 从设备拉取文件到电脑:`adb pull <remote_path> <local_path>`

3. **调试和日志收集**:
   - 查看设备日志输出:`adb logcat`
   - 过滤和保存日志:`adb logcat -v <format> > <log_file.txt>`
   - 连接调试器:`adb forward tcp:<port> jdwp:<pid>` 或 `adb shell am start --activity-clear-top -D <component>`
   - 在设备上运行shell命令:`adb shell <command>`
   - 查看设备CPU和内存信息:如前所述的内存和CPU查询命令

4. **屏幕截图和录屏**:
   - 截取设备屏幕快照:`adb exec-out screencap -p > screenshot.png`
   - 录制设备屏幕:`adb shell screenrecord /sdcard/screen.mp4`

5. **设备控制**:
   - 进入或退出设备的shell环境:`adb shell`
   - 模拟按键事件:`adb shell input keyevent <key_code>`
   - 启动Activity或BroadcastReceiver:`adb shell am start <intent>`

6. **访问设备文件系统**:
   - 列出设备内部存储中的文件:`adb shell ls /sdcard/`
   - 创建、删除、移动设备中的文件或目录:通过adb shell执行相关Linux命令

7. **多设备支持**:
   - 对单个设备或指定序列号的设备操作:`adb -s <device_serial_number> <command>`

8. **远程调试**:
   - 支持无线连接设备进行调试:通过`adb pair`和`adb connect`命令实现无线ADB连接

通过ADB,开发者可以进行应用程序的测试、调试、性能分析以及系统级别的诊断和控制等操作。它是Android开发过程中不可或缺的工具之一。

`adb shell` 是Android Debug Bridge (ADB) 中的一个命令,它允许用户在电脑上通过命令行界面进入Android设备或模拟器的Linux shell环境,从而可以直接在设备上执行各种命令,比如查看文件系统内容、修改系统设置、运行系统命令、检查系统资源占用情况(如CPU、内存)、启动应用等。

当你运行 `adb shell` 命令后,你将获得一个交互式的shell提示符,可以在这个环境中像在Linux终端一样输入和执行命令。例如:

```shell
adb shell
```

进入shell后,你可以执行以下操作:

- 查看设备内存信息:
  ```shell
  cat /proc/meminfo
  ```

- 查看CPU负载:
  ```shell
  top
  ```

- 查看当前目录下的文件列表:
  ```shell
  ls
  ```

- 运行某个应用:
  ```shell
  am start -n com.example.app/.MainActivity
  ```

- 更改系统设置(需root权限):
  ```shell
  settings put system setting_name value
  ```

注意:部分操作可能需要设备开启USB调试,并赋予相应权限才能执行。此外,对系统级的操作往往需要设备具有root权限。

除了前面提到的基本功能外,`adb shell` 还有更多实用的功能:

1. **模拟用户输入**:
   - 发送按键事件:例如,模拟点击Home键或Back键
     ```shell
     input keyevent KEYCODE_HOME
     input keyevent KEYCODE_BACK
     ```
   - 触摸事件:模拟手指触摸屏幕的动作
     ```shell
     input tap x y
     ```
   - 滑动事件:模拟手指滑动屏幕的动作
     ```shell
     input swipe x1 y1 x2 y2 duration
     ```

2. **查看电池信息**:
   ```shell
   dumpsys battery
   ```

3. **查看网络信息**:
   ```shell
   netstat -tulpn
   ```

4. **查看设备属性**:
   ```shell
   getprop
   ```

5. **更改设备设置**:
   - 设置屏幕亮度
     ```shell
     su -c 'echo X > /sys/class/backlight/<backlight_device>/brightness'
     ```
   - 关闭或开启Wi-Fi
     ```shell
     svc wifi enable/disable
     ```

6. **定位并杀死应用进程**:
   ```shell
   ps | grep <package_name>
   kill <pid>
   ```

7. **查看应用的日志输出**:
   ```shell
   logcat -s <tag_name>
   ```

8. **备份与恢复数据**:
   - 备份某个应用的数据:
     ```shell
     adb backup -apk -shared -all -f backup.ab <package_name>
     ```
   - 恢复备份的数据:
     ```shell
     adb restore backup.ab
     ```

9. **截取屏幕截图**:
   ```shell
   screencap -p /sdcard/screenshot.png
   ```

10. **执行Shell脚本**:
    可以将一系列命令写入文本文件,然后在adb shell下执行该脚本:
    ```shell
    adb shell sh /path/to/script.sh

    ```

以上只是`adb shell`众多功能中的一部分,实际上,由于其能访问到设备底层,因此可以进行许多高级操作,如调试系统服务、修改系统配置文件等。不过,请注意在进行此类操作时,必须谨慎对待,以防误操作导致设备出现问题。

  • 27
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值