android是否必须写Contract、Provider、DbHelper才能访问远程数据库?

Is it mandatory to write Contract, Provider and DbHelper in android to access remote database?

我正在学习 Android Udacity android 中级编程。 https://www.udacity.com/course/viewer#!/c-ud853/l-3599339441/m-3659838854 这里他们提到了写一个Contract,一个Provider 和DbHelper 来访问一个数据库。问题 1) 这是(使用合同、提供者和数据库助手)访问数据库的正确做法吗? 2) 我应该这样做来执行一个简单的 select 语句吗?

它们不是强制性的。但是,最好使用这 3 个组件,因为它们可以更轻松地维护数据库。以下是关于每个组件的一些具体原因:

  • 数据契约:帮助您很好地汇总表格。当应用程序增长并且表的数量增加时,这被证明是非常重要的。
  • Content Provider:如果您使用游标加载程序加载数据,则需要 Content Provider。游标加载器是从 sqlite 加载数据的推荐方式,因为它在后台运行并且不会干扰 UI。否则,对大量数据的简单查询会使 UI 变得迟缓。此外,如果您允许其他应用程序访问您应用程序的数据库,Content Provider 也可以作为一个抽象,以便其他应用程序可以查询您的数据库而无需了解它的结构。
  • Open Helper:管理数据库的打开和升级。这主要与 ContentProvider 一起使用。根据 documentation:

This class makes it easy for ContentProvider implementations to defer opening and upgrading the database until first use, to avoid blocking application startup with long-running database upgrades.