Tencent / Shadow

零反射全动态Android插件框架
BSD 3-Clause "New" or "Revised" License
7.37k stars 1.29k forks source link

请问,理论上 Gradle Transform API,有没有办法在编译过程改变应用的 application id ? #1241

Closed LeonWu6 closed 10 months ago

LeonWu6 commented 10 months ago

Hi 大佬前辈, 由于 shadow插件化框架限制插件APK必须跟宿主相同 application id,宿主的业务承载能力因此受到较大的限制。 shadow框架将activity transform 为ShadowActivity的子类,我想理论上有没有办法在使用类似的 transform 手段,在编译时将 application id 给改了? 谢谢~

shifujun commented 10 months ago

这个id不止在Java class中,还在资源的arsc中。arsc是aapt编译出来的,没有现成的transform工具。

这个id还被用于从系统API找到宿主,如果写一个没安装的id,这些API就会报错。

所以如果你的插件逻辑不涉及这些场景,那是可以写成不同id的。

LeonWu6 commented 10 months ago

好的,我再研究研究,感谢您的答复! @shifujun