不爲人知的IPC

1、開啓多進程模式
創建多進程的方式,通過四大組件指定android:process;或者非常規的操作,通過JNI在native層去fork一個新的進程(非常常用方式)。這裏暫不對fork方式多做分析。
(1)android:proces = “:remote”
(2)android:proces = “com.grace.remote”
這兩種方式有什麼差別呢?
(1)方式一的進程名爲“包名:remote”,方式二的進程名爲“com.grace.remote”
(2)方式一的進程屬於當前應用的私有進程,其他的應用的組件不可以和它跑在同一個進程中。方式二的屬於全局進程。其他應用可通過shareUID方式可以和他跑在同一個進程中。
Android系統會爲每個應用分配一個唯一的UID,具有相同的UID的應用才能共享數據。這裏要說明的是,兩個應用通過shareUID跑在一個進程中是有要求的,需要這兩個應用具有相同的ShareUID並且簽名相同纔可以。在這種情況下,他們可以互相訪問對方的私有數據。比如data目錄,組件信息等,不管他們是否跑在同一個進程中。當然如果他們跑在一個進程中,那麼出了能功效data目錄,組件信息,還可以共享內存數據,或者他們看起來像是一個應用的兩個部分。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章