睿诚科技协会

android 项目技术特点

核心技术特点

这些是构成 Android 应用的基石,是每一位 Android 开发者必须掌握的。

android 项目技术特点-图1
(图片来源网络,侵删)

基于 Java/Kotlin 的强类型语言

  • Java: 传统且成熟的官方语言,拥有庞大的社区和海量的第三方库,但随着 Kotlin 的兴起,其在新项目中的主导地位已逐渐被取代。
  • Kotlin: 目前官方首推的语言,它完全兼容 Java,并解决了 Java 的许多痛点:
    • 空安全: 从语言层面杜绝了 NullPointerException 的发生。
    • 简洁性: 使用更少的代码实现相同的功能,如数据类、扩展函数、Lambda 表达式等。
    • 互操作性: 可以无缝调用 Java 代码,也可以被 Java 代码调用,保护了现有投资。
    • 协程: 提供了优雅的异步编程解决方案,替代了复杂的回调和 RxJava

基于 JVM 的运行时环境

  • Android Runtime (ART): 从 Android 5.0 (Lollipop) 开始,ART 全面取代了 Dalvik。
    • ART 的优势
      • 性能更优: AOT (Ahead-of-Time) 编译,应用在安装时就会编译成机器码,启动更快,运行时性能更好。
      • 垃圾回收更高效: 采用并行和并发垃圾回收,减少了应用卡顿。
      • 应用安装时间稍长: 这是 AOT 编译带来的权衡。

丰富的 UI 框架

  • XML 布局: 传统的 UI 定义方式,通过在 res/layout 目录下编写 XML 文件来描述界面结构,职责分离清晰。
  • Jetpack Compose: Google 主推的现代化 UI 工具包,代表了 UI 开发的未来方向。
    • 声明式 UI: 开发者只需描述 UI 在不同状态下应该“是什么样子”,而不需要关心“如何构建”和“状态更新”。
    • Kotlin 优先: 使用 Kotlin 语言进行 UI 开发,无需 XML 和布局文件。
    • 响应式: 当数据变化时,UI 会自动、高效地重新渲染。
    • 开发效率高: 减少了样板代码和布局嵌套,预览功能所见即所得。

完善的生命周期

  • Activity 和 Fragment 有非常明确的、由系统回调的生命周期方法(如 onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy())。
  • 开发者必须深刻理解生命周期,以正确地管理资源(如网络请求、数据库连接、动画)的创建和销毁,避免内存泄漏。

强大的组件化架构

  • 四大组件: 这是 Android 应用的四大基石。
    • Activity: 应用的界面,代表一个屏幕。
    • Service: 在后台长时间运行执行任务的组件,没有用户界面。
    • Broadcast Receiver: 系统或应用间通信的组件,用于接收系统或应用发出的广播。
    • Content Provider: 用于管理应用数据的访问和共享,使得不同应用可以安全地共享数据。
  • Intent: 用于组件间通信的“信使”,可以用来启动 Activity、Service,或发送 Broadcast。

架构模式与设计思想

为了构建可维护、可测试、可扩展的大型应用,Android 开发社区逐渐形成了一些主流的架构模式。

MVVM (Model-View-ViewModel)

  • Model: 数据层,负责处理业务逻辑和数据获取(如网络请求、数据库操作)。
  • View: UI 层,通常是 Activity/Fragment 或 Jetpack Compose 的可组合项,负责展示数据和响应用户操作。
  • ViewModel: 视图模型,作为 View 和 Model 之间的桥梁,它持有并暴露 UI 所需的数据,处理用户交互,并持有与 UI 相关的生命周期(通过 ViewModel 类自动管理)。核心特点是数据可观察,当数据变化时,会自动通知 View 更新。
  • 关键库: ViewModel (Jetpack), LiveData / StateFlow (用于数据绑定和响应式更新)。

MVI (Model-View-Intent)

  • 一种更现代化的、基于单向数据流的架构。
  • View: 接收用户操作,并将其封装成 Intent 发送给 Model。
  • Model: 接收 Intent,处理业务逻辑,生成新的 State (状态)。
  • View: 订阅 State 的变化,当 State 更新时,重新渲染 UI。
  • 特点: 状态管理非常清晰,可预测性高,非常适合处理复杂的 UI 状态和跨组件通信。StateFlowSharedFlow 是实现 MVI 的核心工具。

Clean Architecture / MVVM + Repository

  • 分层思想: 将应用分为多个层次,每一层只依赖其内层,形成依赖倒置。
    • Presentation Layer (UI层): 包含 UI 和 ViewModel。
    • Domain Layer (业务逻辑层): 包含应用的核心业务逻辑,与具体框架无关。
    • Data Layer (数据层): 包含数据源(网络、数据库、缓存)和 Repository (仓库)。
  • Repository (仓库模式): 作为数据访问的统一入口,它封装了数据的具体来源(是从网络获取还是从数据库读取),为上层 ViewModel 提供了一个统一、干净的 API,屏蔽了数据源的复杂性。

现代开发工具链与趋势

Google 通过 Android Jetpack 大力推动现代化开发,旨在提高开发效率和代码质量。

Android Jetpack

这是一个由一系列库、工具和最佳实践组成的工具集,旨在简化复杂任务,遵循现代 Android 架构原则。

  • 核心库:
    • ViewModel: 管理 UI 相关的数据,在配置更改(如屏幕旋转)时存活。
    • LiveData / StateFlow: 可观察的数据持有者,用于在数据变化时通知 UI。
    • Room: 一个强大的 SQLite 对象映射库,用于本地数据持久化。
    • Navigation Component: 处理应用内导航,简化了 Fragment 之间的跳转和传参。
    • WorkManager: 确保后台任务(即使应用退出或重启)能够可靠地执行。
    • DataStore: 一个现代化的数据存储解决方案,用于替代 SharedPreferences,提供类型安全的 API 和 Flow 支持。

Kotlin 协程

彻底改变了 Android 的异步编程,它允许开发者以同步、阻塞式的风格编写异步代码,避免了“回调地狱”(Callback Hell),使得异步逻辑更易于阅读和维护。

android 项目技术特点-图2
(图片来源网络,侵删)

依赖注入

  • Hilt: Google 官方推荐的依赖注入框架,基于 Dagger 2 构建,它通过注解自动管理依赖的生命周期,简化了组件的创建和管理,提高了代码的可测试性。
  • Koin: 一个轻量级、易于学习的 Kotlin 依赖注入框架,深受许多开发者喜爱。

多端统一开发

  • Jetpack Compose for Desktop/Web: 将 Compose 的声明式 UI 思想扩展到桌面和 Web 开发,实现一套代码多端运行。
  • Flutter / React Native: 使用 Dart/JavaScript 和 Skia/JavaScriptCore 引擎,通过跨平台框架实现一套代码在 Android 和 iOS 上运行。
  • KMM (Kotlin Multiplatform Mobile): 允许开发者共享 Kotlin 业务逻辑代码(如网络请求、数据解析),而 UI 部分仍使用原生开发(Android Compose/iOS SwiftUI),实现了“业务逻辑共享,UI 原生体验”。

安全性特点

Android 提供了多层次的安全机制:

  • 沙箱机制: 每个应用都在独立的 Linux 进程中运行,拥有独立的用户 ID,默认情况下无法访问其他应用的数据。
  • 权限系统: 应用需要声明其所需的权限(如相机、位置),用户在安装或运行时授权。
  • 网络安全: 强制使用 HTTPS,提供网络安全配置以防止中间人攻击。
  • 代码混淆/加固: 使用 ProGuard/R8 混淆代码,或使用 App Bundle/加固服务保护 APK,防止被反编译。

现代 Android 项目的技术特点可以概括为:

特性 传统方式 现代化趋势
编程语言 Java Kotlin (首选)
UI 框架 XML + View 系统 Jetpack Compose (声明式 UI)
架构模式 MVC / MVP MVVM / MVI
数据层 直接操作数据库/网络 Repository 模式 + Room
异步编程 Thread / AsyncTask / RxJava Kotlin 协程
依赖管理 手动管理 / Gradle Hilt / Koin (依赖注入)
导航 Fragment Transaction Navigation Component
后台任务 Service / IntentService WorkManager (可靠执行)
开发思想 关注如何实现 关注状态和声明

Android 项目技术正朝着更简洁、更高效、更安全、更一致的方向发展,Kotlin 和 Jetpack Compose 是这场变革的核心驱动力,它们极大地提升了开发体验和最终产品的质量。

android 项目技术特点-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇