1. 项目初始化与依赖配置

1.1 章节原理与目标

本章是整门课程的基石。在开始编写同步逻辑之前,必须正确配置 Android 项目的构建环境。我们将完成三项核心任务:

  • 添加 Gradle 依赖:将 Retrofit、WorkManager 及其必要的编译/运行时库引入项目。
  • 配置网络权限:在 AndroidManifest.xml 中声明互联网访问权限,确保应用能够进行网络请求。
  • 选择并验证版本:确定当前稳定的 Retrofit 和 WorkManager 版本,并确保它们与 Android SDK 版本兼容。

完成本章后,你将拥有一个可以直接运行后续章节所有代码的基准项目。

1.2 核心依赖关系与框架图

下图展示了 Android 应用、Retrofit、WorkManager 以及网络/数据库组件之间的基础架构关系。这是后续所有章节的顶层设计视图。

第1章项目依赖框架图 Android 应用 (App Module) Activity / UI 层 Retrofit + OkHttp WorkManager Room / 本地数据库 远程 API 服务器 基于 OkHttp 的同步堆栈

1.3 版本选择与兼容性说明

在正式添加依赖之前,需要明确版本策略。下表列出了本课程使用的推荐版本及其兼容性依据。

库名称 推荐版本 最低兼容 API 级别 选择理由
Retrofit 2.9.0 21 (Android 5.0) 稳定、广泛使用,对 Kotlin 协程和 RxJava 均有良好支持。
OkHttp 4.12.0 21 Retrofit 默认底层 HTTP 客户端,必需依赖。
WorkManager 2.9.0 21 官方推荐的长期运行后台任务方案,兼容性强。
Gson (转换器) 2.10.1 — 用于 Retrofit 的 JSON 序列化/反序列化。
版本兼容性提示:建议始终保持 Retrofit 和 OkHttp 的主版本号一致。如果项目使用 Kotlin,请确保 Kotlin 版本不低于 1.8.0,以避免与 Retrofit 2.9.0 的注解处理冲突。

1.4 添加 Gradle 依赖

在项目级 build.gradle.kts (Kotlin DSL) 或 build.gradle (Groovy DSL) 中配置仓库后,在 app/build.gradle.kts 的 dependencies 块中添加如下内容。

app/build.gradle.kts (Kotlin DSL)

dependencies {
    // Retrofit 核心库
    implementation("com.squareup.retrofit2:retrofit:2.9.0")
    // Retrofit Gson 转换器
    implementation("com.squareup.retrofit2:converter-gson:2.9.0")
    // OkHttp (Retrofit 自动包含, 但建议显式声明以控制版本)
    implementation("com.squareup.okhttp3:okhttp:4.12.0")
    // OkHttp 日志拦截器 (调试阶段非常实用)
    implementation("com.squareup.okhttp3:logging-interceptor:4.12.0")
    
    // WorkManager
    implementation("androidx.work:work-runtime-ktx:2.9.0")
    
    // 可选: 用于 WorkManager 的测试
    // androidTestImplementation("androidx.work:work-testing:2.9.0")
}
Groovy DSL 用户:只需将圆括号 () 替换为引号 "",并去掉 implementation 后的尾随空格。例如:implementation 'com.squareup.retrofit2:retrofit:2.9.0'。

1.5 配置网络权限

Android 应用默认不允许进行网络请求。除非你在 AndroidManifest.xml 中显式声明网络访问权限。打开 app/src/main/AndroidManifest.xml,在 <manifest> 标签内(<application> 标签上方)添加以下权限声明。

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

网络安全配置(Android 9+)

如果目标 API 级别为 28 或更高,并且你访问的是非加密的 HTTP 端点,请在 AndroidManifest.xml 的 <application> 标签中增加:android:usesCleartextTraffic="true"。生产环境强烈建议仅使用 HTTPS。

1.6 调试与验证

完成上述步骤后,请执行以下验证流程:

  1. 同步项目:在 Android Studio 中点击 File > Sync Project with Gradle Files 或直接点击工具栏的“大象”图标。
  2. 检查依赖树:在 Terminal 中执行 ./gradlew app:dependencies,确认 Retrofit、OkHttp、WorkManager 均已出现在依赖树中。
  3. 编译测试:尝试编译项目 (Build > Make Project),确保无编译错误。

常见错误 & 解决方案

  • Duplicate class 冲突:若出现 Duplicate class com.google.gson... 错误,请检查是否同时依赖了 converter-gson 和 gson 的不同版本。统一使用 Retrofit 推荐的版本。
  • WorkManager 运行时崩溃:确保 compileSdk 不低于 34,且 AppCompat 版本对应。低版本 AppCompat 可能导致初始化失败。

1.7 性能与稳定性优化建议

  • 统一 OkHttp 版本:如果你的项目还引入了 Firebase、Glide 等其他库,它们可能也依赖 OkHttp。请确保所有 OkHttp 版本一致,避免因版本冲突导致运行时诡异问题。
  • 使用 BOM 管理版本:对于大型项目,考虑使用 OkHttp 和 Retrofit 的 BOM(Bill of Materials)来统一管理版本,减少手动维护工作量。
  • 启用 HttpLoggingInterceptor:在调试阶段,务必注入日志拦截器以便追踪请求/响应。生产环境请移除或设置级别为 NONE。