# Android Studio使用


<!--more-->


## 环境变量


### JDK环境安装

<img src="/images/posts/AndroidStudio使用/7.png" alt="图7"  />

找到变量为 `Path` 的，双击打开

<img src="/images/posts/AndroidStudio使用/8.png" alt="图8"  />




### SDK环境安装配置

**配置 ANDROID_SDK_ROOT 环境变量**

打开`控制面板` -> `系统和安全` -> `系统` -> `高级系统设置` -> `高级` -> `环境变量` -> `新建`，创建一个名为`ANDROID_SDK_ROOT`的环境变量（系统或用户变量均可），指向你的 Android SDK 所在的目录（具体的路径可能和下图不一致，请自行确认）：

<img src="/images/posts/AndroidStudio使用/5.png" alt="图5"  />

SDK 默认是安装在下面的目录：

```powershell
C:\Users\你的用户名\AppData\Local\Android\Sdk
```

你可以在 Android Studio 的"Preferences"菜单中查看 SDK 的真实路径，具体是**Appearance & Behavior → System Settings → Android SDK**。

> ANDROID_HOME（已弃用但兼容）
> - 作用：旧版 SDK 路径变量，仍被许多第三方工具（如 React Native、Flutter）使用
> - 建议：与 ANDROID_SDK_ROOT 设置为相同路径，确保兼容性
>
> Q: ANDROID_HOME 和 ANDROID_SDK_ROOT 冲突？
>
> A: 设置相同值即可，大部分工具会优先读取 ANDROID_SDK_ROOT


---

**把工具目录添加到环境变量 Path**

打开`控制面板` -> `系统和安全` -> `系统` -> `高级系统设置` -> `高级` -> `环境变量`，选中**Path**变量，然后点击**编辑**。点击**新建**然后把以下工具目录路径添加进去：platform-tools

```powershell
%ANDROID_SDK_ROOT%\platform-tools
```

---

**Path 变量补充说明**

需要将 SDK 工具目录添加到系统 Path：

1. platform-tools **（必需）**
- 路径：%ANDROID_SDK_ROOT%\platform-tools
- 用途：adb、fastboot 等命令

2. cmdline-tools **（推荐）**
- 路径：%ANDROID_SDK_ROOT%\cmdline-tools\latest\bin
- 用途：avdmanager、sdkmanager 等命令行工具

3. build-tools **（按需）**
- 路径：%ANDROID_SDK_ROOT%\build-tools\34.0.0（具体版本号）
- 用途：aapt、dx 等构建工具

---

<img src="/images/posts/AndroidStudio使用/11.png" alt="图11" width="826" height="618" />


### Gradle依赖库环境配置

```powershell
GRADLE_USER_HOME
```

<img src="/images/posts/AndroidStudio使用/6.png" alt="图6"  />

<img src="/images/posts/AndroidStudio使用/9.png" alt="图9" width="826" height="618" />

<img src="/images/posts/AndroidStudio使用/10.png" alt="图10" width="826" height="618" />





## uiautomatorviewer插件

<img src="/images/posts/AndroidStudio使用/1.png" alt="图1" width="758" height="562" />

<img src="/images/posts/AndroidStudio使用/2.png" alt="图2" width="795" height="445" />

使用命令手动获取界面信息，绕过 UI Automator Viewer 的图形界面截屏，直接从系统底层获取数据，可以有效避免焦点切换。


### 准备

> 问题：遇到的 uiautomatorviewer.bat 窗口一闪而过就关闭的问题，根本原因在于你项目使用的 JDK 与 uiautomatorviewer 这个较老的工具存在兼容性问题。
>
> 解决方案：直接修改 bat 文件，为其指定一个兼容的 JDK 8 路径，一劳永逸，不影响项目的 JDK 环境。

这个方法直接针对脚本本身进行修复，不影响你项目本身的 JDK 配置。

1.**找到文件**：定位到你的 Android SDK 目录下的 tools\bin\uiautomatorviewer.bat 文件。

2.**编辑文件**：右键点击该文件，选择“编辑”或用记事本等文本编辑器打开。

3.**修改JDK路径**：
- 在文件中找到类似 set java_exe=的代码行。
- 在这行代码的后面，手动添加你本地安装的 JDK 8 的 java.exe 的完整路径。例如：

```bat
set java_exe=C:\Program Files\Java\jdk1.8.0_281\bin\java.exe
```

然后，为了确保系统使用你指定的路径，建议将下一行可能存在的 call ..\lib\find_java.bat 用 rem 注释掉，修改后为：

```bat
rem call ..\lib\find_java.bat
```

4.**保存并运行**：保存对 bat 文件的修改，然后再次双击运行它。


### 使用

**步骤一：确认设备连接**

> 需要在 `环境变量 Path` 中添加 `%ANDROID_SDK_ROOT%\tools`，才能使用 `adb` 命令

确认你的虚拟机或真机已被正确列出且状态为 device，而不是 unauthorized或 offline

```bash
adb devices
```

---

重置 ADB 连接：有时候 ADB 服务会出现小故障。可以尝试运行以下命令来重启它

```bash
adb kill-server
adb start-server
```

---

**步骤二：获取界面布局文件**

在命令行中执行以下命令，将当前界面的 UI 层次结构文件从设备拉到电脑上（请将 E:/pull123/替换为你自己想保存的路径）：

``` bash
adb shell uiautomator dump /sdcard/app.uix
adb pull /sdcard/app.uix E:/pull123/app.uix
```

---

**步骤三：截取屏幕图片**

接着，截取一张屏幕截图并拉到电脑上：

``` bash
adb shell screencap -p /sdcard/app.png
adb pull /sdcard/app.png E:/pull123/app.png
```

---

**步骤四：在 UI Automator Viewer 中打开**

<img src="/images/posts/AndroidStudio使用/3.png" alt="图3" width="573" height="434" />

功能说明
- 图标1：打开本地保存的View树文件  
- 图标2：获取/刷新当前屏幕的详细控件层次结构  
- 图标3：获取当前屏幕的压缩View树信息  
- 图标4：将当前控件层次结构保存为文件（可通过图标1重新加载）

---

当你单击一个控件后，就会显示出来控件的详细信息，或者单击右侧的 View 树展示区，也会在屏幕显示相应的控件。

在右下侧的详细信息中我们重点关注三个栏目：

<img src="/images/posts/AndroidStudio使用/4.png" alt="图4" width="736" height="488" />

1. resource-id：对应于布局文件中的id属性，比如显示的 org.codeaurora.snapcam:id/mode_text，展示信息的规则是：packageName:id/xxx！
2. class：表示控件对象使用哪个类创建，选中的控件类型是 android.widget.TextView，就是这个控件的实际类型。
3. package：表示控件所在应用的包名，选中控件是相机上的一个控件，所以package值是org.codeaurora.snapcam，这个就是表示相机app的包名。




---
{.awesome-hr}

---

> 作者: [piliqiu](https://piliqiu.com/)  
> URL: https://piliqiu.com/posts/androidstudio%E4%BD%BF%E7%94%A8/  

