Application
Application 模块是 Rain 的运行时编排层,负责把配置、DI、类扫描、Loader、应用服务和事件总线连接起来。
两种启动方式
完整启动
kotlin
FullStackApplicationLauncher.launch()完整启动器会设置应用类加载器,注册类增强和 Hook Transformer,再反射启动 Application。这是默认推荐方式。
基础启动
kotlin
BasicApplicationLauncher.launch()基础启动器直接运行 Application,适合不需要字节码增强的场景。
扩展点
ApplicationService
应用服务具有 start()、stop() 和 priority()。数值较小的服务先启动。
Loader
Loader 接收扫描阶段生成的 LoadItem 集合,适合实现“由注解发现并批量注册”的能力。@LoadBy 可把类或自定义注解关联到 Loader。
kotlin
@LoadBy(MyLoader::class)
annotation class MyFeatureAutoBind
接口标记 @AutoBind 后,扫描到实现类时可自动建立接口到实现的绑定。EventBus 与 JobManager 都使用了这一机制。