didi / DRouter

Android Router Framework
Apache License 2.0
743 stars 93 forks source link

增加一个选项用于在生成的RouterLoad中用Activity的Class替换原className的string #20

Closed holmeszyx closed 2 years ago

holmeszyx commented 3 years ago

针对有会在打包时对Activity做动态修改的特殊需求(打包后的Activity类名和coding时类名是不一样的)。

所以增加一个选项,可以在生成的DRouter类中直接使用Class。避免Activity 修改后,原String类型的className找不到最终的Activity类(因为类名改了)。

由于改drouter参数要升级plugin。所以临时用"gradle.properties"文件的方式来做配置。 key为“drouter.useActivityRouterClass”

weigao123 commented 2 years ago

非常感谢认真提供PR,其实在设计时没用class的原因是考虑到过多class被加载进内存对性能有一定影响 请问是否有尝试过把drouter的插件放到你提到的Activity做动态修改的插件后面,这样是否可以正常工作?

holmeszyx commented 2 years ago

因为修改是在R8阶段,暂时也就没办法控制其在drouter前工作。 也是考虑你们设计时应该对用string还是class有过思量,所以对于这个功能,我还是加了个参数控制,并且默认不开启。

weigao123 commented 2 years ago

感谢holmeszyx的PR