我想知道是否可以在多個應用程序上共享應用程序上下文中的單例?每個應用程序都會在自己的APK中,但這可能聽起來像糟糕的架構,但首先聽到我的聲音。多個Android應用程序可以共享單個進程和應用程序上下文嗎?
我想這樣做的原因是因爲我有一個現有的庫,它通過藍牙控制外部設備。這個庫是java的,但是下面有一些本地的(c/C++)所有的java包裝。我曾考慮過把這些全部放入服務中,但IPC(我使用的是aidl)變得非常麻煩。嘗試減少對象到基元是幾乎不可能的(私人領域,jni指針等),並試圖用AIDL包裝一切是非常混亂。
如果每個應用程序都可以在同一個進程中運行,並且具有相同的應用程序上下文,那麼允許我在那裏保留一個單例對象,這會讓事情變得更容易。我的googl-fu在這方面讓我失望。也許它不可能?
如何指定自定義應用程序上下文以允許單例?我認爲android:name與它有關,但是確保它們實際上是同一個類? – startoftext
@startoftext你知道嗎?我想做同樣的事情。 – Alan
應該足夠設置sharedUserId並用相同的證書對兩個應用程序簽名。 android:進程屬性用於更多額外的東西,如命名或指向正確的進程。 – zgulser