Skip to content

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 IDEAJetBrains写 Java/Kotlin 后端AS 的爸爸,AS 是它+安卓插件
Eclipse + ADTEclipse 基金会 + Google老一代 Android IDE被 AS 干掉的前任
Visual Studio CodeMicrosoft通用轻量编辑器能写但工具链残缺,不推荐
XcodeApple写 iOS AppiOS 阵营的对应物
FleetJetBrains新一代轻量 IDEJetBrains 的"未来计划"

📌 生活化类比:把 IDE 比作车 —— IntelliJ IDEA 是底盘,Android Studio 是改装成的 SUV,Xcode 是苹果牌轿车,VS Code 是辆电瓶车(轻便但拉不动 Android 这种货)。


第 2 章 安装环境搭建:从 0 装到能跑

2.1 系统要求(2026 年版本)

项目最低推荐备注
操作系统Win 10 / macOS 12 / Ubuntu 20.04Win 11 / macOS 14+ / Ubuntu 22.04M1/M2/M3/M4 Mac 完美原生支持
内存8 GB16 GB 起步,32 GB 舒爽AS 本身吃 4-6 GB,模拟器再吃 2-4 GB
硬盘8 GB50 GB SSDSDK + Gradle 缓存 + 模拟器镜像很占地
CPU任意 64 位8 核以上编译 = 烧 CPU
屏幕1280×8001080P 起步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"。会让你勾选「我同意条款」,然后就开始下了。

系统下载文件大小
Windowsandroid-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
Linuxandroid-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 1636Baklava2025
Android 1535VanillaIceCream2024
Android 1434UpsideDownCake2023
Android 1333Tiramisu2022
Android 1231Snow Cone2021
Android 1130Red Velvet Cake2020
Android 1029Quince Tart2019
Android 928Pie2018

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 定位、电量、来电、传感器、摇晃手机……几乎啥都能模拟。

创建一台模拟器的步骤

  1. Tools → Device Manager
  2. + Create Virtual Device
  3. 选硬件型号(推荐 Pixel 8)→ 选系统镜像(推荐 API 34 / Android 14,主流)→ 起个名字 → Finish
  4. 列表里出现新设备,点 ▶ 启动

⚠️ 第一次启动会很慢(要冷启动整个 Android 系统),后面用快照就秒开了。


第 5 章 第一个 Hello World:从 0 到跑起来

来,跟着做一遍,全程不超过 15 分钟

5.1 创建项目

  1. 打开 Android Studio,欢迎页点 New Project
  2. 选模板:Empty Activity(最干净的模板,强烈推荐新手用这个)。
  3. 配置项目:
   ┌──────────────────────── 新建项目配置 ─────────────────────────┐
   │                                                              │
   │   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]  │
   └──────────────────────────────────────────────────────────────┘
  1. 点 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 运行到模拟器

  1. 工具栏左侧选好刚才创建的 AVD(比如 Pixel 8 API 36)。
  2. 点 ▶ Run(或按 Shift + F10)。
  3. 等待:
    • Build(10-30 秒,看你电脑速度)
    • Install(2-3 秒,把 .apk 推到模拟器)
    • Launch(1 秒,启动 App)
  4. 模拟器上出现 "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)
    }
}
级别方法颜色用途
VerboseLog.v()啥都打,最啰嗦
DebugLog.d()调试信息(最常用)
InfoLog.i()绿普通业务信息
WarningLog.w()警告,但不致命
ErrorLog.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,能监控:

指标看什么类比
CPUApp 在哪个线程跑了多少时间体检看心率
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 + F10Run
Shift + F9Debug
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 模拟器启动失败

现象 1HAXM is not installedHypervisor not found

原因:缺少 CPU 虚拟化加速。

解决

  • Win 10/11:BIOS 开启 "Intel VT-x" 或 "AMD-V",安装 "Windows Hypervisor Platform"
  • Mac:M 系列免配,Intel 在 BIOS 开 VT-x
  • Linuxsudo apt install qemu-kvm,把当前用户加入 kvm

现象 2:模拟器启动后白屏卡死

解决:删了重建,选不带 Google APIs 的纯净镜像,或者降一个版本(比如从 API 36 降到 API 34)。

8.3 Gradle 版本冲突

现象A problem occurred configuring root project. Could not find ...

解决套路

  1. File → Invalidate Caches → Invalidate and Restart(清缓存重启)
  2. 还不行 → 删掉项目根目录下 .gradle/.idea/ 文件夹,重启 AS
  3. 还不行 → 检查 gradle/wrapper/gradle-wrapper.properties 的版本是否被锁

8.4 内存爆炸:AS 越用越卡

现象:用一会儿就卡,输入都跟不上。

解决

  1. Help → Edit Custom VM Options,加大堆:
   -Xmx8g
   -XX:ReservedCodeCacheSize=2g
  1. 关掉用不上的插件 Settings → Plugins
  2. 大型项目用 Power Save Mode(File 菜单底部)

8.5 真机调试连不上

现象:插了 USB 线,AS 看不到设备。

解决

  1. 手机:开发者选项 → 开启 USB 调试
  2. 弹出 "允许此电脑调试" 时点允许
  3. 选 USB 模式为 MTP / 文件传输(别选"仅充电")
  4. 终端跑 adb devices,能看到设备 ID 才算成功
  5. 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 Developershttps://developer.android.com
官方教程Codelabs(互动课程)https://developer.android.com/codelabs
官方示例Now in Android(Google 官方示例 App)https://github.com/android/nowinandroid
社区Android Weeklyhttps://androidweekly.net
中文社区玩 Androidhttps://wanandroid.com
视频Android Developers YouTubeYouTube 搜 "Android Developers"

9.3 给新手的 5 条心法

  1. 不要试图一次搞懂所有东西。Android 知识点多到让人窒息,先跑通一个最简单的 App,再慢慢加东西。
  2. Compose 优先,XML 后学。新项目都用 Compose,XML 当历史遗留了解即可。
  3. Kotlin 必须先学。Java 老项目可以兼容,但新代码 100% 写 Kotlin。
  4. 遇到问题先看 Logcat,再看 Build 输出,再 Google,最后问人。
  5. 多读官方文档,国内博客很多过时(2020 年前的 Android 教程基本都过期了)。

附录 A:术语速查表

缩写 / 术语全称 / 含义
IDEIntegrated Development Environment 集成开发环境
SDKSoftware Development Kit 软件开发工具包
NDKNative Development Kit 原生开发工具包(C/C++ 用)
JDKJava Development Kit Java 开发工具包
AVDAndroid Virtual Device 安卓虚拟设备(模拟器)
APKAndroid Package 安卓安装包
AABAndroid App Bundle 安卓应用包(上架 Google Play 用)
ADBAndroid Debug Bridge 安卓调试桥(命令行工具)
DEXDalvik EXecutable 安卓虚拟机字节码格式
AAPTAndroid Asset Packaging Tool 资源打包工具
HAXMHardware Accelerated Execution Manager 硬件加速管理器(模拟器加速)
API LevelAndroid 系统对开发者的版本编号
Manifest清单文件,App 的"身份证"
Activity一个"页面",App 的基本组件
Fragment页面的"碎片",可复用的 UI 模块
Intent意图,组件之间的"通信信封"
ComposeJetpack 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 的真正基本功