如何使用SQLite数据库开发Android应用程序?

如何使用SQLite数据库开发Android应用程序?,android,sqlite,android-sqlite,android-database,Android,Sqlite,Android Sqlite,Android Database,我想写一个Android应用程序,它有一个SQLite数据库 我已经看到了,但它(以及答案)已经7年了,这也是Commonware在中指出的,在中他们也建议使用library。但这也是2013年的评论。库中最后一次提交也是在2014年12月 另一方面,在年,他们说创建SQLite数据库的推荐方法是将SQLiteOpenHelper子类化,由此可以推断,Google现在建议使用原生Android API创建和使用数据库 所以我的问题是我应该怎么做?也就是说,从2016年起,在Android应用程序

我想写一个Android应用程序,它有一个SQLite数据库

我已经看到了,但它(以及答案)已经7年了,这也是Commonware在中指出的,在中他们也建议使用library。但这也是2013年的评论。库中最后一次提交也是在2014年12月

另一方面,在年,他们说创建SQLite数据库的推荐方法是将
SQLiteOpenHelper
子类化,由此可以推断,Google现在建议使用原生Android API创建和使用数据库

所以我的问题是我应该怎么做?也就是说,从2016年起,在Android应用程序中创建、使用和发布SQLite数据库的推荐方式是什么?

库中最后一次提交也是在2014年12月

那个图书馆做的不多,所以我不希望它会改变
SQLiteAssetHelper
工作正常

但是,
SQLiteAssetHelper
是一个特定问题的解决方案:将数据库与应用程序一起提供

另一方面,在这份官方指南中,他们说创建SQLite数据库的推荐方法是将SQLiteOpenHelper子类化,从中可以推断,Google现在建议使用原生Android API来创建和使用数据库

嗯,它使用“原生Android API来创建和使用数据库”

此外,
SQLiteOpenHelper
,就其本身而言,对一个特定的问题没有任何作用:将数据库与应用程序一起交付

截至2016年,在Android应用程序中创建、使用和发布SQLite数据库的推荐方式是什么

考虑到“和装运”位,我强烈建议
SQLiteAssetHelper


相反,如果您的应用程序没有附带数据库,那么哪些计算机程序员会将其定义为“在附带的应用程序中包含模式和数据作为起点的数据库”-然后使用
SQLiteOpenHelper
动态定义数据库。

最简单的方法是将数据库从资产复制到文件系统,然后使用普通的SQLite类进行读/写。这难道不是一种非常明显的做法吗,而不是下载一些第三方库,这是上帝知道的修复状态吗?@Gabeschen:因为该库很好(我经常使用它),而且它比我通常看到的人们用来从资产中解包数据库的流口水的傻瓜级代码要好得多。如果你有更好的代码,就把它发布到某个地方,或者发布你自己的库来解决这个问题。@commonware我宁愿自己编写一个流口水的白痴级代码,也不愿为这样琐碎的事情使用第三方库。如果这是一项更复杂的任务,我可能会使用一个库,但当我阅读并理解库代码时,我可以自己编写两次。重新发明轮子并不总是一件坏事。从数百个库中拼凑出一个应用程序来完成一些琐碎的任务,而这些任务是你无法调试的,因为你不了解它们,谁知道它们的质量,这是一种更糟糕的反模式。当复杂度太高而无法在没有足够时间的情况下理解时(如OpenCV for computer vision),或者当您能够理解它但复制它的工作量远远大于阅读和理解代码以及在将来调试代码的工作量时,请使用库。这两者都不适用。@Commonware取决于库。当你谈论一个经常使用的大型图书馆时,你可能是对的。如果你说的是git hub上的随机库,我实际上假设的是相反的情况——我比作者更好,我更可能找到边缘案例,而且我可以根据我的用例对其进行定制。经验证明我是对的。除非一项任务需要我几天的时间,否则我会自己做。此外,查找和评估库是一项非常重要的任务。在使用之前,您确实阅读了库的代码,以确保它不是恶意软件,并且没有明显的缺陷,对吗?