-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
插件访问宿主的类需要一个一个写在白名单里吗 #78
Comments
目前我们实现的功能是在白名单中指定类的完整包名,而不是完整类名。 这样做主要的原因是这样满足了我们自身业务的需求。 我理解你的需求是对一个jar包里的所有类都列入白名单。这种需求我建议要另外实现一个完整匹配类名的白名单逻辑,然后白名单的生成在编译期通过Gradle任务分析jar包来生成。 另一种可能的办法是用Proguard将这个jar包的包名重新组织在同一个包下。 再回过头来说这个需求本身不一定是合理的,插件依赖过多的宿主类就跟宿主过于耦合了,应该考虑将插件要使用的功能定义为接口,然后让那个jar包里的一堆类实现这个接口。这样只暴露一个接口就可以了。 |
谢谢! |
是的。但你这么问有些奇怪,第三方库和你前面说的相同的依赖A没什么区别。编译后的程序中区分不出来哪些是自己写的类,哪些是第三方的类。 建议你将java的编译和运行原理再巩固一下,这对灵活运用插件技术很有用。 |
嗯嗯,好的谢谢 这一块我再去看看。 |
插件包瘦身以保证下载速度肯定要业务自己做。kotlin的runtime是可以用proguard优化的,增量不大的。还有可以通过拆分插件包,边下载边加载来优化。 |
#148 已改进通配符定义白名单。 |
我的宿主和插件有一个相同的依赖A,在插件里我使用了compileOnly A,并在插件的gradle配置里把需要用的类写在白名单里了。我的问题是,插件需要从宿主中访问的类很多,是要一个一个写在白名单里吗?有没有其他更快捷或者更自动的方式?先谢谢啦
The text was updated successfully, but these errors were encountered: