luckybilly / CC

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

壳和组件的通信 #170

Closed weiweiForAndroid closed 4 years ago

weiweiForAndroid commented 4 years ago

在壳的gradle 中添加addComponent之后,打包成app运行的时候,壳app里面不能直接使用组件的类,得通过CC来调用,这个调用是通过反射么?组件内部的调用是通过什么方式?

luckybilly commented 4 years ago

@weiweiForAndroid 请移步CC文档

weiweiForAndroid commented 4 years ago

@luckybilly 可能我说的不太明白。重新理一下就是,编译时壳不能直接使用依赖的组件中的类,得通过CC来调用。那么这个CC调用的原理是什么?ClassLoader 反射调用的?还是别的什么。我才疏学浅,还请明说。

luckybilly commented 4 years ago

@weiweiForAndroid 不是反射,用的是编译期字节码操作实现自动注册,还请查阅CC的原理文档

另外可以了解一下我的另一个项目:AutoRegister原理文档

yizems commented 4 years ago

@weiweiForAndroid 仔细阅读文档每一个字, 相关技术点 ASM 字节码操作框架, gradle transform API, ,IPC AIDL Binder, 序列化, contenProvider cursor 等等;

100多人watch...

weiweiForAndroid commented 4 years ago

@luckybilly 详细看了文档,文档内是不是只描述了编译速度。运行时的速度上有差异么?和直接依赖调用的那种方式,在项目运行起来的时候,调用性能上有差异没?