Android Content Provider和App in One APK?

时间:2011-11-29 10:57:28

标签: android apk android-contentprovider

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

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

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

  • 我还有其他选择吗?

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

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

2 个答案:

答案 0 :(得分:1)

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

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

从内容提供商开始的一个好的lib /示例是数据机器人http://datadroid.foxykeep.com/它将为您完成所有的工作。

答案 1 :(得分:1)

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

您还可以在应用中选择不同的抽象,例如抽象出不同来源的新类。我并没有真正看到使用内容提供商只是为了让你的应用程序更易于维护。

您甚至可能会争辩说,如果内容提供商没有使用其大部分功能,则会增加复杂性。

如果您选择内容提供商,可以将其作为组件添加到主应用程序中,方法是在AndroidManifest.nl中将其声明为正常,您可以像平常一样在Eclipse中开发和打包应用程序。