## ADB
**ADB**(全称:**Android Debug Bridge**,安卓调试桥)可让您与 Android 设备进行通信。`adb` 命令可用于执行各种设备操作,例如安装和调试应用。`adb` 提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。
### Connect
用于通过 USB 或无线接到 Android 设备
**通过 USB 连接设备:**
1. 开启开发者选项>USB调试
2. 插上连接线后允许 USB 调试
3. 查看设备是否已成功连接
```shell
$ adb devices
# 如果你看如下设备状态,说明连接成功
# List of devices attached
# 9XXXXXXXX device
```
**通过无线连接手机:**
1. 开启开发者选项>无线调试
2. 设置设备监听端口并连接
```shell
$ adb tcpip 5555
$ adb connect <设备IP地址>:5555
```
3. 断开连接
```shell
$ adb disconnect
```
### 其他常用命令
```shell
# 下载设备文件到本机
$ adb pull <remote> <local>
# 上传本机文件到设备
$ adb push <local> <remote>
# 安装 APK 文件
$ adb install <xxx.apk>
# 卸载应用
$ adb uninstall <包名>
# 设备上执行单条命令
$ adb shell <命令>
```
## Android Shell
Android Shell 是一种命令行接口,允许用户通过指令与 Android 设备进行交互和控制。它基于 Linux 的 Shell 环境,广泛应用于开发调试、功能测试和系统管理等场景。
可以通过命令 `adb shell` 进入设备的 Shell 环境,或使用 `adb shell <command>` 直接执行单条命令。
### Content Provider
用于与 Android 设备的 Content Provider 进行交互,包括查询、插入、更新和删除数据。
```shell
# 查看全部短信
$ adb shell content query --uri content://sms/
# 查看收到的短信
$ adb shell content query --uri content://sms/inbox --projection address,body,date
# 查看已发送的短信
$ adb shell content query --uri content://sms/sent --projection address,body,date
```
### Settings
用于查看更改 Android 设备设置,包括系统、全局和安全设置。
```shell
# 查看系统设置
$ adb shell settings list system
# 查看全局设置
$ adb shell settings list global
# 查看安全设置
$ adb shell settings list secure
$ adb shell settings get system volume_music
```
## AAPT2
**AAPT2**(Android Asset Packaging Tool 2,Android 资源打包工具)是一种构建工具,Android Studio 和 Android Gradle 插件使用它来编译和打包应用的资源文件。AAPT2 会解析资源、为资源编制索引,并将资源编译为针对 Android 平台进行过优化的二进制格式。
## 参考
https://developer.android.com/tools/releases/platform-tools
https://developer.android.com/tools/adb
https://developer.android.com/tools/aapt2