杰瑞科技汇

新版Android开发教程笔记,核心要点有哪些?

新版 Android 开发核心笔记

第一章:Android 开发基石

1 开发环境搭建

  1. 安装 Android Studio

    新版Android开发教程笔记,核心要点有哪些?-图1
    (图片来源网络,侵删)
  2. 配置 SDK (Software Development Kit)

    • SDK Manager: 用于下载不同版本的 Android API、模拟器系统镜像、工具等。
    • Target SDK: 你希望应用的最高兼容版本,通常选择最新的 API 级别。
    • Minimum SDK: 你的应用最低支持的版本,根据你的目标用户群选择,目前建议 API 24 (Android 7.0) 或更高。
  3. 创建新项目

    • 选择 "Empty Views Activity" 模板,这是最基础的起点。
    • 语言选择 Kotlin
    • 包名:应用的唯一标识符(如 com.example.myapp)。

2 Kotlin:Android 的官方语言

Kotlin 是 Google 推荐的 Android 开发语言,它更安全、简洁且与 Java 100% 互操作。

  • 基本语法特点:
    • 变量声明:
      • val (value): 不可变变量,类似 Java 的 final,推荐优先使用。
        val name: String = "Android" // 类型可以推断,通常省略
      • var (variable): 可变变量。
        var counter = 0
        counter++
    • 空安全:
      • Kotlin 从根本上杜绝了 NullPointerException
      • String? 表示一个可能为 null 的字符串。
      • 安全调用操作符 : 如果对象为 null,则表达式返回 null,不会抛出异常。
        val length: Int? = name?.length 
      • 空合并操作符 : 如果左侧表达式为 null,则返回右侧的值。
        val displayName = name ?: "Guest"
    • 函数:
      fun greet(name: String): String { // fun 函数名(参数名: 参数类型): 返回类型
          return "Hello, $name!"
      }
      // 单行表达式函数
      fun greetShort(name: String) = "Hello, $name!"

第二章:UI 布局与交互

1 现代 UI 工具:Jetpack Compose (推荐)

Compose 是 Android 推荐的现代 UI 工具包,它使用声明式的方式来构建 UI。

新版Android开发教程笔记,核心要点有哪些?-图2
(图片来源网络,侵删)
  • 核心概念:

    • 声明式: 你只需描述 UI 在不同状态下应该“是什么样子”,而不需要关心“如何”更新,框架会帮你处理所有的变化。
    • Composable 函数: 所有 UI 元素都是由一个或多个 @Composable 注解的函数构建的。
    • 状态: UI 的数据源,当状态改变时,Compose 会自动重新执行 Composable 函数来更新 UI。
  • 基础组件示例:

    import androidx.compose.foundation.layout.*
    import androidx.compose.material3.*
    import androidx.compose.runtime.*
    import androidx.compose.ui.Alignment
    import androidx.compose.ui.Modifier
    import androidx.compose.ui.tooling.preview.Preview
    import androidx.compose.ui.unit.dp
    // @Composable 表示这是一个可组合的函数
    // @Preview 表示这个函数可以在 Android Studio 的预览窗口中查看
    @Preview(showBackground = true)
    @Composable
    fun Greeting(name: String = "Android") {
        // remember 用于在重组时保留状态,避免每次都重新初始化
        var counter by remember { mutableStateOf(0) }
        // Column 是一个垂直布局的容器
        Column(
            modifier = Modifier.fillMaxSize().padding(16.dp),
            horizontalAlignment = Alignment.CenterHorizontally,
            verticalArrangement = Arrangement.Center
        ) {
            Text(text = "Hello, $name!")
            Spacer(modifier = Modifier.height(16.dp))
            Text(text = "You have clicked the button $counter times.")
            Spacer(modifier = Modifier.height(16.dp))
            // Button 是一个可点击的组件
            Button(onClick = { 
                counter++ // 修改状态,Compose 会自动更新 UI
            }) {
                Text("Click me")
            }
        }
    }

2 传统 XML 布局 (仍需掌握)

虽然 Compose 是未来,但市面上仍有大量项目使用 XML 布局。

  • View: UI 的基本单元(如 TextView, Button, ImageView)。
  • ViewGroup: 用于存放和管理其他 View 的容器(如 LinearLayout, ConstraintLayout)。
  • ConstraintLayout (强烈推荐): 功能最强大的布局,通过约束关系定位子视图,能有效减少布局层级,提升性能。

第三章:应用架构与数据流

现代 Android 开发强烈推荐使用 MVVM (Model-View-ViewModel) 架构模式,并配合 Jetpack 组件。

新版Android开发教程笔记,核心要点有哪些?-图3
(图片来源网络,侵删)

1 MVVM 架构

  • Model (模型层):

    • 负责处理数据,包括数据源(如网络 API、数据库)和业务逻辑。
    • 通常由 Repository (仓库) 模式封装,统一数据访问入口。
  • View (视图层):

    • UI 部分,负责展示数据和用户交互。
    • 在 Android 中,这可以是 XML 布局或 Jetpack Compose UI。
    • 它只负责观察和显示数据,不包含任何业务逻辑。
  • ViewModel (视图模型):

    • 核心枢纽,它持有并暴露 UI 所需的数据(通常作为 StateFlowLiveData)。
    • 它连接 Model 和 View,持有 View 的引用,但不持有 Activity/Fragment 的引用,因此配置更改(如屏幕旋转)不会导致其销毁。
    • 包含处理用户交互的逻辑,并调用 Model 层获取数据。

2 Jetpack 组件详解

  1. ViewModel

    • 作用: 存储和管理与 UI 相关的数据,使其在屏幕旋转后不丢失。

    • 使用:

      class MyViewModel : ViewModel() {
          // 使用 StateFlow 来暴露可观察的状态
          private val _uiState = MutableStateFlow(UiState())
          val uiState: StateFlow<UiState> = _uiState
          fun loadData() {
              // 模拟从网络或数据库加载数据
              viewModelScope.launch {
                  _uiState.value = UiState(loading = true)
                  val data = repository.fetchData()
                  _uiState.value = UiState(data = data)
              }
          }
      }
      data class UiState(
          val loading: Boolean = false,
          val data: String = ""
      )
  2. LiveData (已逐渐被 StateFlow 替代)

    • 一个可观察的数据持有者类,当数据改变时,它会通知观察者(如 UI 组件)。
    • 与生命周期感知,只有在 UI 处于活跃状态时才会接收更新。
  3. StateFlow / SharedFlow (Kotlin 协程中的首选)

    • StateFlow: 类似于 LiveData,用于表示状态,它总是持有当前状态,新的订阅者会立即收到最新的状态。
    • SharedFlow: 用于表示事件,如一次性操作的结果。
  4. Room (持久化库)

    • 一个 SQLite 抽象层,让你能在更少的代码下更轻松地访问数据库。
    • 核心组件:
      • Entity: 数据库表中的实体类,用 @Entity 注解。
      • DAO (Data Access Object): 定义访问数据库的方法(增删改查),用 @Dao 注解。
      • Database: 数据库持有者,用 @Database 注解,并包含所有 DAO。
  5. Retrofit (网络请求库)

    • 一个类型安全的 HTTP 客户端,用于简化网络请求。
    • 通过定义接口和注解(如 @GET, @POST)来描述 API。
  6. Kotlin Coroutines (协程)

    • 用于处理异步编程的官方推荐方案。
    • 优点: 代码简洁,可读性高,避免了回调地狱。
    • 关键概念:
      • launch: 启动一个新的协程,用于执行“一劳永逸”的任务
分享:
扫描分享到社交APP
上一篇
下一篇