2010-04-27 44 views
0

如果我需要構建一個android SDK,其他開發人員可以將它們集成到他們的android應用程序中,是否讓我的SDK成爲唯一途徑?據我所知,震動有以下考慮:Android SDK - 其他方式?

  1. 如果您的應用程序使用佈局,那麼你必須以編程方式創建它。由於jar文件不能攜帶任何資源。
  2. 意願需要放置在lib /資產文件夾,並加入到(在Eclipse)構建路徑罐子 - 這裏學到:Android - Invoke activity from within jar
  3. 主要應用程序將必須創建一個Intent對象,並指定包和在jar中啓動活動的類名稱。

任何人有任何其他想法去上述任何步驟?

感謝 喬治

回答

1

創建一個JAR是,在我看來,一個非常糟糕的決定。 Android具有特定的功能只是爲了您要找的東西。如果您的JAR:

  • 提供某種(結構化)數據以用於其他應用程序,請使用ContentProvider;
  • 做了一些後臺處理,並使處理結果可用於其他應用程序,請使用Service;
  • 提供了一個Activity,它從用戶處獲得一些輸入(或顯示某些關於某事的信息),最終處理它並將其返回給調用Activity,只需創建該Activity,任何應用程序將能夠啓動您的Activity,只要它安裝在手機上。

如果您使用上述三種解決方案之一,第三方應用程序將能夠探測您的應用程序是否已安裝,如果沒有,則提示用戶安裝它。只有當您的應用程序不屬於上述三個要點之一時,才應使用JAR。否則,使用ContentProviderServiceActivity規定:

  • 更多的組件之間的交互標準化
  • 更好的可維護性 - 如果你更新你的SDK,你不會有叫大家誰使用它,並告訴他們升級。
  • 沒有重複 - 如果您要提供JAR,並且使用它的多個應用程序將安裝在設備上,那麼JAR的多個副本將會出現在該設備上,因此使用的內存比原來多。如果您提供上述三個組件之一,則一個副本將滿足所有需要使用它的應用程序。

此外,這些組件是由Android OS專門設計和提供的,用於創建此類SDK。請只使用JAR,如果你真的真的必須。否則,請提供標準化的ContentProvider,ServiceActivity並記錄它應該使用的方式(即如何使用/查詢/整合它)。

+0

太棒了!感謝您的澄清! – Ron 2010-04-27 17:54:05

+0

您的反對JAR文件的論據都是有效的......除非第三方開發人員希望將您的功能包含在自己的應用程序中,並且在任何情況下都不希望用戶使用其他應用程序安裝時遇到困難。 – 2011-03-24 12:46:01