主题
Android Studio 调研 & 0→1 入门指引
本文目标:让一个完全没碰过 Android 开发的人,看完这篇文档能说清「Android Studio 是个啥、为啥要用它、各个区域分别干什么、怎么从 0 创建并跑起一个 App」,并且对后面要学的 Gradle / Kotlin / 模拟器 / 调试有一个整体心智地图。
阅读姿势:建议泡杯咖啡,对着电脑边读边操作;纯看是看不会的。
第 1 章 Android Studio 到底是个什么玩意儿
1.1 一句话定义
Android Studio 是 Google 官方出品、基于 IntelliJ IDEA 改造的、专门用来开发 Android App 的集成开发环境(IDE)。
这句话有 4 个关键词,逐个拆开看:
| 关键词 | 含义 | 通俗类比 |
|---|---|---|
| Google 官方 | 谷歌亲儿子,Android 平台的"嫡系编辑器" | 就像微信只有腾讯出的最正宗 |
| 基于 IntelliJ IDEA | 内核是 JetBrains 公司的 IDEA,Google 在上面套了一层"安卓壳" | 像 Edge 浏览器是基于 Chromium 改的 |
| 集成开发环境(IDE) | 编辑器 + 编译器 + 调试器 + 模拟器 + 各种工具,一站式打包 | 跟"多功能瑞士军刀"一个意思,不是单一编辑器 |
| 专门开发 Android App | 写手机 App、平板、TV、Wear OS、Auto 都靠它 | 你不会用它写网页或者后端 |
1.2 IDE 是个啥?为啥不用记事本写?
很多新人会问:"写代码不就是写文本吗,为啥要装这么大一个软件?" 我们用做菜来类比:
┌──────────────────────────────────────────────────────────────┐
│ 做一道菜需要什么? │
├──────────────────────────────────────────────────────────────┤
│ │
│ 场景 A:用记事本写代码 ≈ 只给你一把菜刀 │
│ ─ 切菜可以,但要烧锅你得自己去找灶台 │
│ ─ 要调味你得自己去找盐罐 │
│ ─ 出问题了没人提醒,端上桌客人吃出沙子才知道 │
│ │
│ 场景 B:用 IDE 写代码 ≈ 直接给你一个开放式厨房 │
│ ─ 灶台、刀、调料、洗碗机、烟感报警器全配齐 │
│ ─ 切到手系统会喊"小心!"(语法检查、报红) │
│ ─ 自动补全 ≈ 抽油烟机自动开 │
│ ─ 调试器 ≈ 全程录像,慢动作回放找问题 │
│ ─ 一键上桌 ≈ 编译 + 安装 + 启动 App │
│ │
└──────────────────────────────────────────────────────────────┘所以 IDE = 一整套"代码厨房",Android Studio 就是这套厨房专门配置成"做安卓菜"的版本。
1.3 不用 Android Studio 行不行?
技术上当然可以。Android 开发的本质是:
┌─────────┐ 编译 ┌──────────┐ 打包 ┌─────────┐ 安装 ┌──────┐
│ 源码 │ ──────────► │ .class / │ ────────► │ .apk │ ────────► │ 手机 │
│ (Kt/Java)│ javac │ .dex 字节码│ aapt2 │ 安装包 │ adb │ │
└─────────┘ kotlinc └──────────┘ └─────────┘ └──────┘理论上你可以用记事本 + 命令行 + JDK + Android SDK + Gradle 全程手敲,但是:
- 编译指令长到让你怀疑人生
- 拼错一个单词找半天,没有自动补全
- 出 Bug 全靠
println打日志,没有可视化调试 - 想看界面长啥样?要自己装模拟器、自己 adb 推包、自己启动
Android Studio 把这些痛苦全打包屏蔽了,你只管写代码点"运行",剩下的它来。这就是它的最大价值。
1.4 简短家谱:Android Studio 怎么来的
2003 ── Android Inc. 成立(一家做相机系统的公司)
2005 ── Google 收购 Android Inc.(白菜价 5000 万美刀)
2008 ── 第一台 Android 手机 HTC Dream 发布
当时官方 IDE 叫 "ADT Plugin for Eclipse"(Eclipse + 插件)
2013 ── 🎉 Google I/O 大会发布 Android Studio 0.1(基于 IntelliJ IDEA)
宣布 Eclipse + ADT 即将停止维护
2014 ── Android Studio 1.0 正式版
2017 ── 同年宣布 Kotlin 成为 Android 一等公民
2019 ── Android Studio 3.5 主打"Project Marble",专注稳定性(之前真的很卡)
2020 ── Android Studio 4.0,Jetpack Compose 预览支持
2023 ── Android Studio Giraffe(开始用动物名字命名)
2024 ── Android Studio Koala / Ladybug,全面 AI 化(Gemini 接入)
2025 ── Android Studio Meerkat / Narwhal,K2 编译器、Compose 1.8📌 冷知识:Android Studio 从 2020 年开始用字母顺序的动物名命名(Arctic Fox → Bumblebee → Chipmunk → Dolphin → Electric Eel → Flamingo → Giraffe → Hedgehog → Iguana → Jellyfish → Koala → Ladybug → Meerkat → Narwhal …),跟 Ubuntu 用形容词 + 动物的玩法异曲同工。
1.5 Android Studio vs 它的"亲戚们"
| IDE | 谁家的 | 干啥的 | 跟 Android Studio 啥关系 |
|---|---|---|---|
| IntelliJ IDEA | JetBrains | 写 Java/Kotlin 后端 | AS 的爸爸,AS 是它+安卓插件 |
| Eclipse + ADT | Eclipse 基金会 + Google | 老一代 Android IDE | 被 AS 干掉的前任 |
| Visual Studio Code | Microsoft | 通用轻量编辑器 | 能写但工具链残缺,不推荐 |
| Xcode | Apple | 写 iOS App | iOS 阵营的对应物 |
| Fleet | JetBrains | 新一代轻量 IDE | JetBrains 的"未来计划" |
📌 生活化类比:把 IDE 比作车 —— IntelliJ IDEA 是底盘,Android Studio 是改装成的 SUV,Xcode 是苹果牌轿车,VS Code 是辆电瓶车(轻便但拉不动 Android 这种货)。
第 2 章 安装环境搭建:从 0 装到能跑
2.1 系统要求(2026 年版本)
| 项目 | 最低 | 推荐 | 备注 |
|---|---|---|---|
| 操作系统 | Win 10 / macOS 12 / Ubuntu 20.04 | Win 11 / macOS 14+ / Ubuntu 22.04 | M1/M2/M3/M4 Mac 完美原生支持 |
| 内存 | 8 GB | 16 GB 起步,32 GB 舒爽 | AS 本身吃 4-6 GB,模拟器再吃 2-4 GB |
| 硬盘 | 8 GB | 50 GB SSD | SDK + Gradle 缓存 + 模拟器镜像很占地 |
| CPU | 任意 64 位 | 8 核以上 | 编译 = 烧 CPU |
| 屏幕 | 1280×800 | 1080P 起步 | AS 侧边栏多,小屏会很挤 |
⚠️ 重要提醒:Android Studio 是出了名的吃硬件。如果你电脑只有 8 GB 内存,编译时电脑会卡到怀疑人生。预算允许,硬件别省。
2.2 安装三件套
要让 Android Studio 能跑起来,本质上需要三样东西:
┌──────────────────────────────────────────────────────────────┐
│ │
│ ① JDK ─ Java 运行时(AS 自身就是 Java 写的) │
│ ② Android SDK ─ 安卓系统的"开发库",编译 App 必备 │
│ ③ Android Studio ─ IDE 主体,自动包含 ① + ② 的安装向导 │
│ │
│ 👉 你只需下载 ③,它会引导你装 ① 和 ② │
│ │
└──────────────────────────────────────────────────────────────┘📌 生活类比:JDK 就像水电煤气(基础设施),Android SDK 就像家具家电(开发素材),Android Studio 就像装修队(带着工具来帮你建厨房)。装修队进场时会顺便帮你接好水电、搬好家具。
Step 1:下载
去官网 https://developer.android.com/studio ,点 "Download Android Studio"。会让你勾选「我同意条款」,然后就开始下了。
| 系统 | 下载文件 | 大小 |
|---|---|---|
| Windows | android-studio-XXX-windows.exe | ~1.2 GB |
| macOS (Intel) | android-studio-XXX-mac.dmg | ~1.3 GB |
| macOS (Apple Silicon) | android-studio-XXX-mac_arm.dmg | ~1.3 GB |
| Linux | android-studio-XXX-linux.tar.gz | ~1.2 GB |
⚠️ Mac 用户注意:M 系列芯片一定要下
mac_arm版本!下错 Intel 版能跑但走 Rosetta 转译,慢一倍 + 费电。
⚠️ 国内网络注意:官网偶尔抽风,可以用清华源镜像 https://mirrors.tuna.tsinghua.edu.cn/AndroidStudio/ 或者腾讯软件源。
Step 2:安装(无脑下一步)
- Windows:双击
.exe,全程 Next,建议装在非 C 盘(SSD 上),路径别带中文和空格。 - Mac:双击
.dmg,把图标拖到 Applications 文件夹。 - Linux:解压
tar.gz到/opt/android-studio/,运行bin/studio.sh。
Step 3:首次启动配置
第一次打开会进入 Setup Wizard(设置向导),会问你一堆问题:
┌───────────────────────────────────────────────────────┐
│ Welcome ─► Import Settings? [Do not import] │ ← 全新安装选这个
│ ─► UI Theme [Darcula / Light] │ ← 看个人喜好(程序员多选黑底)
│ ─► Install Type [Standard] │ ← 新手选标准
│ ─► SDK Components (默认勾选即可) │ ← 别动
│ ─► Verify Settings (确认要下载的内容) │ ← 看一下大小
│ ─► Download (~3-5 GB) │ ← 喝口茶等等
└───────────────────────────────────────────────────────┘下载内容包括:
- Android SDK Platform(最新版 Android 系统的开发库,~1 GB)
- SDK Build-Tools(编译工具链,~200 MB)
- Android Emulator(模拟器引擎,~500 MB)
- System Image(模拟器要跑的系统镜像,~1.5 GB)
- HAXM / Hypervisor(CPU 加速,让模拟器跑起来不卡)
⚠️ 国内卡下载? 配置 Gradle / SDK 镜像源,参考第 8 章「常见踩坑」。
2.3 SDK Manager 是什么 —— "App Store" 的安卓开发版
装完后你会经常听到 "SDK Manager" 这个词。它就在 AS 里面:
Settings → Languages & Frameworks → Android SDK(或者工具栏点那个方块图标)
┌─────────────────────────── SDK Manager ───────────────────────────┐
│ │
│ [SDK Platforms] [SDK Tools] [SDK Update Sites] │
│ │
│ ☑ Android 16 (Baklava) Level 36 已安装 │
│ ☐ Android 15 (VanillaIceCream) Level 35 未安装 │
│ ☑ Android 14 (UpsideDownCake) Level 34 已安装 │
│ ☐ Android 13 (Tiramisu) Level 33 未安装 │
│ ... │
│ [Apply] [Cancel] │
└───────────────────────────────────────────────────────────────────┘📌 生活化类比:SDK Manager 就像手机里的 App Store,但下载的不是 App,而是不同版本的 Android 系统镜像 + 开发工具。
- 想测你的 App 在 Android 14 上跑得怎样?就在这下载 Android 14 的镜像。
- Android 17 出新版本了?也在这装。
关键概念:API Level(API 等级)
| Android 版本号 | API Level | 代号 | 发布年份 |
|---|---|---|---|
| Android 16 | 36 | Baklava | 2025 |
| Android 15 | 35 | VanillaIceCream | 2024 |
| Android 14 | 34 | UpsideDownCake | 2023 |
| Android 13 | 33 | Tiramisu | 2022 |
| Android 12 | 31 | Snow Cone | 2021 |
| Android 11 | 30 | Red Velvet Cake | 2020 |
| Android 10 | 29 | Quince Tart | 2019 |
| Android 9 | 28 | Pie | 2018 |
API Level 就是给开发者用的版本编号。代码里写 minSdk = 24 意思是「这个 App 最低支持 Android 7.0(API 24)的机器」。
第 3 章 主界面巡礼:看懂这十几个区域分别是啥
打开一个项目后,你会看到一个密密麻麻的界面,新手第一反应是"懵了"。我们一块一块拆。
3.1 整体分区图(务必记住这张图)
┌────────────────────────────────────────────────────────────────────────┐
│ ① 菜单栏 File Edit View Navigate Code Refactor Build Run … │
├────────────────────────────────────────────────────────────────────────┤
│ ② 工具栏 [💾保存] [↶撤销] [✂剪切] 📱[Pixel_8 ▼] [▶运行] [🐞调试] [⚙] │
├──────────┬───────────────────────────────────────────────┬─────────────┤
│ │ │ │
│ ③ │ │ ⑤ │
│ 项目视图 │ ④ 代码编辑区 │ Gradle 面板 │
│ Project │ (写代码、画 UI 的主战场) │ / Device │
│ Tree │ │ Manager │
│ │ │ │
│ app/ │ class MainActivity : ... { │ │
│ java/ │ override fun onCreate(...) { │ │
│ res/ │ ... │ │
│ ... │ } │ │
│ │ } │ │
│ │ │ │
├──────────┴───────────────────────────────────────────────┴─────────────┤
│ ⑥ 底部工具窗口 [Logcat] [Build] [Run] [Terminal] [Profiler] [TODO] … │
├────────────────────────────────────────────────────────────────────────┤
│ ⑦ 状态栏 分支:main ●UTF-8 4 spaces Git: ✓ Memory: 1.2GB / 4GB │
└────────────────────────────────────────────────────────────────────────┘逐个解释:
① 菜单栏(顶部)
所有功能的总入口,找不到东西时去这里翻。重点关注 File(新建/打开)、Run(运行/调试)、Build(编译)、View → Tool Windows(调出隐藏的面板)。
② 工具栏
菜单的快捷按钮版。最重要的三个按钮:
- 📱 设备选择器:选择跑在哪个手机/模拟器上
- ▶ Run:编译 + 安装 + 启动 App(快捷键
Shift + F10) - 🐞 Debug:以调试模式跑(断点会生效,快捷键
Shift + F9)
📌 生活化类比:工具栏 = 手机 Dock 栏,把最常用的几个 App 钉在那。
③ Project(项目视图)
左边那棵文件树。展示项目的所有文件夹和文件。详细解读放第 4 章。
④ 代码编辑区
主战场,写代码、画 UI 都在这。支持多标签页(顶部一排文件名)、支持分屏(右键标签 → Split Right)。
⑤ 右侧工具窗口
默认折叠,里面常用的有:
- Gradle:构建任务列表
- Device Manager:模拟器和真机管理
- Resource Manager:图片、颜色、字符串等资源浏览
⑥ 底部工具窗口(重要!)
开发时眼睛要盯着的地方:
- Logcat:手机/模拟器的实时日志(相当于 console.log 的输出)
- Build:编译输出,构建失败信息看这
- Run:App 启动信息
- Terminal:内置终端(相当于打开了一个 cmd / bash)
- Profiler:性能分析(CPU、内存、网络、电量)
- Problems:所有错误和警告汇总
⑦ 状态栏
最不起眼但信息量很大:
- 当前 Git 分支(左下角),点击可以切换/新建分支
- 文件编码、缩进设置
- 内存占用:右下角,AS 自己吃了多少内存(不是 App 的内存)
- 构建状态:编译中/成功/失败
3.2 工具窗口的"开关"哲学
AS 几十个工具窗口怎么记?告诉你一个心法:
┌──────────────────────────────────────────────────────┐
│ 所有工具窗口都通过 View → Tool Windows 调出 │
│ 常用窗口都有 "数字快捷键": │
│ │
│ Alt + 1 → Project (项目视图) │
│ Alt + 2 → Bookmarks │
│ Alt + 3 → Find │
│ Alt + 4 → Run │
│ Alt + 5 → Debug │
│ Alt + 6 → Logcat ⭐ 高频 │
│ Alt + 7 → Structure │
│ Alt + 9 → Git │
│ │
│ 再按一次同样的快捷键 = 关闭 │
│ │
│ Mac 用户把 Alt 换成 ⌘ │
└──────────────────────────────────────────────────────┘📌 生活化类比:工具窗口就像桌面上的小窗口便签,Alt+数字是"按一下贴上来,再按一下撕下去"。
第 4 章 核心概念:Project / Module / Gradle / Manifest / 资源 / AVD
这一章是 Android 开发的心智地图,没搞清这些概念,后面寸步难行。
4.1 Project(项目)vs Module(模块)
┌──────────────────────────────────────────────────────────┐
│ 一个 Project(项目)可以包含 多个 Module(模块) │
│ │
│ MyAwesomeApp/ ← Project 根目录 │
│ ├── app/ ← Module 1:主 App │
│ ├── network-lib/ ← Module 2:网络库 │
│ ├── ui-components/ ← Module 3:通用 UI 组件库 │
│ ├── wear/ ← Module 4:手表端 │
│ └── settings.gradle.kts ← 注册所有 Module │
└──────────────────────────────────────────────────────────┘📌 生活化类比:
- Project = 一栋楼
- Module = 楼里的一户人家
- 每个 Module 自己有自己的水电(依赖、配置),但共用大楼的电梯/物业(公共设置、Gradle 仓库)
小项目通常只有 1 个 Module(叫
app),大项目可能有几十个 Module。
4.2 Android 项目的标准目录长啥样
打开一个新建项目,左侧 Project 视图你会看到:
MyApp/
├── .gradle/ ← Gradle 缓存(自动生成,别管)
├── .idea/ ← IDE 配置(自动生成,别管)
├── app/ ⭐ 主模块
│ ├── build/ ← 编译产物(自动生成,别管)
│ ├── libs/ ← 本地依赖的 .jar/.aar 文件
│ ├── src/
│ │ ├── main/ ⭐⭐⭐ 你写代码的地方
│ │ │ ├── java/ ← Kotlin / Java 源码(名字叫 java,但放 kt 也行)
│ │ │ │ └── com/example/myapp/
│ │ │ │ └── MainActivity.kt
│ │ │ ├── res/ ← 资源文件(图片/布局/字符串)
│ │ │ │ ├── drawable/ ← 图片、矢量图
│ │ │ │ ├── layout/ ← XML 布局文件(界面长啥样)
│ │ │ │ ├── values/ ← strings.xml / colors.xml / themes.xml
│ │ │ │ └── mipmap/ ← App 图标
│ │ │ └── AndroidManifest.xml ⭐ App 的"身份证"
│ │ ├── test/ ← 单元测试(在电脑上跑)
│ │ └── androidTest/ ← 仪器化测试(在手机上跑)
│ ├── build.gradle.kts ⭐ 本模块的 Gradle 构建脚本
│ └── proguard-rules.pro ← 代码混淆规则
├── gradle/
│ └── libs.versions.toml ← 版本目录(统一管理依赖版本)
├── build.gradle.kts ⭐ 顶层 Gradle 脚本
├── settings.gradle.kts ⭐ 注册有哪些 Module + 配置仓库
└── gradle.properties ← Gradle 全局参数(如 JVM 内存)新手只需要重点关注 5 个东西(其他的等用到再看):
| 文件/文件夹 | 干啥的 | 重要度 |
|---|---|---|
app/src/main/java/... | 写 Kotlin / Java 代码 | ⭐⭐⭐⭐⭐ |
app/src/main/res/layout/ | 写 UI 布局(XML) | ⭐⭐⭐⭐⭐ |
app/src/main/res/values/strings.xml | 写文案 | ⭐⭐⭐⭐ |
app/src/main/AndroidManifest.xml | 注册 Activity、申请权限 | ⭐⭐⭐⭐ |
app/build.gradle.kts | 添加第三方库依赖 | ⭐⭐⭐⭐⭐ |
4.3 Gradle —— 你绕不开的"包工头"
Gradle 是另一个大话题,本仓库
learnNote/client/gradle/有专门一套笔记。这里只讲入门必懂的最小集。
4.3.1 Gradle 是个啥?
Gradle 是 Android 的"构建工具",负责把你的源码编译、打包、签名、最终生成 .apk 文件。
┌─────────────────────────── Gradle 干的活 ───────────────────────────┐
│ │
│ 1. 下载第三方库(比如 OkHttp、Retrofit) │
│ 2. 把 .kt 编译成 .class │
│ 3. 把 .class 转成 .dex(Android 专用字节码) │
│ 4. 把所有资源(图片/XML)打包 │
│ 5. 把上面所有东西塞进一个 .apk 文件 │
│ 6. 用证书给 .apk 签名 │
│ 7. 准备好交给 adb 安装到手机 │
│ │
└────────────────────────────────────────────────────────────────────┘📌 生活化类比:
你在家裝修房子,自己买不到所有材料、不会铺水管、不会贴瓷砖。Gradle 就是你雇的"包工头" —— 你只用告诉他"我要 3 室 2 厅,地中海风格,预算 50 万",他就自己去采购材料、找瓦工、找电工、按时交付。
- 你给他清单 =
build.gradle.kts- 他自己的工具箱 = Gradle 本体
- 他认识的供应商 = Maven / Google 仓库
4.3.2 重点:两个 build.gradle 的区别
新手最容易搞混的就是项目里有两个 build.gradle 文件:
MyApp/
├── build.gradle.kts ← 顶层(Project 级)
└── app/
└── build.gradle.kts ← 模块级(App 级) ⭐ 90% 的修改在这| 文件 | 管什么 | 改的频率 |
|---|---|---|
顶层 build.gradle.kts | 全局插件版本、所有 Module 共享配置 | 极少改 |
app/build.gradle.kts | 当前模块的:插件、依赖库、SDK 版本、签名 | 经常改 |
4.3.3 一个 app/build.gradle.kts 长啥样
kotlin
plugins {
alias(libs.plugins.android.application) // ① 我是个 App 模块
alias(libs.plugins.kotlin.android) // ② 我用 Kotlin
}
android {
namespace = "com.example.myapp" // ③ 包名
compileSdk = 36 // ④ 编译用 Android 16 的库
defaultConfig {
applicationId = "com.example.myapp" // ⑤ App 在手机里的唯一 ID
minSdk = 24 // ⑥ 最低支持 Android 7.0
targetSdk = 36 // ⑦ 我专门为 Android 16 优化
versionCode = 1 // ⑧ 升级用的内部版本号
versionName = "1.0" // ⑨ 给用户看的版本号
}
}
dependencies {
implementation("androidx.core:core-ktx:1.13.1") // ⑩ 引入第三方库
implementation("androidx.appcompat:appcompat:1.7.0")
}每行都是 Gradle 在帮你配置"包工头要按什么标准盖楼"。
4.4 AndroidManifest.xml —— App 的"身份证"
每个 App 都必须有一个 AndroidManifest.xml,相当于这个 App 跟系统的自我介绍:
xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 我需要哪些权限?(联网、相机、定位…) -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<application
android:icon="@mipmap/ic_launcher" <!-- 我的图标长啥样 -->
android:label="@string/app_name" <!-- 我叫啥名字 -->
android:theme="@style/Theme.MyApp"> <!-- 我的主题色 -->
<!-- 我有哪些"页面"?这里要全部注册 -->
<activity
android:name=".MainActivity"
android:exported="true">
<!-- 这是我的"主入口"页面 -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>📌 生活化类比:Manifest 就像你入职公司时填的员工登记表 —— 名字、照片、能用的工位(权限)、能进哪些会议室(Activity 入口)全都写在上面。没登记的东西,门禁刷不开(系统不让你用)。
4.5 res/ 目录 —— 资源文件的"仓库"
为啥代码和图片要分开放?因为 Android 要做 多分辨率适配 + 多语言适配 + 多主题适配。
res/
├── drawable/ ← 默认分辨率图片
├── drawable-hdpi/ ← 高密度屏(旧机型)
├── drawable-xhdpi/ ← 超高密度(中端机)
├── drawable-xxhdpi/ ← 超超高密度(旗舰机) ← 现在主流
├── drawable-xxxhdpi/ ← 超超超高密度
├── values/strings.xml ← 中文(默认)
├── values-en/strings.xml ← 英文
├── values-ja/strings.xml ← 日文
├── values-night/ ← 暗黑模式专用配色
└── layout/
├── activity_main.xml ← 竖屏布局
└── layout-land/
└── activity_main.xml ← 横屏布局📌 生活化类比:
想象你开了家全国连锁奶茶店,菜单要做出 N 个版本:
- 北京店 → 默认菜单
- 广州店 → 加多粤式叫法(
values-zh-rHK/)- 美国店 → 全英文(
values-en/)- 夜场版本 → 黑底配色(
values-night/)系统会根据用户的语言、分辨率、黑暗模式自动选合适的版本。你只需要把不同版本放在对应文件夹,不需要写一行 if-else。
4.6 AVD —— 虚拟手机模拟器
AVD = Android Virtual Device,就是在你电脑上跑一台"假手机"。
┌──────────────────────────────────────────────────────────────┐
│ AVD Manager │
├──────────────────────────────────────────────────────────────┤
│ │
│ 📱 Pixel 8 API 36 (Android 16) ▶ 启动 │
│ 📱 Pixel 6a API 33 (Android 13) ▶ 启动 │
│ 📺 Android TV 1080p API 34 ▶ 启动 │
│ ⌚ Wear OS Round API 33 ▶ 启动 │
│ │
│ [+ Create Virtual Device] │
└──────────────────────────────────────────────────────────────┘📌 生活化类比:AVD 就像电脑里的虚拟机(VMware、VirtualBox),区别是它专门虚拟成手机,能模拟拨号、GPS 定位、电量、来电、传感器、摇晃手机……几乎啥都能模拟。
创建一台模拟器的步骤:
Tools → Device Manager- 点
+ Create Virtual Device - 选硬件型号(推荐 Pixel 8)→ 选系统镜像(推荐 API 34 / Android 14,主流)→ 起个名字 → Finish
- 列表里出现新设备,点 ▶ 启动
⚠️ 第一次启动会很慢(要冷启动整个 Android 系统),后面用快照就秒开了。
第 5 章 第一个 Hello World:从 0 到跑起来
来,跟着做一遍,全程不超过 15 分钟。
5.1 创建项目
- 打开 Android Studio,欢迎页点
New Project。 - 选模板:Empty Activity(最干净的模板,强烈推荐新手用这个)。
- 配置项目:
┌──────────────────────── 新建项目配置 ─────────────────────────┐
│ │
│ Name HelloWorld │
│ Package name com.example.helloworld │
│ Save location /Users/you/AndroidStudioProjects/HelloWorld │
│ Language Kotlin ⬅ 一定选 Kotlin,别选 Java │
│ Min SDK API 24 ("Android 7.0") ⬅ 兼容 ~99% 设备 │
│ Build language Kotlin DSL (.kts) ⬅ 现代选这个 │
│ │
│ [Cancel] [Finish] │
└──────────────────────────────────────────────────────────────┘- 点 Finish,等 Gradle 同步。第一次会很慢(要下一堆依赖),后面就秒开了。
5.2 看懂自动生成的代码
打开 app/src/main/java/com/example/helloworld/MainActivity.kt:
kotlin
package com.example.helloworld
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MaterialTheme {
Surface(modifier = Modifier.fillMaxSize()) {
Greeting("Android")
}
}
}
}
}
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}逐行理解:
class MainActivity : ComponentActivity()
─────────────────────────────────────────
定义一个"页面"类,继承自 ComponentActivity
(所有 Compose 页面都从这继承)
override fun onCreate(...)
─────────────────────────────────────────
页面被创建时系统自动调用的"生命周期方法"
类比:你出生时医生会做的体检(开机仪式)
setContent { ... }
─────────────────────────────────────────
告诉系统"这个页面要显示啥"
花括号里就是 UI 内容(用 Compose 写的)
@Composable fun Greeting(name: String)
─────────────────────────────────────────
定义一个 UI 组件函数(@Composable 是关键标记)
类比:搭积木里的一个"标准积木块"5.3 运行到模拟器
- 工具栏左侧选好刚才创建的 AVD(比如
Pixel 8 API 36)。 - 点 ▶ Run(或按
Shift + F10)。 - 等待:
- Build(10-30 秒,看你电脑速度)
- Install(2-3 秒,把 .apk 推到模拟器)
- Launch(1 秒,启动 App)
- 模拟器上出现 "Hello Android!" 就成功了 🎉
5.4 改一行试试看
把 Greeting("Android") 改成 Greeting("世界"),再点 ▶ Run。看到 "Hello 世界!" 出现,恭喜你 —— 完成了人生第一次 Android App 的修改 + 运行循环。
第 6 章 日常开发必备技能
6.1 高频代码编辑技巧
| 操作 | 快捷键 (Win/Linux) | 快捷键 (Mac) | 用途 |
|---|---|---|---|
| 代码补全 | Ctrl + Space | ⌃ + Space | 让 IDE 提示候选 |
| 智能补全 | Ctrl + Shift + Space | ⌃ + ⇧ + Space | 按类型过滤的补全 |
| 快速修复 | Alt + Enter | ⌥ + Enter | 错误旁边的"灯泡",一键修复 |
| 重命名 | Shift + F6 | ⇧ + F6 | 重命名变量/方法/类,全项目同步 |
| 跳转定义 | Ctrl + 鼠标点击 | ⌘ + 鼠标点击 | 跳到函数/类的定义处 |
| 返回上次位置 | Ctrl + Alt + ← | ⌘ + ⌥ + ← | 跳来跳去后回到出发点 |
| 查找类 | Ctrl + N | ⌘ + O | 按类名搜索文件 |
| 查找文件 | Ctrl + Shift + N | ⌘ + ⇧ + O | 按文件名搜索 |
| 全局搜索 | Shift + Shift | ⇧ + ⇧ | 双击 Shift,搜一切 |
| 格式化代码 | Ctrl + Alt + L | ⌘ + ⌥ + L | 一键美化代码 |
📌 生活化类比:快捷键就像炒菜的"颠勺"动作,新手用锅铲一勺一勺翻也能炒,但老司机颠两下就好。前期记住这 10 个,效率立刻翻倍。
6.2 Debug 调试 —— 不会调试的程序员不是好程序员
调试的核心思路:让程序在某行停下来,让你看变量当时的值。
加断点
在代码左侧行号那一栏点一下,出现一个红圆点 = 断点。
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
● super.onCreate(savedInstanceState) ← 这行打了断点
setContent {
val message = computeMessage()
● Greeting(message) ← 这行也打了断点
}
}
}用 Debug 模式跑
点 🐞 Debug 按钮(不是 ▶ Run),程序会跑到断点处停下。
调试工具栏
┌─────────────── Debug 控制按钮 ───────────────┐
│ │
│ F8 Step Over ─ 单步执行(不进函数) │
│ F7 Step Into ─ 单步进入(钻进函数) │
│ Shift+F8 Step Out ─ 跳出当前函数 │
│ F9 Resume ─ 继续跑到下个断点 │
│ │
└──────────────────────────────────────────────┘下方 Variables 面板显示当前所有变量的值,Watches 可以监控你关心的表达式。
📌 生活化类比:Debug 就像电影慢动作回放 —— 平时一秒过去的事,你可以一帧一帧看,看球到底是先碰了脚还是先碰了手。
6.3 Logcat —— App 的"心电图"
Logcat 是 Android 设备的实时日志输出窗口,开发时永远开着。
在代码里打日志
kotlin
import android.util.Log
class MainActivity : ComponentActivity() {
companion object {
private const val TAG = "MainActivity"
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d(TAG, "页面创建了")
Log.i(TAG, "用户 ID = 12345")
Log.w(TAG, "警告:网络速度慢")
Log.e(TAG, "出错了!", exception)
}
}| 级别 | 方法 | 颜色 | 用途 |
|---|---|---|---|
| Verbose | Log.v() | 灰 | 啥都打,最啰嗦 |
| Debug | Log.d() | 蓝 | 调试信息(最常用) |
| Info | Log.i() | 绿 | 普通业务信息 |
| Warning | Log.w() | 黄 | 警告,但不致命 |
| Error | Log.e() | 红 | 错误!必须关注 |
Logcat 窗口怎么用
底部 Logcat 标签打开,会看到密密麻麻的日志。重点是过滤:
- 顶部下拉框选你的 App(比如
com.example.helloworld) - 搜索栏输入
tag:MainActivity只看你打的标签 - 输入
level:error只看错误 - 多个条件可以组合:
tag:MainActivity level:warn
📌 生活化类比:Logcat 是 App 的朋友圈 —— 它把所有"我在干啥"都发出来。Tag 就是话题标签 #MainActivity,过滤就像在朋友圈搜某个人的发言。
6.4 Layout Inspector —— UI 的"X光机"
App 跑起来后,想知道某个按钮为啥位置不对、为啥颜色不对?
Tools → Layout Inspector,选你的 App 进程,能看到:
- 当前界面的完整 UI 树(每个组件的层级关系)
- 任意组件的所有属性(宽高、颜色、padding…)
- 3D 旋转视图,看哪些 View 重叠了
📌 生活化类比:相当于给 App 拍 X 光片,皮肤底下的骨头一清二楚。
6.5 Profiler —— 性能体检工具
View → Tool Windows → Profiler,能监控:
| 指标 | 看什么 | 类比 |
|---|---|---|
| CPU | App 在哪个线程跑了多少时间 | 体检看心率 |
| Memory | 内存占用、对象数量、GC 次数 | 看血压 |
| Network | 网络请求时长、流量 | 看血糖 |
| Energy | 耗电情况 | 看体重变化 |
新手前期不用太关注,写 App 写到一定规模、用户反馈"卡顿/费电"时再用。
第 7 章 必背 20 个快捷键(背会效率翻倍)
下面默认显示 Win/Linux 快捷键,Mac 用户把
Ctrl换成⌘、Alt换成⌥、Shift换成⇧。
编辑类
| 快捷键 | 作用 |
|---|---|
Ctrl + D | 复制当前行 |
Ctrl + Y | 删除当前行 |
Ctrl + / | 单行注释切换 |
Ctrl + Shift + / | 多行块注释 |
Ctrl + Alt + L | 格式化代码 |
Alt + Enter | 自动修复(万能灯泡) |
Ctrl + Space | 触发自动补全 |
Ctrl + W | 智能选中(逐级扩大选区) |
导航类
| 快捷键 | 作用 |
|---|---|
Shift + Shift | 全局搜(搜一切) |
Ctrl + N | 搜类 |
Ctrl + Shift + N | 搜文件 |
Ctrl + B | 跳到定义 |
Ctrl + Alt + ← / → | 后退/前进 |
Ctrl + E | 最近打开的文件 |
Ctrl + F | 当前文件查找 |
Ctrl + Shift + F | 全局查找 |
Ctrl + R | 当前文件替换 |
运行调试类
| 快捷键 | 作用 |
|---|---|
Shift + F10 | Run |
Shift + F9 | Debug |
Ctrl + F2 | 停止运行 |
F8 / F7 / F9 | 调试单步控制 |
💡 学习建议:不要一次背完,每周强迫自己用 2-3 个,肌肉记忆形成后就忘不了了。
第 8 章 常见踩坑 & 排雷指南
8.1 国内网络 —— Gradle 卡死下载
现象:新建项目卡在 "Gradle Build" 一两个小时不动,最后报 Connection timed out。
原因:Gradle 默认从 Google 仓库下依赖,国内访问慢。
解决:编辑 settings.gradle.kts:
kotlin
pluginManagement {
repositories {
maven { url = uri("https://mirrors.tencent.com/nexus/repository/maven-public/") }
maven { url = uri("https://mirrors.aliyun.com/repository/google/") }
maven { url = uri("https://mirrors.aliyun.com/repository/jcenter/") }
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven { url = uri("https://mirrors.tencent.com/nexus/repository/maven-public/") }
maven { url = uri("https://mirrors.aliyun.com/repository/google/") }
google()
mavenCentral()
}
}8.2 模拟器启动失败
现象 1:HAXM is not installed 或 Hypervisor not found
原因:缺少 CPU 虚拟化加速。
解决:
- Win 10/11:BIOS 开启 "Intel VT-x" 或 "AMD-V",安装 "Windows Hypervisor Platform"
- Mac:M 系列免配,Intel 在 BIOS 开 VT-x
- Linux:
sudo apt install qemu-kvm,把当前用户加入kvm组
现象 2:模拟器启动后白屏卡死
解决:删了重建,选不带 Google APIs 的纯净镜像,或者降一个版本(比如从 API 36 降到 API 34)。
8.3 Gradle 版本冲突
现象:A problem occurred configuring root project. Could not find ...
解决套路:
File → Invalidate Caches → Invalidate and Restart(清缓存重启)- 还不行 → 删掉项目根目录下
.gradle/和.idea/文件夹,重启 AS - 还不行 → 检查
gradle/wrapper/gradle-wrapper.properties的版本是否被锁
8.4 内存爆炸:AS 越用越卡
现象:用一会儿就卡,输入都跟不上。
解决:
Help → Edit Custom VM Options,加大堆:
-Xmx8g
-XX:ReservedCodeCacheSize=2g- 关掉用不上的插件
Settings → Plugins - 大型项目用
Power Save Mode(File 菜单底部)
8.5 真机调试连不上
现象:插了 USB 线,AS 看不到设备。
解决:
- 手机:开发者选项 → 开启 USB 调试
- 弹出 "允许此电脑调试" 时点允许
- 选 USB 模式为 MTP / 文件传输(别选"仅充电")
- 终端跑
adb devices,能看到设备 ID 才算成功 - Win 用户:去手机厂商官网下 USB 驱动
第 9 章 推荐学习路线(0→1→精通)
9.1 三阶段路线图
┌──────────────────────────────────────────────────────────────────┐
│ │
│ 🌱 第一阶段:能动手 (1-2 周) │
│ ───────────────────────────────────────── │
│ ① 装好 Android Studio + 跑通 Hello World │
│ ② 学 Kotlin 基础语法(变量、函数、类、集合、Lambda) │
│ → 跟着本仓库 learnNote/client/kotlin/ 系列 │
│ ③ 看懂 Project / Module / Manifest / 资源目录 │
│ ④ 写一个"待办事项"小 App(界面 + 列表 + 按钮) │
│ │
│ 🌿 第二阶段:能写实用 App (1-2 月) │
│ ───────────────────────────────────────── │
│ ① Jetpack Compose(现代 UI,必学) │
│ ② Activity / Fragment / Lifecycle 生命周期 │
│ ③ Navigation 页面跳转 │
│ ④ 协程(Coroutine)+ Flow │
│ ⑤ Retrofit + OkHttp 网络请求 │
│ ⑥ Room 本地数据库 │
│ ⑦ 学 Gradle 构建(learnNote/client/gradle/) │
│ │
│ 🌳 第三阶段:能上线 + 性能优化 (3-6 月) │
│ ───────────────────────────────────────── │
│ ① 架构模式:MVVM / MVI / Clean Architecture │
│ ② 依赖注入:Hilt / Koin │
│ ③ 多 Module / 组件化 │
│ ④ 性能优化:内存、启动速度、ANR、电量 │
│ ⑤ 签名打包、发布到应用市场(Google Play / 国内市场) │
│ ⑥ CI/CD:Github Actions、Gradle 自动化 │
│ │
└──────────────────────────────────────────────────────────────────┘9.2 推荐资源
| 类型 | 资源 | 链接 |
|---|---|---|
| 官方文档 | Android Developers | https://developer.android.com |
| 官方教程 | Codelabs(互动课程) | https://developer.android.com/codelabs |
| 官方示例 | Now in Android(Google 官方示例 App) | https://github.com/android/nowinandroid |
| 社区 | Android Weekly | https://androidweekly.net |
| 中文社区 | 玩 Android | https://wanandroid.com |
| 视频 | Android Developers YouTube | YouTube 搜 "Android Developers" |
9.3 给新手的 5 条心法
- 不要试图一次搞懂所有东西。Android 知识点多到让人窒息,先跑通一个最简单的 App,再慢慢加东西。
- Compose 优先,XML 后学。新项目都用 Compose,XML 当历史遗留了解即可。
- Kotlin 必须先学。Java 老项目可以兼容,但新代码 100% 写 Kotlin。
- 遇到问题先看 Logcat,再看 Build 输出,再 Google,最后问人。
- 多读官方文档,国内博客很多过时(2020 年前的 Android 教程基本都过期了)。
附录 A:术语速查表
| 缩写 / 术语 | 全称 / 含义 |
|---|---|
| IDE | Integrated Development Environment 集成开发环境 |
| SDK | Software Development Kit 软件开发工具包 |
| NDK | Native Development Kit 原生开发工具包(C/C++ 用) |
| JDK | Java Development Kit Java 开发工具包 |
| AVD | Android Virtual Device 安卓虚拟设备(模拟器) |
| APK | Android Package 安卓安装包 |
| AAB | Android App Bundle 安卓应用包(上架 Google Play 用) |
| ADB | Android Debug Bridge 安卓调试桥(命令行工具) |
| DEX | Dalvik EXecutable 安卓虚拟机字节码格式 |
| AAPT | Android Asset Packaging Tool 资源打包工具 |
| HAXM | Hardware Accelerated Execution Manager 硬件加速管理器(模拟器加速) |
| API Level | Android 系统对开发者的版本编号 |
| Manifest | 清单文件,App 的"身份证" |
| Activity | 一个"页面",App 的基本组件 |
| Fragment | 页面的"碎片",可复用的 UI 模块 |
| Intent | 意图,组件之间的"通信信封" |
| Compose | Jetpack Compose,新一代 UI 框架 |
| Gradle | 构建工具,项目"包工头" |
| Logcat | 日志输出工具 |
| R 文件 | 自动生成的资源 ID 索引(R.string.app_name) |
附录 B:本文档与本仓库其他笔记的关系
📁 learnNote/client/
├── andriod_studio.md ⬅ 你正在读的这篇(IDE 入门)
├── kotlin/ ⬅ Kotlin 语言(写 App 的基本功)
│ ├── 01_intro.md
│ ├── 02_environment.md
│ ├── 03_basic_syntax.md
│ └── ...
└── gradle/ ⬅ Gradle 构建(编译打包的发动机)
├── 01_intro.md
├── 02_environment.md
└── ...学习顺序建议:
andriod_studio.md (本文)
│
├──► kotlin/ 系列 ← 学语言
│
└──► gradle/ 系列 ← 学构建
│
▼
开始写真正的 App 项目✅ 完结撒花
看完这篇,你应该已经:
- 知道 Android Studio 是啥、为啥用它
- 装好了开发环境
- 看懂了主界面的各个区域
- 理解了 Project / Module / Gradle / Manifest / 资源 / AVD 这些核心概念
- 跑通了人生第一个 Android App
- 掌握了日常开发的调试 / 日志 / 快捷键
- 知道下一步该学啥
接下来去
learnNote/client/kotlin/01_intro.md学 Kotlin 语言吧 —— 写 App 的真正基本功。