Skip to content
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

接入文档召集(易用性) #245

Open
yizems opened this issue Jan 10, 2020 · 20 comments
Open

接入文档召集(易用性) #245

yizems opened this issue Jan 10, 2020 · 20 comments
Labels
PR welcome 欢迎贡献代码

Comments

@yizems
Copy link

yizems commented Jan 10, 2020

希望能够加强项目描述,接入指引之类的文档,大片原理看着很爽,但是梳理项目项目做开发或者阅读的时候真的很费劲

@shifujun
Copy link
Collaborator

Shadow开源的主要目的是分享和交流技术,我们暂时没有精力提供一个易用的服务。并不是我们不感兴趣,只是因为提供这样一个易用的服务并不能给我们自身业务带来太多价值。

目前,我们应该可以针对每一个具体的技术问题进行交流和解答。所以你在阅读或者调试代码时,哪里有问题都可以通过Fork代码、进行修改、提供代码地址、提Issue来交流。针对可以复现问题的代码,交流的效率会非常高。

另外我们非常欢迎共建Shadow,当然也包括项目文档、自动化测试用例、甚至注释。所以也非常欢迎你贡献任何代码或者文档。

@yizems yizems changed the title 希望能够加强项目描述,接入指引之类的文档,大片原理看着很爽,但是梳理项目项目做开发或者阅读的时候真的很费劲 接入文档召集(易用性) Jan 10, 2020
@yizems
Copy link
Author

yizems commented Jan 10, 2020

此issu 暂不关闭,后续我可能会更新一些易用性文档,由于昨天才开始看此库,所以时间太短,给我点时间;
同时也希望有经验的同学分享下自己的接入经验吧

@donnyisgood
Copy link

我来简单写两条吧
1.关于宿主调用白名单配置,manager、loader组件中的位置均为com.tencent.shadow.dynamic.impl.WhiteList#sWhiteList,在插件中的位置为build.gradle打包插件配置里的pluginApks内,字段名为hostWhiteList
2.插件中如果出于构建要求implementation了和宿主中一样的第三方库,那么需要在白名单中配置插件中调用到的这个库的包名,否则会出现类型不匹配

@yizems
Copy link
Author

yizems commented Jan 21, 2020

先带来一张 流程图吧, sample 中的,照着这个 图 缕一下,差不多就能明白 主要启动流程 以及 各个module 的作用了,但是我还没写完,只写到 启动占位activity,,最近也是忙=.=

image

@yizems
Copy link
Author

yizems commented Jan 21, 2020

不够完善,见谅,望大佬补充;

实线 依赖, 虚线 compileOnly

Shadow_结构图

年后见

@LinXueyuanStdio
Copy link
Contributor

今天有空,画了一下项目的结构。没有画源码级依赖的,因为太麻烦了。maven的更清晰一点。
希望能帮到大家。
未命名文件

@shifujun shifujun pinned this issue Apr 5, 2020
@shifujun shifujun mentioned this issue Apr 5, 2020
@cysyy
Copy link

cysyy commented Apr 9, 2020

https://xiaozhuanlan.com/topic/4251637980
网上找的一篇介绍框架启动插件的整体流程,代码也贴得非常清晰~ 刚开始熟悉Shadow可以看看

@chenlione
Copy link

希望出一个简易的使用视频,或者简易使用文档

@shifujun shifujun added the PR welcome 欢迎贡献代码 label Jun 12, 2020
@SheepYang1993
Copy link
Contributor

搜索到的一篇PPT,http://www.mianshigee.com/ppt/17991pci/

@shifujun
Copy link
Collaborator

shifujun commented Sep 3, 2021

怎么把宿主的项目和插件的项目分开呢?
现在耦合在一起很难搞呀!!!!

@liupeng110
https://github.com/Tencent/Shadow/tree/master/projects/sample#%E4%BA%8C%E8%BF%9B%E5%88%B6maven%E4%BE%9D%E8%B5%96sdk%E7%9A%84sampleprojectssamplemaven
projects/sample/maven这里面特意演示的就是宿主和插件分开的项目如何接入Shadow的。

@shifujun
Copy link
Collaborator

shifujun commented Sep 3, 2021

host中怎么加载呢

这篇README有介绍的:
https://github.com/Tencent/Shadow/tree/master/projects/sample#%E8%BF%90%E8%A1%8C%E6%96%B9%E6%B3%95

@Tencent Tencent deleted a comment Sep 3, 2021
@Tencent Tencent deleted a comment Sep 3, 2021
@Tencent Tencent deleted a comment Sep 3, 2021
@Tencent Tencent deleted a comment Sep 3, 2021
@Tencent Tencent deleted a comment Sep 3, 2021
@Tencent Tencent deleted a comment Sep 3, 2021
@shifujun
Copy link
Collaborator

shifujun commented Sep 3, 2021

@liupeng110 是这样的,Shadow的完整设计是包含动态化插件框架本身的,因此你看到的demo已经是最简单的演示了。

从你的需求描述来看,你可以参考https://github.com/Tencent/Shadow/tree/master/projects/test/none-dynamic 这个测试场景。这个场景测试的就是没有dynamic层的shadow能否正常工作。由于没有dynamic层,插件框架的一切实现都打包在了宿主中,因此会是你所说的只有一个host.apk,它的assets里包含一个plugin.apk的形式。

关于你的其他批评我能理解,欢迎你提PR帮助Shadow优化代码。有一些你认为多余的设计,可能在你实际写代码时就会发现作用了。这篇Issue前面贴的一些图和文章其实能够解答你的疑问。

@LinXueyuanStdio
Copy link
Contributor

如果贡献整理文档,是提交md文件的pr嘛
wiki貌似不可以提pr

@shifujun
Copy link
Collaborator

shifujun commented Sep 6, 2021

如果贡献整理文档,是提交md文件的pr嘛
wiki貌似不可以提pr

文档可以先提交到一个单独的issue中,这样是markdown格式的,图片也好上传。代码中可以留一个Issue的链接。这样文档也好编辑和讨论。如果没有图片需要上传到git中,直接在代码的子包中创建README.md也是可以的。

@ranhuanbin
Copy link

在上面其他人的图的基础上稍微补充了一些描述,如果有错误,麻烦大家帮忙指出一下,我继续修改
shadow 结构图

@docwei2050
Copy link

@liupeng110 是这样的,Shadow的完整设计是包含动态化插件框架本身的,因此你看到的demo已经是最简单的演示了。

从你的需求描述来看,你可以参考https://github.com/Tencent/Shadow/tree/master/projects/test/none-dynamic 这个测试场景。这个场景测试的就是没有dynamic层的shadow能否正常工作。由于没有dynamic层,插件框架的一切实现都打包在了宿主中,因此会是你所说的只有一个host.apk,它的assets里包含一个plugin.apk的形式。

关于你的其他批评我能理解,欢迎你提PR帮助Shadow优化代码。有一些你认为多余的设计,可能在你实际写代码时就会发现作用了。这篇Issue前面贴的一些图和文章其实能够解答你的疑问。

铁子,思路牛逼,但是想看个简单的源码,真的是难

@yumdao
Copy link

yumdao commented Jun 28, 2022

拜读源码的时候,整理一下source的依赖关系图和插件启动时序图,希望对大家有所帮助。
依赖关系图:
依赖关系图

插件启动时序图:
启动时序图

@itismelzp
Copy link

写个插入文档有那么费劲吗?还说"易用的服务"没有什么价值,大大的无语。

@yuyedaidao
Copy link

对iOSer很不友好😂

@budaowengd
Copy link

budaowengd commented Dec 7, 2023

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PR welcome 欢迎贡献代码
Projects
None yet
Development

No branches or pull requests

14 participants