☰分类导航

软件工程/基础语法与组件
课程进度 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 中注册才能使用