源码解析:Router

85 阅读1分钟

1,Map为啥不会导致内存泄露:

因为map中存的是activity的class信息,.class是放在常量池中(方法区),而内存回收主要是对堆内存中gc root下有引用链的对象做回收,所以存class并不会导致泄露

2,为啥组件化项目后,平行业务模块启动activity不能获取到这个xxx.class

Google提供了显式和隐式两种原生路由方案。但在模块化开发中,显式Intent存在类直接依赖的问题,造成模块间严重耦合。隐式Intent则需要在Manifest中配置大量路径,导致难以拓展(如进行跳转拦截)。为了解决以上问题,我们需要采用一套更为灵活的Router方案。

Router.png