SQLite数据库存储在哪里

时间:2015-09-23 09:20:06

标签: android sqlite android-sqlite

我知道它是/data/data/ + "packageName" + "/databases/"中的商店 我在android 4.3中尝试过它并且它是正确的。

但我看到一个代码,说对于Android 4.2路径是不同的。这是对的吗?或两者都相同。

if(android.os.Build.VERSION.SDK_INT >= 4.2){
    DB_PATH = context.getApplicationInfo().dataDir + "/databases/";         
} else {
    DB_PATH = "/data/data/" + ""packageName"" + "/databases/";
}

我试过这个用于Android 4.3,但没有工作:

DB_PATH = context.getApplicationInfo().dataDir + "/databases/";         

3 个答案:

答案 0 :(得分:1)

SQLite数据库&lt; = Android 4.1,将在/data/data/<your_app_package_name>/中。但是,您只能访问模拟器和root设备上的该目录。在Android 4.2及更高版本中,内部存储的路径取决于用户帐户。

通常,除非事先指定,否则SQLite数据库存储在

/data/data/<your_app_package_name>/databases/<database_name>

您可以通过在模拟器中运行应用程序以及

来查看数据库的存储位置
  1. 打开DDMS视图
  2. 导航至/data/data/<your_app_package_name>/databases
  3. 使用getDatabasePath()查找存储位置。

答案 1 :(得分:1)

  

但我看到一个代码,说明对于Android 4.2,路径是不同的

不,这段代码并没有说数据库存储在其他地方。它只是一种硬编码方式来获取对数据库存储位置的引用。

如果您想获得对主目录的引用,可以使用活动的getFilesDir()。它返回一个类型为File的对象,指向应用程序的files目录。

答案 2 :(得分:1)

Context具有getDatabasePath(String name)方法,该方法返回存储使用openOrCreateDatabase创建的数据库的文件系统的绝对路径。它将返回您要查找的路径名称。要获取数据库目录,请将空字符串传递给方法