引言
到目前爲止,咱們已經分析了OpenAtlas中插件的安裝,卸載,更新,以及安裝好插件以後組件類的加載過程,可是對於這些是如何引起的還不知道,好比,在宿主的一個Activit中調用startActivity()跳轉到插件中的一個Activity,如何判斷這個Activity在的插件是否已經安裝,若是沒有,須要在哪裏判斷並安裝呢?html
要回答這些問題,就須要對於Android中四大組件的啓動過程很是熟悉(主要涉及到ActivityThread,ApplicationThread,H,Instrumentation,ActivityManagerNativer,ActivityManagerProxy,AMS等),以後Hook一些關鍵的對象,而後在關鍵的位置進行判斷並安裝插件。字體