课程进度 20% · 第3/11章第3/11章 · 标签 1/6
— 1 —
Java / Kotlin 基础
原GlobalScope示例仅说明协程语法,不适合作为页面任务生命周期范式;fetchData、资源id和组件注册均需宿主提供。新增内容区分Activity、ViewModel与进程状态,避免把内存保留误认为永久保存。
Android 开发支持 Java 和 Kotlin 两种语言。Kotlin 已成为官方推荐语言,但与 Java 完全互操作。
Java与Kotlin可调用相同平台接口,差别不只在语法长度。可空类型帮助表达缺失值,但空字符串、无效邮箱和越权用户仍需业务校验。先在纯函数里验证规则,再放进生命周期回调,可避免把语言特性与系统状态混在一起排错。
```java // Java String msg = "Hello Android"; System.out.println(msg); // Kotlin val msg = "Hello Android" println(msg) ```
java
1
// Java
2
String msg = "Hello Android";
3
System.out.println(msg);
4
5
// Kotlin
6
val msg = "Hello Android"
7
println(msg)
◆
Kotlin 常用特性
```kotlin
// 空安全
var name: String? = null
val length = name?.length ?: 0
// 数据类
data class User(val id: Int, val name: String)
// 扩展函数
fun String.isEmail(): Boolean = contains("@")
// Activity片段:需引入lifecycle-runtime-ktx及lifecycleScope,fetchData由业务提供。
lifecycleScope.launch {
val result = withContext(Dispatchers.IO) { fetchData() }
textView.text = result
}
```
kotlin
1
// 空安全
2
var name: String? = null
3
val length = name?.length ?: 0
4
5
// 数据类
6
data class User(val id: Int, val name: String)
7
8
// 扩展函数
9
fun String.isEmail(): Boolean = contains("@")
10
11
// Activity片段:需引入lifecycle-runtime-ktx及lifecycleScope,fetchData由业务提供。
12
lifecycleScope.launch {
13
val result = withContext(Dispatchers.IO) { fetchData() }
14
textView.text = result
15
}
— 2 —
四大组件简介
Android 应用由四大组件构成,每个组件都有独立的生命周期与职责。
四大组件由系统在特定入口创建和调度,不是四个随意互相new的普通工具类。一次页面操作可能跨过组件、线程和存储边界;画出触发者与拥有者,能帮助判断回调结束后哪些工作仍在进行,以及退出页面时谁负责取消。
- Activity —— 界面交互,每个屏幕对应一个 Activity
- Service —— 后台服务,执行长时间运行的操作(音乐播放、文件下载)
- BroadcastReceiver —— 广播接收,响应系统或应用发出的广播事件
- ContentProvider —— 数据共享,向其他应用提供统一的数据访问接口
📖四大组件都需要在 AndroidManifest.xml 中注册才能使用