【问题标题】:Android Content Provider and App in One APK?Android Content Provider 和 App 在一个 APK 中?
【发布时间】:2012-01-08 17:22:53
【问题描述】:

我正在创建一个从 Internet 获取数据的 Android 应用。最终我会想要更改应用程序以从不同的(尚未确定的)互联网位置获取类似的数据。然后甚至更晚,另一个位置。我想避免更改我的应用程序以适应不同的 Internet 位置,因为这将难以维护。

可能有很多选择,但经过一些研究,内容提供者似乎可以做我想做的事。看起来内容提供程序旨在跨应用程序边界公开数据。这没关系,但我不在乎内容提供程序与我的主应用程序位于不同的应用程序中。没有其他应用程序会对我的 Content Provider 的数据感兴趣,因此在这种情况下跨越应用程序边界没有帮助。

  • 内容提供者是解决问题的好方法吗?

  • 还有其他我不考虑的选项吗?

  • 如果内容提供程序是一个好的解决方案,我将如何将应用程序和内容提供程序打包到一个 .apk 文件中?

  • 这可以在 Eclipse 中完成还是需要使用命令行工具?

【问题讨论】:

  • 我有一系列客户,他们每个人都希望自己的独特数据源用于为其业务定制的应用程序。维护问题是我需要保留一个源,然后选择一个插件模块来自定义数据,只显示适当的信息。

标签: android apk android-contentprovider


【解决方案1】:

内容提供者是解决您问题的好方法。

您只需在您的清单中声明您的内容提供者,并且它是使用您的 apk 构建的。如果您不将您的内容提供者声明为 publi,则只有您的应用可以访问您的数据。

data droid http://datadroid.foxykeep.com/ 可以为你做所有的事情。

【讨论】:

    【解决方案2】:

    例如,如果您直接在 ListView 中使用数据,则创建内容提供者可能会有所帮助。

    您还可以在应用中选择不同的抽象,例如抽象出不同来源的新类。我真的不认为使用内容提供者只是为了让您的应用更易于维护。

    您甚至可能会争辩说,当您不使用内容提供者的大部分功能时,它会增加更多复杂性。

    如果您确实选择了内容提供程序,您可以通过在 AndroidManifest.nl 中声明它来将其作为组件添加到您的主应用程序中,您可以像往常一样在 Eclipse 中开发和打包应用程序。

    【讨论】:

    • 对,在这种情况下,内容提供者可能有一个有效点。您只需在 Eclipse 中创建基本应用程序和几个内容提供程序应用程序。内容提供者应用程序中没有任何活动,只有 AndroidManifest.xml 中的内容提供者。请注意,您只能安装一个内容提供程序,因为它使用的 uri 必须是唯一的。而且您需要安装 2 个应用程序:基础 + 内容提供商选择。
    猜你喜欢
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多