Android(Kotlin) ↔ Flutter(Dart) 的“1:1 对应表”:架构分层来对照(MVVM/MVI 都适用)

Android(Kotlin) ↔ Flutter(Dart) 的"1:1 对应表",按你熟悉的架构分层来对照(MVVM/MVI 都适用)。

Android ↔ Flutter 对应表

架构位置 Android 常用方案 Flutter 对应方案 一句话理解
网络客户端 Retrofit Dio 都是 HTTP Client 封装
底层网络引擎 OkHttp Dio 内部实现 / http 包 "真正发请求"的那层
拦截器 OkHttp Interceptor / Retrofit CallAdapter Dio Interceptor 请求/响应/错误统一入口(401 刷新 token 就在这)
JSON 解析 Moshi / Gson / Kotlinx Serialization json_serializable / freezed / manual map DTO ↔ Model 转换
DTO(网络实体) data class XxxDto class XxxDto + fromJson/toJson 网络返回结构
Repository Repository Repository "数据真相"统一出口(同名同职责)
本地数据库 Room Drift(SQLite) ORM + 类型安全查询
DAO @Dao 接口 Drift DAO(@DriftAccessor) 查询/插入/更新
Entity(表结构) @Entity Drift Table(extends Table) 数据库存储结构
数据流监听 Flow / LiveData Stream(watch) DB 变更自动推给 UI
协程/异步 suspend + coroutines async/await + Future 都是异步语法糖
并发组合 async/await + awaitAll Future.wait / Future.any 并行请求合并
错误包装 Result / sealed class Either/Result(自定义) 统一错误模型
本地缓存 DataStore / SharedPrefs SharedPreferences / Hive / 内存 Map 小数据/配置
图片缓存 Coil / Glide cached_network_image 头像/图片缓存
线程切换 Dispatchers.IO/Main event loop + plugin/isolate Dart 表面单线程,IO 由底层处理
ViewModel AndroidX ViewModel Riverpod Notifier / Bloc / ChangeNotifier 状态容器
UI 订阅 collectAsState/LiveData observe Consumer/BlocBuilder/StreamBuilder "订阅状态刷新 UI"
单元测试 JUnit + MockK test + mocktail/mockito 测试工具链
网络 Mock MockWebServer dio_http_mock_adapter / 自建 fake api 模拟接口

现在这套(最像 Android 的写法)

  • Retrofit + OkHttp Interceptor → Dio + Interceptor

  • Room + Flow → Drift + watch(Stream)

  • Repository 负责缓存策略 → Repository 仍然负责

  • 401 自动刷新 token → Interceptor + 共享 Future/队列

相关推荐
千里马学框架21 小时前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台21 小时前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone21 小时前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc1 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo1 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077001 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
ai2work1 天前
ch23 综合复刻:从零做一个最小可用版本(capstone)
kotlin
其实防守也摸鱼1 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
ai2work1 天前
ch21 签名、校验与发版
kotlin
AFinalStone1 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui