【问题标题】:Where should I save a database on an Android file system [closed]我应该将数据库保存在 Android 文件系统的哪个位置[关闭]
【发布时间】:2014-09-13 02:25:07
【问题描述】:

我正在编写一个 Android 应用程序,我希望将本地 SQLite 数据库作为我的应用程序的一部分。

我应该将此数据库存储在设备文件系统的什么位置?是否有默认位置来存储作为应用程序一部分的文件?我需要考虑什么?

提前致谢

【问题讨论】:

标签: android sqlite filesystems xamarin android-file


【解决方案1】:

是的。您应该将数据库存储在设备内部存储中。是的,您的数据库在文件系统中有一个默认位置。为了创建数据库文件,您可以创建一个扩展SQLiteOpenHelper 的类。

除其他外,该类有一个构造函数,它允许您为数据库文件提供名称、版本和CursorFactory 对象。它还有getWritableDatabase() 方法,它将自动创建您的数据库文件并返回一个SQLiteDatabase 对象,您可以从中插入数据并执行查询。

您最近创建的文件将放置在您的内部应用程序数据库文件夹文件夹中,通常在 data/data/com.your.package.name/databases/databasename.db 中。在正常情况下,用户没有访问此文件的权限。除非他已经root了他的手机,因此他有root权限。因此,它是保存数据库的最佳位置。

要了解更多信息,请参阅 this linkthis also

【讨论】:

    【解决方案2】:

    你不应该在乎!

    您应该使用 SQLiteOpenHelper。顺便说一句,正如其他几个回答者所指出的那样,它会将您的数据库存储在 /data/data//databases 中。但是,如果您真的依赖于知道它在哪里,那么您可能做错了。

    【讨论】:

    • 好的,先生。清除设置中的应用程序数据是否也会删除我的数据库。如果是这样,我很害怕。我需要一个使用手机的恶意用户无法清除的数据库。
    【解决方案3】:

    好的,所以你应该使用SQLiteOpenHelper提供的默认位置;但是,还有另一种选择。另一个选项(很少有应用程序使用)是将其保存到(ExternalDirectory)/Android/data/com.example.app。但是,您应该使用默认值,因为您不希望用户能够访问它。

    【讨论】:

      【解决方案4】:

      最好保存在用户无法进入的数据目录中

      检查data directory

      【讨论】:

        【解决方案5】:

        来自谷歌网站: 就像您保存在设备内部存储中的文件一样,Android 将您的数据库存储在与应用程序关联的私有磁盘空间中。您的数据是安全的,因为默认情况下其他应用程序无法访问此区域

        http://developer.android.com/training/basics/data-storage/databases.html

        【讨论】:

        • 恶意清除应用数据怎么办?
        猜你喜欢
        • 1970-01-01
        • 2020-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-04
        • 1970-01-01
        • 2010-12-05
        • 1970-01-01
        相关资源
        最近更新 更多