【问题标题】:Android SDK - Other ways?Android SDK - 其他方式?
【发布时间】:2010-04-27 16:48:31
【问题描述】:

如果我需要构建一个其他开发人员可以集成到他们的 android 应用程序中的 android SDK,我的 SDK 是否是唯一的解决方法?据我了解,jarring 有以下考虑:

  1. 如果您的应用程序使用布局,那么您必须以编程方式创建它。由于 jar 文件不能携带任何资源。
  2. 需要将 jar 放在 lib/assets 文件夹中并添加到构建路径(在 Eclipse 中)——在这里学习:Android - Invoke activity from within jar
  3. 主应用程序必须创建一个 Intent 对象并在 jar 中指定包和类名才能启动活动。

任何人对上述任何步骤都有其他想法吗?

谢谢 乔治

【问题讨论】:

    标签: android jar android-activity android-intent


    【解决方案1】:

    在我看来,创建 JAR 是一个非常糟糕的决定。 Android 具有专门针对您正在寻找的东西的特定功能。如果你的 JAR:

    • 提供某种(结构化)数据以用于其他应用程序,使用ContentProvider
    • 进行一些后台处理并将该处理的结果提供给其他应用程序,使用Service
    • 提供一个Activity,它从用户那里获取一些输入(或显示一些关于某事的信息),最终处理它并将其返回给调用Activity,只需创建Activity,任何应用程序都可以启动你的Activity,只要它安装在手机上。

    如果您使用上述三种解决方案之一,第三方应用程序将能够探测您的应用程序是否已安装,如果未安装,则提示用户安装它。只有当您的应用程序不属于上述三个要点之一时,您才应该使用 JAR。否则,使用ContentProviderServiceActivity 提供:

    • 组件之间的交互更加标准化
    • 更好的可维护性 - 如果您更新 SDK,您就不必打电话给所有使用它的人并告诉他们升级。
    • 没有重复 - 如果您要提供一个 JAR 并且将在一个设备上安装多个使用它的应用程序,那么该设备上将存在多个 JAR 副本,因此使用的内存比它必须的要多。如果您提供上述三个组件之一,一份副本将满足所有需要使用它的应用程序。

    同样,这些组件是由 Android 操作系统专门设计和提供的,用于创建此类 SDK。请仅在您真的真的必须使用 JAR 时使用。否则,请提供标准化的 ContentProviderServiceActivity 并记录其应该使用的方式(即如何使用/查询/集成它)。

    【讨论】:

    • 太棒了!感谢您的澄清!
    • 您反对 JAR 文件的论点都是有效的……除非第 3 方开发人员希望将您的功能包含在自己的应用程序中,并且在任何情况下都不想用其他应用程序安装来麻烦用户。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    相关资源
    最近更新 更多