Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的sqlite数据库在android中存储在哪里?_Android_Database_Sqlite - Fatal编程技术网

我的sqlite数据库在android中存储在哪里?

我的sqlite数据库在android中存储在哪里?,android,database,sqlite,Android,Database,Sqlite,我已经在android中创建了一个sqlite数据库,我可以在我的代码中查询它,但在文件系统/SD卡上找不到它 我已经检查了其他SO问题,它不在data/data/package name… 我确实看到我的应用程序上有一个数据条目占用了52kb的空间,所以它就在那里,而且当我再次运行应用程序时,它不会触发一个OnCreate,这意味着它已经有了数据库 我的手机是根型的&我正在使用一个定制的果冻豆rom,无论出于何种目的,它都运行良好 知道它可能在哪里吗 代码c# 在我的根手机中,它位于:/dat

我已经在android中创建了一个
sqlite
数据库,我可以在我的代码中查询它,但在文件系统/SD卡上找不到它

我已经检查了其他SO问题,它不在
data/data/package name…

我确实看到我的应用程序上有一个数据条目占用了52kb的空间,所以它就在那里,而且当我再次运行应用程序时,它不会触发一个
OnCreate
,这意味着它已经有了数据库

我的手机是根型的&我正在使用一个定制的果冻豆rom,无论出于何种目的,它都运行良好

知道它可能在哪里吗

代码c#


在我的根手机中,它位于:
/data/data//databases/


/安卓系统中的data/data/com.my.package/databases/mydb默认情况下存储在“data/data/yourPackageName/databases/”中,调用
Context.getDatabasePath
将为您提供明确的答案。在Android设备中无法访问该文件夹的唯一原因是,该文件夹是私有的,无法使用传统方法查看,操作系统保护该文件夹,并且该文件夹(及其内容,如数据库)只能由该应用程序使用

如果您想查看它,请运行模拟器,在那里运行应用程序,转到DDMS视图,执行to
/data/data/packageName/databases
,它就在那里。如果您无权访问DDMS,请使用以下ADB Shell命令:
$ADB pull/data/data/packageName/databases/yourDBFilename.db

  • 转到工具->DDMS或单击工具栏中SDK管理器旁边的设备监视器图标
  • 设备监视器窗口将打开,在文件管理器选项卡中单击数据->数据->项目名称。之后,您的数据库文件将打开。单击“从设备中提取文件”图标。使用.db扩展名保存文件
  • 打开FireFox,按Alt,工具->SQLItemManager
  • 按照数据库->连接到数据库->浏览数据库文件并单击确定。您的SQLite文件将立即打开
    如果您使用的是Android Studio,DDMS位于“工具”-“Android”-“Android设备监视器”中。
    使用DDMS查找它,就像在Eclipse中一样。

    向我们展示初始化数据库连接的代码,这会让我们了解文件的存储位置。过了一段时间,回到这里,我意识到你是正确的。我从路径中省略了一个
    /data
    。过了一段时间,回到这里,我意识到我喜欢你的伪@1604;َاإلٰهَّالهه:)我在任何地方都看不到“/data/data/”。我需要根目录才能看到它吗?@anil_pulikoden是的,你应该。在Marshmellow之后,数据库的位置就不同了。这是真的吗?啊,我喜欢这个答案。当我尝试展开
    data
    文件夹时,它不会显示任何内容。你必须为此扎根吗?@boltup\u im\u编码你有没有发现如果你必须为此扎根?我也吃同样的issue@wizloc我99%肯定你会这么做,除非Android有办法知道你的应用程序正在调试,并且它允许你只访问一个文件夹
    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();
    }