下面的内容基于MVVM架构,不适用于纯Jetpack Compose的项目
目录结构
com.example.myapp
├── App.kt // Application类 (用于初始化Hilt, Timber等)
├── di // Dependency Injection (依赖注入模块)
│ ├── NetworkModule.kt // Retrofit/OkHttp 注入配置
│ └── DatabaseModule.kt // Room 数据库注入配置
├── data // 数据层 (Data Layer)
│ ├── local // 本地数据源 (Room, SharedPreferences)
│ │ ├── AppDatabase.kt
│ │ ├── dao
│ │ └── entity
│ ├── remote // 网络数据源 (Retrofit)
│ │ ├── ApiService.kt
│ │ └── model // 服务端返回的 JSON 实体类 (DTO)
│ ├── repository // 仓库层 (协调 Local 和 Remote 数据)
│ │ └── UserRepository.kt
│ └── Model.kt // 领域模型 (App内部使用的纯净Model)
├── ui // UI 层 (View & ViewModel)
│ ├── base // 基类
│ │ ├── BaseActivity.kt
│ │ ├── BaseFragment.kt
│ │ └── BaseViewModel.kt
│ ├── main // 主界面功能模块
│ │ ├── MainActivity.kt
│ │ └── MainViewModel.kt
│ ├── login // 登录功能模块
│ │ ├── LoginFragment.kt
│ │ └── LoginViewModel.kt
│ └── adapter // RecyclerView 适配器 (如通用性强可单独放)
└── utils // 工具类和扩展函数
├── Constants.kt
├── Extensions.kt // Kotlin 扩展 (ViewExt, StringExt)
└── DateUtils.kt
开启Viewbinding
android {
...
buildFeatures {
viewBinding = true
}
}
导入需要的库和插件
1. 架构组件 (Android Jetpack)
这是 Google 官方的基础设施,用于生命周期管理和导航。
- Lifecycle & ViewModel: 管理生命周期,防止内存泄漏。
- Navigation Component: 处理 Fragment 之间的跳转(推荐单 Activity 多 Fragment 架构)。
// ViewModel
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2"
// LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.6.2"
// Lifecycle runtime
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.6.2"
// Navigation Component
implementation "androidx.navigation:navigation-fragment-ktx:2.7.5"
implementation "androidx.navigation:navigation-ui-ktx:2.7.5"
2. 依赖注入 (Dependency Injection)(可选,有的项目用不到)
- Hilt: Google 官方推荐,基于 Dagger 但更易用。它能帮你自动管理对象的创建和生命周期(如自动注入 Repository 到 ViewModel)。也可以使用Dagger2。
implementation "com.google.dagger:hilt-android:2.48"
kapt "com.google.dagger:hilt-android-compiler:2.48"
3. 网络请求 (Networking)
- Retrofit: 业界标准的 HTTP 客户端。
- OkHttp: Retrofit 的底层支持,用于处理拦截器(Logging, Header)。
- Moshi (或 Gson): 用于 JSON 解析。Moshi 对 Kotlin 支持更好。
// Retrofit
implementation "com.squareup.retrofit2:retrofit:2.9.0"
implementation "com.squareup.retrofit2:converter-moshi:2.9.0" // 或 converter-gson
// OkHttp Logging (调试接口用)
implementation "com.squareup.okhttp3:logging-interceptor:4.11.0"
4. 异步处理 (Asynchronous)
- Coroutines (协程): Kotlin 的杀手级特性,用于替代线程池和 RxJava。
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3"
5. 图片加载 (Image Loading)
- Glide: 传统 View 开发中最稳健的选择,API 简单,缓存机制强大。
- 备选Fresco: 实际占用比Glide更小。
implementation "com.github.bumptech.glide:glide:4.16.0"
//如果你需要其他支持,可以选择导入。例如gif和其他内容管理
6. 其他实用工具
- Timber: 更好的 Log 打印工具(自动处理 Tag,Release 版自动静音)。
- LeakCanary: (仅 Debug) 内存泄漏检测神器。
implementation "com.jakewharton.timber:timber:5.0.1"
debugImplementation "com.squareup.leakcanary:leakcanary-android:2.12"
- AndroidUtilCode: 国内Android开发者几乎都在用的工具集合库
// if u use AndroidX, use the following
implementation 'com.blankj:utilcodex:1.31.1'
// Not in maintenance
implementation 'com.blankj:utilcode:1.30.7'
//文档页面
https://github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/README-CN.md
总结
XML (Layouts) + ViewBinding + MVVM + Coroutines + Hilt + Retrofit + Jetpack Navigation
一个基础框架的要求很简单:解耦,安全,简洁,可用程度高,上手成本低。如果你有兴趣,可以关注这个文章,之后我会上传打包好的内容!

发表回复