2014-10-19 67 views
0

我想知道應用程序的整個API是如何工作的?它是如何創建的?我知道它在C中是如何工作的,例如當你創建一個.h文件時,但更像創建一個庫。Android應用程序的API

當你有一個應用程序運行並執行某些功能時,還希望其他應用程序能夠使用它的某些功能時,它是如何完成的?你是否應該創建一個名爲API的類,並且要導出所有功能(函數)?然後當有人想要使用你的功能時,他創建這個類或調用一個靜態函數?

謝謝, Tomer。

回答

1

當你有一個應用程序運行並且做了一些東西並且還希望其他應用程序能夠使用它的某些功能時,它是如何完成的?

通常,您通過Android進程間通信機制(IPC)導出一個或多個組件。在這裏,「組件」是指活動,服務,廣播接收者和內容提供者。

例如,幾乎每個應用程序都有一個「API」:<intent-filter>ACTION_MAINCATEGORY_LAUNCHER的活動。第三方應用可以啓動該活動。

同樣,你可以:

  • 出口服務,專爲第三方通過bindService()通過`startService()
  • 出口調用服務,專爲第三方調用和AIDL定義Binder
  • 出口廣播接收器,專爲第三方發送廣播消息,你會撿起
  • 導出內容提供商,專爲第三方來檢索(或者修改)的數據庫中的數據或流結構

是你應該創建一個類調用的API,並擁有所有的功能(功能)要導出在那裏?然後當有人想要使用你的功能時,他創建這個類或調用一個靜態函數?

通常,您的代碼駐留在您的進程中,因此其他應用程序在其進程中不可用。

歡迎您創建一個JAR來包裝您要導出的Android IPC接口,然後爲其分發該JAR和文檔,以便第三方使用您的IPC。在這種情況下,JAR將不是您自己的應用程序的代碼,而是包裝IPC接口的客戶端(例如,JAR調用startService()bindService())的單獨庫。