我的sqlite数据库存放在android中的哪个位置?

spr*_*t12 13 database sqlite android

sqlite在android中创建了一个数据库,我可以在我的代码中查询它,但我无法在文件系统/ sdcard上找到它.

我检查了其他SO问题,其中没有 data/data/package-name...

我确实看到我的应用程序上的数据条目占用了52kb空间,所以它在那里,此外当我再次运行应用程序时,它不会触发OnCreate它已经拥有数据库的含义.

我的手机根植了,我正在使用一个定制的果冻豆rom,运行良好的所有意图和目的.

有什么想法吗?

代码c#

public class SqliteHelper : SQLiteOpenHelper
{
    private const string DATABASE_NAME = "Book";
    private const int DATABASE_VERSION = 1;

public SqliteHelper(Context ctx)
    : base(ctx, DATABASE_NAME, null, DATABASE_VERSION)
{ }

// Method is called during creation of the database
public override void OnCreate(SQLiteDatabase db)
{
    db.BeginTransaction();
    try
    {
        db.ExecSQL("CREATE TABLE Chapters (Id INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT NOT NULL);");

        ContentValues cv = new ContentValues();
        cv.Put("Name", "1. Family");
        db.Insert("Chapters", null, cv);
        cv.Put("Name", "2. Shopping");
        db.Insert("Chapters", null, cv);
        cv.Put("Name", "3. Work");
        db.Insert("Chapters", null, cv);

        db.SetTransactionSuccessful();
    }
    finally
    {
        db.EndTransaction();
    }

    //if(db.IsOpen())
    //  db.Close();
}
Run Code Online (Sandbox Code Playgroud)

S.T*_*ane 24

在我的根电话中,它在: /data/data/<your_app_package_name>/databases/<database_name>

例如/data/data/com.my.package/databases/mydb


小智 10

  1. 转到工具 - > DDMS或单击工具栏中SDK Manager旁边的设备监视器图标.
  2. Device Monitor窗口将打开,在File Explorer选项卡中单击data - > data - >您的项目名称.之后,您的数据库文件将打开.单击"从设备中提取文件"图标.使用.db扩展名保存文件.
  3. 打开FireFox,按Alt键,工具 - > SQLiteManager.
  4. 按照数据库 - >连接数据库 - >浏览数据库文件,然后单击确定.您的SQLite文件现在将打开.


Raz*_*riz 6

它就在那里.您无法在Android设备中访问它的唯一原因是因为该文件夹是私有的,并且无法使用传统方法看到,操作系统保护该文件夹,并且该文件夹(以及它的内容,例如您的数据库)只能由某些文件夹使用应用.

如果你想看到它,运行一个模拟器,在那里运行你的应用程序,转到DDMS视图,去做/data/data/packageName/databases,它就在那里.如果您无权访问DDMS,请使用此ADB Shell命令:$ adb pull /data/data/packageName/databases/yourDBFilename.db