CRN原理分析
2020-08-14 14:36:51 0 举报
携程CRN的分包加载机制
作者其他创作
大纲/内容
利用A_bridge加载A、该业务Bundle
缓存一个bridge,供下一个业务使用
将bridge标记为Ready状态
否
1. 因为bridge是比较耗性能的,所以要限制brige数量,2. 当内存警告也会做这样的清理,3. 5是CRN里面设置的上限
创建新bridge并加载基础Bundle
这个过程是CRN利用C++自己实现的,是同步操作
将加载过业务的A_bridge标记为dirty状态
是
并将_bridge缓存到cacheBridgeList
加载完成
当cacheBridgeList中数量大于5时,移除掉最初缓存的bridge
基础包里内置一个App壳子,并且对requirePackageEntry进行监听
cacheBridgeList中是否存在loading状态或ready状态的bridge
退出指定业务
根据A_bridge创建RCTRootView并渲染
RN收到通知将基础的壳子替换为指定业务
开始
将要进入其他业务
加载过程中bridge是loading状态
Native向RN发送requirePackageEntry通知
App启动时
将要进入指定业务
0 条评论
回复 删除
下一页