外观
如何理解初始化依赖拆分?
标准回答
先列任务依赖图:每项初始化由谁消费、最晚何时必须完成、是否必须主线程、失败是否影响首屏。只有首屏渲染或立即交互真正需要的节点,才保留在启动关键路径。
拆除依赖不是直接删掉等待。要把消费者改成能处理未就绪状态,必要时提供占位、异步通知、按需触发或一次性初始化。对共享结果保证安全发布,对并发请求防止重复执行,并验证异常、重入和进程重建。若主线程随后调用 Future.get 等待后台任务,依赖仍在,甚至增加排队成本。
追问与回答
两个任务没直接调用关系,能并行吗
还要检查共享文件、数据库锁、单例初始化和 SDK 隐含主线程要求。依赖图包含数据和资源关系,不仅是函数调用。
易混淆点
- 把所有初始化塞进线程池,再在主线程统一 await。
内容来源
- Android 与 AI 工程 Wiki · 原条目
q008