我想開發一個支持插件並向這些插件提供數據的應用程序。在我看來,在Android上實現這個插件架構的正確方法是爲主應用程序提供一個apk,爲每個插件提供一個apk。ContentProvider與使用AIDL/Messenger
但是,由於主應用程序和每個插件都在不同的應用程序中,我不能輕鬆地將(數據)對象從一個傳遞到另一個,應用程序在不同的進程中運行,即使它們運行在一個進程中被實現)他們有不同的類加載器,這是行不通的。目前我看到兩種有前途的方法可以將數據從我的主應用程序獲取到我的插件中:
- 聲明主應用程序爲
ContentProvider
。這對我來說似乎是預期的方法,因爲它確實實現了我想要實現的目標:向其他進程提供內容/數據。 - 製作我的數據對象
Parcelable
並用AIDL
或者 - 如果我不需要多線程 - 用Messenger
-approach實現。在我看來,這種方法似乎更容易,因爲我可以在後臺使用關心數據庫的ORM庫。我之前從未使用過ContentProvider,但在第一次看到它時我認爲使用ContentProvider有點像手工構建SQL-Queries(請告訴我,如果我錯了),並且我想避免這種工作!
現在我想知道我是否錯過了任何優點或缺點,以及這兩種方法之間是否存在顯着的性能差異。你更喜歡哪種解決方案?爲什麼要這樣做?
在此先感謝!任何答覆表示讚賞!