Android 开发概览
Kotlin、Gradle 与 Hello World。
Android 开发概览
这一课你将能做到
- 说清楚 Android 平台架构的四层模型,以及每层与 Web 前端的对应关系
- 在 Android Studio 中创建并运行一个 Hello World 项目,理解 Gradle 构建流程
- 对比 Kotlin 与 Java 在 Android 开发中的差异,并说出为什么 Kotlin 是官方首选
为什么要学
Android 占据全球移动设备 70% 以上的份额,而 Kotlin 自 2019 年起就是 Google 官方推荐的 Android 开发语言。对于已经熟悉 Web 前端(React/Next.js)的开发者来说,Android 开发是「同一份编程思维,不同 runtime 和 UI 范式」的扩展。
人话:你会写 React 组件,就会写 Compose 函数;你会管理前端状态,就会管理 Android 的 UI State。区别只在于:Web 跑在浏览器里,Android 跑在 Linux 内核 + ART 虚拟机上;Web 用 HTML/CSS 描述界面,Android 用 Kotlin 代码直接声明。
面试中,「Android 平台架构」和「Kotlin vs Java」是必考题,答不好直接挂。
先建立图像
┌─────────────────────────────────────┐
│ 应用层 (System Apps + 你的 App) │ ← 你写的代码在这里
├─────────────────────────────────────┤
│ 应用框架层 (Java API Framework) │ ← Activity/Service/View 等
├─────────────────────────────────────┤
│ 运行时 + 原生库 (ART + C/C++ libs) │ ← ART 替代了 JVM
├─────────────────────────────────────┤
│ Linux 内核 (驱动/安全/内存管理) │ ← 和服务器 Linux 同源
└─────────────────────────────────────┘
Web 前端对比:
- 浏览器 ≈ Android Runtime (ART)
- DOM ≈ View 树 / Compose 树
- HTTP 请求 ≈ Retrofit/OkHttp 调用
- localStorage ≈ DataStore / Room
跟着做
步骤 1:安装 Android Studio 并创建项目
下载 Android Studio( Hedgehog 或更新版本),安装时勾选 Android SDK 和 Emulator。打开后选择 New Project → Empty Activity(Compose 版本),语言选 Kotlin,Minimum SDK 选 API 24(Android 7.0,覆盖 95%+ 设备)。
项目创建后,等待 Gradle 同步完成。Gradle 是 Android 的构建工具,相当于 Web 前端的 npm + webpack 合体。
步骤 2:理解项目结构
app/
├── src/
│ ├── main/
│ │ ├── java/com/example/myapp/ ← Kotlin 源码
│ │ ├── res/ ← 资源(图片、字符串、布局)
│ │ └── AndroidManifest.xml ← 应用清单,声明组件和权限
│ └── build.gradle.kts ← 模块级构建脚本
├── build.gradle.kts ← 项目级构建脚本
└── settings.gradle.kts ← 模块注册
AndroidManifest.xml 是 Android 独有的概念,相当于 Web 应用的 index.html + manifest.json 合体,声明了应用入口、所需权限、支持的屏幕方向等。
步骤 3:运行第一个 Compose 应用
打开 MainActivity.kt,默认代码如下:
package com.example.myapp
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
import androidx.compose.ui.tooling.preview.Preview
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyAppTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
Greeting("Android")
}
}
}
}
}
@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
Text(
text = "Hello $name!",
modifier = modifier
)
}
@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
MyAppTheme {
Greeting("Android")
}
}