IPC進程間通信/跨進程通信

#概念
進程:一個JVM就是一個進程
線程:最小的調度單元
一個進程可以包含多個線程,在安卓中有一個主線程也就是UI線程,UI線程纔可以操作界面,如果在一個線程裏面進行大量耗時操作在安卓中就會出現ANR(Application Not Responding)
#Android中IPC來源
IPC不是安卓中獨有的 ,比如Windows中通過剪貼板,管道,油槽等進行進程間通信,Linux通過命名管道,共享內容,信號量等進行進程間通信,雖然Android基於Linux但是不完全繼承Linux,Android中獨特的進程間通信Binder,同時也支持socket。
#Android進程間通信通常用在如下幾個方面
當應用中某個模塊需要單獨運行在某個進程中;或者相同通過多個進程來擴大應用的內存;當前應用需要向其他應用獲取數據(其實COntenProvider去查詢數據也是跨進程通信只不過底層分裝之後我們察覺不到而已)。
#Android如何開啓多進程
這裏只討論一個APP內的多進程,暫不討論兩個應用之間的多進程
這裏我們目前討論正規方式:通過Androidmenifest文件中給四大組件(Activity,BroadCast Receiver,Service,ContentProvide)添加Android:process 屬性,暫不討論通過JNI非正規方式開啓新進程
例:<Activity Android:name:".xxxxActivity" Android:process:".remote"/>
這樣我們啓動這個Activity的時候就會新開啓一個進程。

掃碼關注公衆號“偉大程序猿的誕生“,更多幹貨新鮮文章等着你~

公衆號回覆“資料獲取”,獲取更多幹貨哦~

有問題添加本人微信號“fenghuokeji996” 或掃描博客導航欄本人二維碼

發佈了97 篇原創文章 · 獲贊 961 · 訪問量 49萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章