-
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
多插件处于不同进程,进行通信的问题总结 #56
Comments
相关问题在这个分支可以观察https://github.com/enzowyf/Shadow.git |
首先需要增加这个feature:支持同一个PluginManager实例管理多个插件进程 #57 |
uuid这个事情我知道,在sample-host的builde.gradle,有个自定义任务genUUID,用于统一uuid,所以应该不是uuid的问题引起的 |
我在你的提交基础上尝试修复了。 这里有一个设计比较隐晦,我解释一下。PluginManager有两个方向的设计,其中一个方向是怎么管理插件包,另一个方向是怎么供宿主使用。所以宿主这边拿的PluginManager实际上是 所以,我的改动,就是让SamplePluginManager不再继承PluginManagerThatUseDynamicLoader,而是直接实现PluginManagerImpl接口,然后持有两个FastPluginManager。 麻烦看一下issue提到的问题是否都解决了。我自行验证是没问题的。 |
插件配置如下:
插件1位于plugin进程,内包含Activity和Service
插件2位于plugin_2进程,内包含Activity,并通过aidl与插件1通信
宿主,可唤起插件1和插件2中的activitym,并通过aidl与插件1通信
现象1:
直接进入插件2的Activity,通过aidl与插件1通信,正常通信,插件1的Service运行在plugin;
退出该activity,回到宿主,通过aidl与插件1通信,正常,插件1的Service运行在plugin;
再从宿主进入插件2的Activity,进入loading页后,有概率闪退回宿主,多试几次后可以成功进入
现象2:
直接进入插件2的Activity,通过aidl与插件1通信,正常通信,插件1的Service运行在plugin;
退出该activity,回到宿主,通过aidl与插件1通信,正常通信,插件1的Service运行在plugin;
反复以上操作,有概率出现在宿主通过aidl与插件1通信时,插件1的Service运行错误运行在plugin_2;
现象3:
直接进入插件1的activity,在loading页立即退出返回宿主界面,然后再进插件1的activity,有概率出现报错“PPS出现多实例”
现象4:
反复多次来回进入和退出两个插件的activity,有概率出现插件2中的activity无法启动,现象同现象1
1和4比较容易复现
The text was updated successfully, but these errors were encountered: