簡體   English   中英

需要有關多應用IPC的一些指導

[英]Need some guidance with multi-app IPC

我在這里真正要尋找的只是一些指導。 我正在嘗試創建我的第一個官方android應用。 我是java / droid的新手,但不是編程人員。 在過去的一個月中,我創建了許多小型實驗活動,服務,線程以及諸如此類的東西,它們均按計划運行。 所以現在我試圖將所有東西都綁在一起,但運氣不佳。

在一個新項目中,我已將膽量編譯到“ my.main.package”中,該服務運行的服務會不斷處理其他客戶端/應用程序可以使用的數據……這就是我的計划。 例如,在此服務中,是一個不斷計數的自定義線程/循環計時器。 對於其他任何應用程序來說,以偵聽程序可以在自己的沙箱中以最小的負擔方式不斷獲取此計時器和其他數據的最佳方式是什么?

我假設必須為IPC實現aidl,但是我不確定它是否需要和/或必需,因為my.main.package中的數據僅是傳出的,即其他應用僅需要接收/監聽。 我知道必須進行某種形式的消息處理或可打包的封送處理,並需要具有輔助許可的權限,但是我不得不認為對包裹進行編碼/解碼或每毫秒發送一條消息會非常麻煩。 是唯一的幫助方法,還是有可能如您所願地廣播數據?

任何幫助將不勝感激!

我認為,實際上,帶有AIDL的IPC是滿足您要求的唯一且最有效的方法。 如果您需要一個演示,可以在這里看看。 這是我寫的一個簡單示例,用於在Android上學習AIDL和Binder。 希望它能給您一些簡短的開始。

在一個新項目中,我已將膽量編譯到“ my.main.package”中,該服務運行的服務會不斷處理其他客戶端/應用程序可以使用的數據

服務僅在積極向用戶傳遞價值時才應運行。 用戶認為創建始終運行的服務的開發人員是白痴,並使用任務殺手,從“設置”應用強制停止等攻擊其應用。

也許您的描述只是以不好的眼光描繪了您的應用程序,但是“不斷處理數據的服務”是一種反模式。 這些是手機和平板電腦,而不是服務器。

對於其他任何應用程序來說,以偵聽程序可以在自己的沙箱中以最小的負擔方式不斷獲取此計時器和其他數據的最佳方式是什么?

最好的方法是,首先不要讓他們成為單獨的應用。

例如,在此服務中,是一個不斷計數的自定義線程/循環計時器。

這不會為用戶增加價值。

我假設必須為IPC實現aidl,但是我不確定它是否需要和/或必需,因為my.main.package中的數據僅是傳出的,即其他應用僅需要接收/監聽。

使用AIDL的遠程服務是進行IPC的一種方法。 這不是唯一的方法。 這甚至不是最常見的方式。 你也可以:

  • 發送廣播Intent
  • 讓客戶端向該服務發送Messenger ,並且該服務通過該Messenger向客戶端發送消息
  • 讓服務更新ContentProvider ,並讓客戶端在ContentProvider上注冊ContentObserver

我知道必須進行某種形式的消息處理或可打包的封送處理,並需要具有輔助許可的權限,但是我不得不認為對包裹進行編碼/解碼或每毫秒發送一條消息會非常麻煩。

IPC通常是“非常繁重的”。 因此,應盡可能避免IPC。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM