2010-04-27 74 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