第3章 环境准备:开发环境搭建与SDK配置

说实话,很多新手在SDK接入时翻车,不是因为代码写错了,而是环境没搭对。我见过太多人花了一整天排查一个编译错误,最后发现是JDK版本不对。所以这一章咱们把地基打牢。

3.1 IDE选择与配置

主流的选择就三个:Android Studio、Xcode、VS Code。我个人习惯用Android Studio做原生Android开发,Xcode做iOS,VS Code用来写点脚本或者跨平台项目。

但注意,IDE版本不要太新。我建议选稳定版,别追预览版。曾经我在一个项目中用了Android Studio的Canary版本,结果Gradle插件不兼容,整个团队都要等我降级。这种痛,一次就够了。

IDE适用平台推荐版本注意事项
Android StudioAndroidHedgehog (2023.1.1) 以上稳定版必须配套Gradle 8.x,否则会出现Task配置错误
XcodeiOS / macOS15.x 稳定版Command Line Tools 要单独勾选,很多新手漏掉这一步
VS Code跨平台脚本 / Flutter最新稳定版需要装C/C++扩展和对应SDK的插件
小技巧: 安装IDE时,路径不要带中文或空格。我以前遇到过因为用户名是中文,导致NDK交叉编译路径解析失败,整个项目编译报错。

3.2 依赖管理方案

依赖管理说白了就是帮你的项目自动下载第三方库。不同平台的工具不一样,但核心思想是一致的:声明依赖,工具解析并下载。

  • Android: Gradle + Maven Central / Google Maven
  • iOS: CocoaPods 或 Swift Package Manager
  • Flutter: pubspec.yaml + pub.dev

下面是一个典型的 Android 下依赖配置(build.gradle.kts):

// 项目级 build.gradle.kts
buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:8.2.0")
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.20")
    }
}

// 模块级 build.gradle.kts
dependencies {
    implementation("com.example:sdk-core:2.1.0")
    implementation("com.example:sdk-utils:2.1.0")
}
依赖版本冲突 是家常便饭。我曾经在集成两个不同模块的SDK时,发现一个依赖了 OkHttp 4.9,另一个依赖4.11,Gradle 报出依赖锁死错误。解决办法是用 force 或 dependency constraint。
// 强制指定版本
configurations.all {
    resolutionStrategy {
        force("com.squareup.okhttp3:okhttp:4.11.0")
    }
}

为什么会出现这个冲突?因为SDK作者可能没做版本上限约束。你想想看,两个库都依赖同一个组件但版本不同,Gradle 必须决定用哪一个。如果版本不兼容,运行时就会抛出 NoSuchMethodError。

3.3 模拟器与真机调试

模拟器能快速验证UI和基本逻辑,但真机才能暴露真正的性能问题和硬件交互问题。我个人习惯先跑模拟器,等核心流程跑通后,强制用真机复测一遍。

  • Android 模拟器: 建议选 x86_64 镜像,启动快。如果电脑内存小于16G,别开带Google Play的镜像,容易卡死。
  • iOS 模拟器: 只能运行在 macOS 上,而且不能模拟摄像头、陀螺仪等硬件。我因为忽略这点,结果在真机上才发现相机权限没弹窗。
  • 真机调试关键点: 开启开发者选项、USB调试(Android)、证书信任(iOS)。
避坑指南: 我曾经用了一台 Android 7.0 的真机测了一个新版本SDK,结果发现 WebView 初始化总是崩溃。查了半天,原来是SDK最低支持API 26(Android 8.0),而API 24上WebView的渲染模式变了。所以测试前请确认设备系统版本符合SDK最低要求。

3.4 SDK版本选择与下载

SDK版本怎么选?说白了就是平衡稳定性和新特性。我给一个经验法则:

  1. 优先选 LTS 或稳定版,不要用 alpha / beta 做生产项目。
  2. 看版本发布的时间,超过一年的旧版本可能已被厂商放弃维护。
  3. 关注 changelog 中的 breaking changes,大版本升级通常伴随API删除。

下载渠道一般就两个:官方GitHub Release 或 Maven / CocoaPods 仓库。国内开发者可以配镜像来加速,比如阿里云 Maven 镜像。

// 在 ~/.gradle/init.gradle 中配置镜像
allprojects {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/google' }
    }
}
注意: 有些SDK的artifact在Maven Central上,而有些只在JCenter(已停用)上。2021年后JCenter不再更新,如果你用的SDK还只发布在JCenter,建议联系厂商迁移到Maven Central。

本章知识体系

下面这张图把环境准备的几个关键环节串起来了。你可以用它当检查清单,每完成一步就打勾。

环境搭建核心流程 ① 选择 IDE ② 配置编译环境 ③ 依赖管理 ④ 模拟器 / 真机 ⑤ SDK下载集成 ⑥ 调试验证 提示:每个环节都可能遇到环境差异,建议用 Docker 或统一镜像来降低“在我电脑上能跑”的问题

到这步,你的开发环境基本就绪了。记住:环境搭建没有捷径,一步步来反而最快。接下来就可以开始真正的SDK初始化编码了。