# Android Studio

## 目录
- [Android Studio功能](#android-studio功能)
- [项目管理](#项目管理)
- [代码编辑](#代码编辑)
- [调试工具](#调试工具)
- [性能分析](#性能分析)
- [插件使用](#插件使用)
- [常用功能](#常用功能)
- [最佳实践](#最佳实践)

---

## Android Studio功能

### 核心功能

```java
// 1. 代码编辑
// - 语法高亮
// - 代码补全
// - 代码重构
// - 代码格式化

// 2. 项目管理
// - 项目创建
// - 模块管理
// - 依赖管理
// - 版本控制

// 3. 构建和运行
// - Gradle 构建
// - 应用运行
// - 应用调试
// - APK 生成

// 4. 性能分析
// - CPU Profiler
// - Memory Profiler
// - Network Profiler
// - Energy Profiler

// 5. 测试支持
// - 单元测试
// - 集成测试
// - UI 测试
// - 测试覆盖率
```

### 界面组成

```java
// 1. 菜单栏（Menu Bar）
// - File：文件操作
// - Edit：编辑操作
// - View：视图控制
// - Navigate：导航
// - Code：代码操作
// - Refactor：重构
// - Build：构建
// - Run：运行
// - Tools：工具
// - VCS：版本控制
// - Window：窗口
// - Help：帮助

// 2. 工具栏（Toolbar）
// - 运行按钮
// - 调试按钮
// - 同步按钮
// - SDK Manager
// - AVD Manager

// 3. 项目视图（Project View）
// - 显示项目文件结构
// - 支持多种视图模式

// 4. 编辑器（Editor）
// - 代码编辑区域
// - 支持多标签页
// - 代码高亮

// 5. 工具窗口（Tool Windows）
// - Logcat：日志
// - Build：构建输出
// - Terminal：终端
// - TODO：待办事项
```

---

## 项目管理

### 创建项目

```java
// 1. File → New → New Project
// 2. 选择项目模板
// 3. 配置项目信息
//    - Name：项目名称
//    - Package name：包名
//    - Save location：保存路径
//    - Language：Java 或 Kotlin
//    - Minimum SDK：最低 SDK 版本
// 4. 完成创建
```

### 项目结构视图

```java
// 切换视图：
// - Project：完整文件结构
// - Android：Android 项目视图（推荐）
// - Packages：包视图
// - Project Files：项目文件视图
// - Scratches：临时文件
// - Problems：问题视图
```

### 模块管理

```java
// 添加模块：
// File → New → New Module
// - Android Library
// - Java or Kotlin Library
// - Feature Module

// 模块配置：
// File → Project Structure → Modules
// - 依赖管理
// - 构建配置
// - 签名配置
```

### Gradle管理

```java
// Gradle文件：
// - build.gradle (Project)：项目级配置
// - build.gradle (Module)：模块级配置
// - settings.gradle：项目设置

// Gradle同步：
// File → Sync Project with Gradle Files
// 或点击工具栏同步按钮

// Gradle任务：
// View → Tool Windows → Gradle
// 可以执行各种 Gradle 任务
```

---

## 代码编辑

### 代码补全

```java
// 基本补全：Ctrl + Space（Windows/Linux）
//          Command + Space（macOS）

// 智能补全：Ctrl + Shift + Space
//          Command + Shift + Space

// 语句补全：Ctrl + Shift + Enter
//          Command + Shift + Enter

// 类型补全：Ctrl + Alt + Space
```

### 代码生成

```java
// 生成代码：Alt + Insert（Windows/Linux）
//          Command + N（macOS）

// 可以生成：
// - Constructor
// - Getter/Setter
// - toString()
// - equals()/hashCode()
// - Override 方法
// - 测试方法
```

### 代码重构

```java
// 重命名：Shift + F6
// 提取方法：Ctrl + Alt + M
// 提取变量：Ctrl + Alt + V
// 提取常量：Ctrl + Alt + C
// 提取参数：Ctrl + Alt + P
// 内联：Ctrl + Alt + N
// 移动：F6
// 复制：F5
```

### 代码导航

```java
// 跳转到定义：Ctrl + B 或 Ctrl + 点击
//            Command + B
// 跳转到声明：Ctrl + Alt + B
//            Command + Alt + B
// 跳转到实现：Ctrl + Alt + B
// 查找用法：Alt + F7
//          Option + F7
// 显示用法：Ctrl + Alt + F7
// 最近文件：Ctrl + E
//          Command + E
// 最近位置：Ctrl + Shift + E
//          Command + Shift + E
// 查找类：Ctrl + N
//        Command + O
// 查找文件：Ctrl + Shift + N
//          Command + Shift + O
// 查找方法：Ctrl + F12
//          Command + F12
```

### 代码格式化

```java
// 格式化代码：Ctrl + Alt + L（Windows/Linux）
//            Command + Option + L（macOS）

// 优化导入：Ctrl + Alt + O
//          Command + Option + O

// 自动缩进：Ctrl + Alt + I
```

### 代码搜索

```java
// 文件内搜索：Ctrl + F
//            Command + F
// 全局搜索：Ctrl + Shift + F
//          Command + Shift + F
// 替换：Ctrl + R
//      Command + R
// 全局替换：Ctrl + Shift + R
//          Command + Shift + R
```

---

## 调试工具

### 断点调试

```java
// 设置断点：
// 1. 在代码行号左侧点击
// 2. 或使用 Ctrl + F8（Windows/Linux）
//    Command + F8（macOS）

// 断点类型：
// - 行断点：普通断点
// - 条件断点：满足条件时暂停
// - 日志断点：输出日志，不暂停
// - 异常断点：异常时暂停

// 调试操作：
// - 开始调试：Shift + F9
// - 继续：F9
// - 单步跳过：F8
// - 单步进入：F7
// - 单步跳出：Shift + F8
// - 停止：Ctrl + F2
//          Command + F2
```

### 调试窗口

```java
// 调试时显示：
// - Variables：变量值
// - Watches：监视表达式
// - Frames：调用栈
// - Console：控制台输出

// 查看变量：
// - 鼠标悬停查看
// - Variables 窗口查看
// - 添加到 Watches
```

### Logcat

```java
// 打开 Logcat：
// View → Tool Windows → Logcat

// 过滤日志：
// - 按包名过滤
// - 按标签过滤
// - 按级别过滤（Verbose、Debug、Info、Warn、Error）

// 搜索日志：
// Ctrl + F（Windows/Linux）
// Command + F（macOS）

// 清除日志：
// 点击清除按钮

// 保存日志：
// 右键 → Save Logcat to File
```

### 布局检查器

```java
// 打开布局检查器：
// Tools → Layout Inspector

// 功能：
// - 查看视图层次
// - 查看视图属性
// - 查看视图边界
// - 实时更新
```

---

## 性能分析

### CPU Profiler

```java
// 打开 CPU Profiler：
// View → Tool Windows → Profiler
// 或 Run → Profile 'app'

// 功能：
// - 记录 CPU 使用情况
// - 分析方法调用
// - 查找性能瓶颈
// - 线程分析

// 使用步骤：
// 1. 启动应用
// 2. 点击 CPU 时间线
// 3. 选择记录方法
// 4. 开始记录
// 5. 执行操作
// 6. 停止记录
// 7. 分析结果
```

### Memory Profiler

```java
// 打开 Memory Profiler：
// View → Tool Windows → Profiler

// 功能：
// - 查看内存使用
// - 捕获堆转储
// - 查找内存泄漏
// - 分析对象分配

// 使用步骤：
// 1. 启动应用
// 2. 点击 Memory 时间线
// 3. 执行操作
// 4. 捕获堆转储
// 5. 分析内存使用
```

### Network Profiler

```java
// 打开 Network Profiler：
// View → Tool Windows → Profiler

// 功能：
// - 监控网络请求
// - 查看请求详情
// - 分析网络性能
// - 查看请求时间线

// 使用步骤：
// 1. 启动应用
// 2. 点击 Network 时间线
// 3. 执行网络操作
// 4. 查看请求详情
```

### Energy Profiler

```java
// 打开 Energy Profiler：
// View → Tool Windows → Profiler

// 功能：
// - 监控电量使用
// - 分析电量消耗
// - 查找耗电问题

// 使用步骤：
// 1. 启动应用
// 2. 点击 Energy 时间线
// 3. 执行操作
// 4. 分析电量使用
```

---

## 插件使用

### 推荐插件

#### 1. ADB Idea

```java
// 功能：快速执行 ADB 命令
// 安装：File → Settings → Plugins → 搜索 "ADB Idea"

// 功能：
// - 卸载应用
// - 清除数据
// - 重启应用
// - 启动 Activity
```

#### 2. Android Drawable Importer

```java
// 功能：批量导入图片资源
// 安装：File → Settings → Plugins → 搜索 "Android Drawable Importer"

// 功能：
// - 自动生成不同密度图片
// - 批量导入图标
```

#### 3. GsonFormat

```java
// 功能：JSON 转 Java Bean
// 安装：File → Settings → Plugins → 搜索 "GsonFormat"

// 使用：
// 1. 右键 → Generate → GsonFormat
// 2. 粘贴 JSON
// 3. 生成 Java Bean
```

#### 4. CodeGlance

```java
// 功能：代码缩略图
// 安装：File → Settings → Plugins → 搜索 "CodeGlance"

// 功能：
// - 显示代码缩略图
// - 快速导航
```

#### 5. Rainbow Brackets

```java
// 功能：彩色括号匹配
// 安装：File → Settings → Plugins → 搜索 "Rainbow Brackets"

// 功能：
// - 彩色显示括号
// - 提高代码可读性
```

### 安装插件

```java
// 方式1：从插件市场安装
// 1. File → Settings → Plugins
// 2. 搜索插件名称
// 3. 点击 Install
// 4. 重启 Android Studio

// 方式2：从磁盘安装
// 1. File → Settings → Plugins
// 2. 点击齿轮图标 → Install Plugin from Disk
// 3. 选择插件文件
// 4. 重启 Android Studio
```

---

## 常用功能

### 快速修复

```java
// 显示快速修复：Alt + Enter
//              Option + Enter

// 可以修复：
// - 导入缺失的类
// - 添加缺失的方法
// - 修复语法错误
// - 优化代码
```

### 代码模板

```java
// 查看模板：File → Settings → Editor → Live Templates

// 常用模板：
// - sout：System.out.println()
// - logd：Log.d()
// - loge：Log.e()
// - ifn：if null
// - fori：for 循环
// - psf：public static final
```

### 多光标编辑

```java
// 添加光标：Alt + 点击
//          Option + 点击

// 添加下一个相同单词：Ctrl + Alt + Shift + J
//                    Command + Control + G

// 列选择：Alt + Shift + 拖动
//        Option + Shift + 拖动
```

### 代码折叠

```java
// 折叠代码：Ctrl + -
//          Command + -

// 展开代码：Ctrl + +
//          Command + +

// 折叠所有：Ctrl + Shift + -
//          Command + Option + -

// 展开所有：Ctrl + Shift + +
//          Command + Option + +
```

---

## 最佳实践

### 1. 性能优化

```java
// 1. 增加内存分配
// Help → Edit Custom VM Options
// -Xmx2048m（增加到 2048MB 或更多）

// 2. 禁用不必要的插件
// File → Settings → Plugins

// 3. 关闭不必要的工具窗口

// 4. 使用 SSD 硬盘
```

### 2. 代码质量

```java
// 1. 启用代码检查
// File → Settings → Editor → Inspections

// 2. 使用代码格式化
// 配置格式化规则
// File → Settings → Editor → Code Style

// 3. 使用代码审查
// 启用 Git 集成
```

### 3. 工作效率

```java
// 1. 使用快捷键
// 2. 使用代码模板
// 3. 使用代码片段
// 4. 使用插件
// 5. 配置代码补全
```

### 4. 项目组织

```java
// 1. 使用项目视图
// 2. 使用书签
// Ctrl + F11（Windows/Linux）
// F3（macOS）

// 3. 使用收藏夹
// Alt + Shift + F
// Option + Shift + F

// 4. 使用 TODO
// View → Tool Windows → TODO
```

---

## 常见问题

### 问题1：Android Studio卡顿

```java
// 解决方案：
// 1. 增加内存分配
// Help → Edit Custom VM Options
// -Xmx4096m

// 2. 禁用不必要的插件
// 3. 关闭不必要的工具窗口
// 4. 清理缓存
// File → Invalidate Caches / Restart
```

### 问题2：Gradle同步失败

```java
// 解决方案：
// 1. 检查网络连接
// 2. 配置 Gradle 代理
// File → Settings → Appearance & Behavior → System Settings → HTTP Proxy

// 3. 清理项目
// Build → Clean Project
// Build → Rebuild Project

// 4. 删除 .gradle 目录
// 5. 重新同步
```

### 问题3：代码补全不工作

```java
// 解决方案：
// 1. File → Invalidate Caches / Restart
// 2. File → Settings → Editor → General → Code Completion
//    检查设置
// 3. 重新索引项目
```

### 问题4：模拟器无法启动

```java
// 解决方案：
// 1. 检查 HAXM 是否安装（Windows/macOS）
// 2. 检查 BIOS 虚拟化是否启用
// 3. 尝试冷启动
// 4. 删除并重新创建 AVD
```

---

## 总结

Android Studio 是功能强大的 IDE，熟练掌握其功能可以大大提高开发效率。建议多实践，逐步掌握各种功能和快捷键。

---

*最后更新：2024年*
