学习大纲
阶段一:Kotlin 语言核心 (目标:掌握 Kotlin 语法和特性)
-
1. 环境搭建与初识:
- 安装 IntelliJ IDEA (推荐,JetBrains 出品,Kotlin 的“亲爹”)。
- Kotlin Playground (在线尝试代码片段)。
- 第一个 Kotlin 程序 (“Hello, World!”)。
- 理解 Kotlin 如何在 JVM 上运行。
-
2. 基本语法:
- 变量与常量 (
var
,val
),类型推断。 - 基本数据类型 (Int, Double, Boolean, Char, String)。
- 字符串模板。
- Nullable 类型与 Null 安全 (
?
,!!
,?.
,?:
Elvis 操作符) - 安卓开发中极其重要。 - 控制流:
if/else
,when
(非常强大,类似 switch 但更灵活),for
循环,while
循环。 - Ranges。
- 变量与常量 (
-
3. 函数:
- 函数定义,参数,返回值。
- 默认参数,命名参数。
- 单表达式函数。
- 扩展函数 (Extension Functions) - 安卓中广泛用于简化 API调用。
- 高阶函数与 Lambda 表达式 - 安卓中事件处理、集合操作等的核心。
-
4. 面向对象编程 (OOP):
- 类与对象:构造函数 (主构造函数,次构造函数),属性 (getter/setter),方法。
- 继承 (
open
关键字),多态,抽象类,接口。 - 可见性修饰符 (
private
,protected
,internal
,public
)。 - 数据类 (
data class
) - 常用于模型类。 - 密封类 (
sealed class
) - 常用于表示状态或结果。 - 枚举类 (
enum class
)。 - 对象声明与伴生对象 (
object
,companion object
) - 常用于单例和工厂方法。
-
5. 集合框架:
List
,Set
,Map
(可变与不可变)。- 常用的集合操作函数 (
map
,filter
,forEach
,find
,groupBy
等) - 极大地提高代码简洁性和可读性。
-
6. 异常处理:
try-catch-finally
。- Kotlin 中的
throw
和Exception
。
-
7. 泛型 (Generics):
- 理解泛型的基本概念和使用场景。
-
8. 协程 (Coroutines) - 初步了解:
- 理解什么是协程,为什么需要它 (解决回调地狱,简化异步编程)。
suspend
函数。launch
,async
构建器。withContext
切换上下文。- 这是现代安卓异步编程的核心,必须掌握。
阶段一产出:
- 能够用 Kotlin 编写解决简单问题的控制台程序。
- 熟悉 Kotlin 的核心语法和特性。
- 能够理解 Kotlin 代码片段的含义。
阶段二:安卓开发环境与基础组件 (目标:搭建安卓开发环境,理解核心组件)
-
1. 安卓开发环境:
- 安装 Android Studio。
- 熟悉 Android Studio 界面:项目结构、编辑器、Logcat、Profiler、AVD Manager (模拟器)。
- 创建第一个安卓应用 (Hello World App in Kotlin)。
- 理解 Gradle 构建系统 (基本概念,
build.gradle
文件)。
-
2. 安卓应用核心组件:
- Activity:
- 什么是 Activity,应用的入口。
- Activity 生命周期 (
onCreate
,onStart
,onResume
,onPause
,onStop
,onDestroy
) - 必须深刻理解。 - 如何在 Kotlin 中创建和使用 Activity。
- Intent:
- 显式 Intent (启动其他 Activity)。
- 隐式 Intent (调用系统或其他应用功能)。
- 通过 Intent 传递数据。
- Layouts (XML 基础):
- 理解 XML 在安卓 UI 中的作用。
- 常用布局:
LinearLayout
,RelativeLayout
,ConstraintLayout
(推荐,现代安卓 UI 布局核心)。 - 常用控件:
TextView
,Button
,EditText
,ImageView
。 - 如何在 Kotlin 代码中引用 XML 布局中的控件 (
findViewById
- 了解即可,后续会用更现代的方式)。
- View Binding / Data Binding (推荐):
- 学习使用 View Binding 替代
findViewById
,更安全、更简洁。 - (可选) Data Binding 的基本概念。
- 学习使用 View Binding 替代
- 资源管理:
res
目录结构 (drawable
,layout
,values
-strings.xml
,colors.xml
,dimens.xml
,styles.xml
)。- 如何在代码和 XML 中引用资源。
- Activity:
-
3. 用户交互:
- 处理点击事件 (Button clicks 等)。
- 使用 Lambda 表达式作为事件监听器。
阶段二产出:
- 能够创建简单的、具有基本 UI 和交互的安卓应用。
- 理解 Activity 的生命周期和 Intent 的使用。
- 能够使用 XML 创建基本的用户界面。
- 知道如何通过 View Binding 在 Kotlin 代码中操作 UI 元素。
阶段三:安卓进阶与 Kotlin 应用 (目标:掌握安卓常用功能和 Kotlin 在安卓中的高级用法)
-
1. UI 进阶:
- RecyclerView:
- 显示列表数据的核心控件。
- Adapter 模式 (创建自定义 Adapter)。
- ViewHolder 模式。
- DiffUtil (高效更新列表)。
- Fragments:
- 什么是 Fragment,为什么使用它 (模块化 UI,适应不同屏幕尺寸)。
- Fragment 生命周期。
- Fragment 与 Activity 通信。
- (现代安卓开发中,如果使用 Jetpack Compose,Fragment 的重要性有所下降,但仍需了解)。
- Menus & Dialogs:
- OptionsMenu, ContextMenu。
- AlertDialog, DatePickerDialog, TimePickerDialog。
- RecyclerView:
-
2. 数据存储:
- SharedPreferences: 存储少量键值对数据 (如用户设置)。
- Room Persistence Library (Jetpack):
- SQLite 数据库的抽象层,推荐的本地数据库方案。
- Entity, DAO (Data Access Object), Database。
- 如何在 Kotlin 中使用注解定义表和操作。
- 结合协程进行数据库操作。
-
3. 网络请求:
- Retrofit 库:
- 声明式的 REST 客户端,安卓网络请求的事实标准。
- 定义 API 接口 (使用 Kotlin 接口和注解)。
- 配合 Gson/Moshi 进行 JSON 解析 (Kotlin 数据类完美匹配)。
- 结合协程进行异步网络请求。
- OkHttp 库: Retrofit 底层依赖,了解其功能 (拦截器等)。
- 处理网络权限。
- Retrofit 库:
-
4. 权限处理:
- 安卓的运行时权限模型。
- 请求权限,处理权限结果。
-
5. Kotlin 在安卓中的高级应用:
- Jetpack ViewModel:
- 以生命周期感知的方式存储和管理 UI 相关数据。
- 解决屏幕旋转等配置更改导致的数据丢失问题。
- 配合
viewModelScope
使用协程。
- Jetpack LiveData / Flow:
- 可观察的数据持有者类,具有生命周期感知能力 (LiveData)。
- Flow 是 Kotlin 协程中更强大和灵活的异步数据流 (推荐学习)。
- 在 ViewModel 中使用 LiveData/Flow 暴露数据给 UI。
- 在 Activity/Fragment 中观察 LiveData/Flow 更新 UI。
- Scope Functions (
let
,run
,with
,apply
,also
):- 回顾并熟练运用,它们在安卓代码中非常常见,可以使代码更简洁。
- 依赖注入 (DI) - 初步了解:
- 理解为什么需要依赖注入 (解耦,可测试性)。
- Hilt (Jetpack 推荐) 或 Koin 的基本概念和用法。看懂别人代码里
@Inject
是什么意思。
- Jetpack ViewModel:
阶段三产出:
- 能够开发功能相对完整的安卓应用,包括列表显示、数据存储、网络请求。
- 熟练使用 Kotlin 的高级特性 (协程、Flow、扩展函数等) 解决安卓开发中的实际问题。
- 理解 Jetpack 核心组件 (ViewModel, LiveData/Flow, Room) 的作用和用法。
- 开始能够看懂大部分安卓项目中的 Kotlin 代码结构和逻辑。
阶段四:现代安卓开发与实践 (目标:接触最新安卓开发范式,提升代码理解能力)
-
1. Jetpack Compose (可选但强烈推荐):
- 声明式 UI 框架,安卓 UI 开发的未来。
- Composable 函数。
- State 管理 (
remember
,mutableStateOf
)。 - 基本布局 (
Column
,Row
,Box
) 和 Modifier。 - 与 ViewModel 和 Flow 结合使用。
- 学习 Compose 会让你更容易理解一些新的开源项目和 Google 的官方示例。
-
2. 架构模式:
- 理解 MVVM (Model-View-ViewModel) 架构模式,这是当前安卓社区的主流。
- 了解 MVI (Model-View-Intent) 等其他模式。
- 分析开源项目是如何组织代码结构的。
-
3. Gradle 深入一点:
- 理解
build.gradle (Project)
和build.gradle (Module)
的区别。 - 如何添加依赖库。
- Product Flavors, Build Types (基本概念)。
- 理解
-
4. 代码阅读与分析:
- 找一些 GitHub 上的优秀 Kotlin 安卓开源项目 (例如 Google官方的 Android Sunflower, Now In Android 等)。
- 尝试阅读并理解其代码结构、业务逻辑、使用的库和模式。
- 这是检验你学习成果,并弥补“看不懂安卓代码”的关键一步。
-
5. 调试与测试:
- 熟练使用 Android Studio 的 Debugger。
- 单元测试 (JUnit, Mockito/MockK)。
- (可选) UI 测试 (Espresso)。
阶段四产出:
- 能够理解并应用现代安卓开发技术和架构模式。
- 具备独立阅读和分析复杂安卓项目的能力。
- 能够编写可维护、可测试的安卓应用。
- 真正做到“看懂安卓开发里面的内容在干嘛”。