引言
到目前为止,咱们已经分析了OpenAtlas中插件的安装,卸载,更新,以及安装好插件以后组件类的加载过程,可是对于这些是如何引起的还不知道,好比,在宿主的一个Activit中调用startActivity()跳转到插件中的一个Activity,如何判断这个Activity在的插件是否已经安装,若是没有,须要在哪里判断并安装呢?html
要回答这些问题,就须要对于Android中四大组件的启动过程很是熟悉(主要涉及到ActivityThread,ApplicationThread,H,Instrumentation,ActivityManagerNativer,ActivityManagerProxy,AMS等),以后Hook一些关键的对象,而后在关键的位置进行判断并安装插件。字体