承接上一篇《Hilt 使用与原理:Android 专属的 DI 方案》,这一篇做对比。DI 框架的选择本质上是「编译期检查」与「运行时灵活」的取舍——没有优劣之分,只有适用场景的差别。结论先行:Hilt 与 Koin 的核心差异不在性能,而在「错误暴露的时机」。Hilt 在编译期暴露依赖缺失,Koin 在运行时暴露。这决定了什么规模的项目适合哪个,而不是哪个「更好」。一、两种方案的根本差异1.1 Hilt:代码生成 + 编译期校验// 写法:注解 + 编译期生成 @Module @InstallIn(SingletonComponent::class) object NetworkModule { @Provides @Singleton fun provideOkHttp(): OkHttpClient = OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECONDS) .build() } @HiltViewModel class ProfileViewModel @Inject constructor( private val api: UserApi // 编译期检查能否解析 ) : ViewModel()编译时发生的事:注解处理器扫描所有@Module和@Inj
阅读完成 · 觉得有帮助?