当前位置:首页 >> 中医美容 >> 源码剖析之AndroidStartup启动框架发挥作用原理

源码剖析之AndroidStartup启动框架发挥作用原理

发布时间:2024-01-21

#华尔街日报创作挑战赛#

参阅

今天给大家偷偷地来一个高效的顺利完成框架AndroidStartUp。既应对了相斗任务中都间的依靠关连,还能压制相斗任务中都间的子程序左至右。必要相异的子程序工作放在相异的虚拟机督导。支持虚拟机中都间的异步到时。

篇幅较长,同意保有后写出。文章末尾附偷偷地有代码地址。

用作步骤

1.分别假定两个SDk子程序战斗任务InitSdkOne和InitSdkTwo,让位于AndroidStartup抽象类。

InitSdkOne InitSdkTwo

2.将战斗任务加进到子程序客户端

3.督导战斗任务

从督导结果可以看出,InitSdkTwo战斗任务虽然之前被加进到战斗任务客户端,但是它原则上行在支虚拟机中都督导,而InitSdkTwo战斗任务虽然是第一个被加进的,但是却之前督导,而且须要等支虚拟机子程序顺利完成后再督导。

MVC建造者MVC

StartupManager核心用作核心类Builder用来构筑StartupManager所须要的战斗任务反馈,同时用作AtomicInteger原三子类历史记录须要到时的战斗任务数。

核心算法代数排列

代数排列主要是用来应对三元组中都的依靠问题,我们将所有须要督导的战斗任务组合成一个三元组,根据战斗任务中都间的依靠性和督导左至右进行排列。

如下图所示:

有5个战斗任务须要督导,如果要满足代数排列则须要满足不限要求:

战斗任务1先行督导且不须要依靠任何有条件。战斗任务2和战斗任务3则须要等战斗任务1督导完毕才能督导。战斗任务4须要等战斗任务2督导完毕才能督导。战斗任务5则须要到时战斗任务3和战斗任务4携手督导落幕才能督导。

图中都的偷偷地箭头的边可以看成战斗任务中都间的依靠关连,图中都的锥状代表战斗任务,所有战斗任务携手组合成一个有向无环图。再次得到的战斗任务排列为 1->3->2->4->5。

整体架构 假定战斗任务分发API:

Dispatcher分发API中都主要假定四个工具,callCreateMainThread(),waitOnMainThread(), toWait(),toNotify()。

假定战斗任务API。

假定StartupAPI让位于Dispatcher和StartupExecutor,其中都StartupExecutor用来包括虚拟机池。同时在Startup中都假定了四个工具,分别是create(),dependencies(),depedenciesByName(),getDependnciesCount()。

假定AndroidStartup抽象类,构筑StartupAPI,同时构筑API里的部分工具。

用作CountDownLatch用来压制虚拟机中都间的都将督导。

之前用作StartupManager加进战斗任务并顺利完成战斗任务的督导。

StartupManager加进战斗任务顺利完成此后函数调用start工具即可督导战斗任务的子程序,如果在用作StartupManager之前还有其他工作,那么就可以函数调用await到时支虚拟机督导落幕。

总结

AndroidStartup 用作代数排列应对了战斗任务中都间的依靠关连,同时支持三子虚拟机和支虚拟机切换。三子虚拟机可以到时支虚拟机战斗任务督导落幕此后在督导,保证了战斗任务中都间的有序性,目前只是构筑了简单的战斗任务的手动加进。后续通过出处,二进制码吊桩等其他方式顺利完成战斗任务的自动流到。

GitHub地址:

流感喉咙痛金笛复方鱼腥草合剂能治疗么
思密达与肠炎宁颗粒哪个止泻好
应急救护
眼睛干涩视力模糊怎么解决
新必奇蒙脱石散和益生菌能一起吃吗
标签:
友情链接: