Android面試篇之IPC機制 程序之間的通訊

2021-08-13 14:44:04 字數 970 閱讀 3183

ipc inter-process communication 跨程序通訊,兩個程序之間進行資料交換的過程

在android中的多程序一般指乙個應用中存在多個程序的情況,下面討論乙個應用中多程序的情況。

在androidmanifest.xml檔案中,給四大元件指定android:process屬性即可,值為程序的名稱,如下

假設我的包名為com.katherine.du.everydaystudy,上面的bookmanagerservice將會執行在名為「com.katherine.du.everydaystudy:remote」的程序中,

bookprovider將會執行在「com.katherine.du.everydaystudy.provider」的程序中。

至於區別,以「:」開頭的程序屬於當前應用的私有程序,其他應用的元件不可以和它跑在同乙個程序中;而不以「:」開頭的程序屬於全域性程序,其他應用通過shareuid方式可以喝它跑在同乙個程序中。

bundle是實現了parcelable介面的,所以可以方便地在不同的程序間攜帶資料。activity、service、receiver都支援在intent中傳遞bundle資料。

兩個程序可以通過讀寫同乙個檔案進行傳遞資料,但對資料同步的處理有侷限性,且無法做到即時通訊。

在不同的程序中傳遞message物件,底層實現是aidl,侷限性:序列處理訊息,只能通過message的bundle進行資料傳遞。

通過aidl實現跨程序的方法呼叫,高併發實時通訊,同樣適用於兩個應用之間。

●  首先建立乙個service和乙個aidl介面

●  建立乙個類繼承自aidl介面中的stub類並實現stub中的抽象方法,並在service中的onbind方法中返回這個類的物件

●  最後客戶端就可以繫結服務端的service,建立連線後即可訪問服務端的方法了

此方法同樣適用於兩個應用之間,或不同的裝置之間

面試之技術面試篇

6 網路 這也是常考的部分。主要考查點有 osi參考模型,tcp ip參考模型。以下是我遇到過的具體面試問題 1 請解釋一下osi參考模型。中國信保 2 請解釋一下tcp ip參考模型。中國信保 3 為什麼現在的網路最後採用了tcp ip參考模型而沒用osi參考模型?中國信保 總結 這部分面試主要考...

面試之 華賽篇

日子一天天的從腳下溜走,來不及回目,今天早已成為了過去,過去錯過的種種如今還是照樣一幕幕的重演著。早就想靜下心來好好的總結下自己這段日子來的心路歷程,但知道這個本世紀最大的光棍節的時候,才寫下這些文字。其實我喜歡記錄,就像喜歡用 記錄下生活一樣,因為我喜歡回味過去的快樂。從acer實習回來後,我就開...

Java面試之git篇

1.git的常用命令 答 git show 顯示某次提交的內容git show id git add 將工作檔案修改提交到本地暫存區 git rm 從版本庫總刪除檔案 git fetch 相當於是從遠端獲取最新版本到本地,不會自動merge git reset 從暫存區恢復到工作檔案 git res...