2010-11-12 58 views
1

我必須讓其他開發人員能夠連接到我的服務,但我的AIDL導入我的類。 我不想給他們服務的源代碼,只是APK和某種存根文件(java,jar?)。 我該如何給他們一些東西 - 「膠水」 - 這使他們能夠使用我的AIDL中的類並使用服務akp而無需獲取服務的來源?部署我的AIDL,導入我的類

感謝您的任何提示!

回答

2

我必須做出其他開發人員能夠連接到我的服務,但我的AIDL進口我的班

如果「我的課」你的意思是實現Parcelable自己的類,擺脫他們從您的API。

恕我直言,唯一穩定的遠程服務API是完全依賴於由操作系統提供和管理的東西的API。這意味着您可以使用Android提供的原語,列表/地圖和Parcelable類(例如,Bundle,PendingIntent)。

否則,您必須將源代碼發送到Parcelable類,然後在決定更改這些類實現時處理兼容性問題。

但是,如果「我的課程」指的是其他內容,您可能希望編輯您的問題並進一步解釋您的意思。例如,您可能會發布AIDL文件。

+0

感謝您的回答! – user289463 2010-11-12 17:25:29

+0

問題是API(通過這個AIDL)需要特殊的類(parcelable)。所以,如果我擺脫它們,客戶端代碼將如何使用它們?我怎樣才能導出某種存根/膠水,這樣就可以在不使用源的情況下查看這些類? (這些類僅用於傳遞/檢索數據) – user289463 2010-11-12 17:26:51

+0

@ user289463:「問題是API(通過此AIDL)需要特殊類(parcelable)」 - 恕我直言,這是您的部分API設計錯誤,如果您正在計劃連接到此AIDL接口的第三方。對於你自己的項目,自定義'Parcelable'類是好的,但不適用於第三方的API。 「我怎樣才能導出某種存根/膠水,這樣就可以在不使用源代碼的情況下查看這些類?」 - 你沒有。您重新設計您的API以避免使用自定義'Parcelables'。例如,將它們切換到「Bundles」。 – CommonsWare 2010-11-12 17:49:47