luckybilly / CC

业界首个支持渐进式组件化改造的Android组件化开源框架,支持跨进程调用。Componentize your android project gradually.
https://luckybilly.github.io/CC-website/
Apache License 2.0
4.05k stars 635 forks source link

现在组件化的组件自动注册意义是什么? #81

Closed Foamtor closed 5 years ago

Foamtor commented 5 years ago

来自讨论群疑问:

为什么需要注册?module还是aar依赖都可以直接通过Activity显示过隐式调用 module和aar依赖都可以直接通过Activity显示或隐式调用,代码块可以直接引用。那这个自动注册的意义是什么?

Foamtor commented 5 years ago

作者回复:

自动注册是相对于手动注册的:手动注册时,如果要将类注册到其管理类中,需要手动写代码去一个个地添加。自动注册就不需要这么做了。 譬如:android的广播接收器,我们定义了一个BroadcastReceiver子类,如果要让它生效(注册到AMS中),必须在manifest中静态注册或java代码中动态注册,必须要添加代码,这属于手动注册。 CC里的IComponent会自动注册到管理类ComponentManager中,只需定义这个类即可,无需写注册代码

luckybilly commented 5 years ago

@Foamtor 非常感谢!把群里的一些问题及回复整理到issue中方便大家查阅确实很有意义。

就这个问题,再补充一下:自动注册在编译时由插件扫描字节码自动完成,不需要在上层直接持有下层具体类的引用,也解决了代码隔离的问题。