我正在使用带有数据库操作的Android应用程序。为了调试目的,我从这里安装了SQLite浏览器enter link description here。我的问题是,当我从模拟器导出我的db文件并在浏览器中打开它时,它只显示元数据,但不显示我的实际应用数据。enter image description here
是的,我使用Android设备管理器从正确的位置导出了db文件。enter image description here
正如您所看到的,还有一些其他文件也在数据库文件夹(journal& .file)中创建。 所以我想知道是否有人知道最近数据在SQLite DB中的存储方式是否有任何变化。我使用 Android Studio 3.0.1 。
提前感谢您的帮助。
以下是包名称为enter image description here
的新屏幕截图来自Common SQLite实用程序的日志
D/SQLITE_CSU: logCursorColumns invoked. Cursor has the following 4 columns.
D/SQLITE_CSU: Column Name 1 is id
D/SQLITE_CSU: Column Name 2 is title
D/SQLITE_CSU: Column Name 3 is uid
D/SQLITE_CSU: Column Name 4 is address
D/SQLITE_CSU: logCursorData Cursor has 1 rows with 4 columns.
D/SQLITE_CSU: Information for row 1 offset=0
For Column id Type is INTEGER value as String is 1 value as long is 1 value as double is 1.0
For Column title Type is STRING value as String is BBC value as long is 0 value as double is 0.0
For Column uid Type is STRING value as String is PajUFVIZvKbNWAHAgdJ9xpf6gi33 value as long is 0 value as double is 0.0
For Column address Type is STRING value as String is http://feeds.bbci.co.uk/news/world/rss.xml value as long is 0 value as double is 0.0
这是logDatabaseInfo日志“ -
D/SQLITE_CSU: DatabaseList Row 1 Name=main File=/data/data/com.rss.feedster.rss_feedster/databases/rssFeeds
D/SQLITE_CSU: Database Version = 3
D/SQLITE_CSU: Table Name = android_metadata Created Using = CREATE TABLE android_metadata (locale TEXT)
D/SQLITE_CSU: Table = android_metadata ColumnName = locale ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table Name = feeds Created Using = CREATE TABLE feeds(id INTEGER PRIMARY KEY,title TEXT,uid TEXT,address TEXT)
D/SQLITE_CSU: Table = feeds ColumnName = id ColumnType = INTEGER Default Value = null PRIMARY KEY SEQUENCE = 1
D/SQLITE_CSU: Table = feeds ColumnName = title ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = feeds ColumnName = uid ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = feeds ColumnName = address ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table Name = user_info Created Using = CREATE TABLE user_info(id INTEGER PRIMARY KEY,uid TEXT,nickname TEXT,email TEXT,age TEXT,mobile TEXT,password TEXT,gender TEXT,photoURL TEXT)
D/SQLITE_CSU: Table = user_info ColumnName = id ColumnType = INTEGER Default Value = null PRIMARY KEY SEQUENCE = 1
D/SQLITE_CSU: Table = user_info ColumnName = uid ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = user_info ColumnName = nickname ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = user_info ColumnName = email ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = user_info ColumnName = age ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = user_info ColumnName = mobile ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = user_info ColumnName = password ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = user_info ColumnName = gender ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
D/SQLITE_CSU: Table = user_info ColumnName = photoURL ColumnType = TEXT Default Value = null PRIMARY KEY SEQUENCE = 0
答案 0 :(得分:1)
我认为您只是找错了地方,点击浏览数据标签,然后选择消息表格会显示是否有任何数据。
原因是您正在查看数据库结构,这将显示将用于创建它们的表和SQL,以及列定义的列和SQL。
让名为android_metadata的表很可能表明该数据库来自Android设备,而不是来自其他来源,即您只能在Android设备上找到它。
您的屏幕截图显示有一个名为Messages的表,这不是自动生成的,也不是由SQLite创建的。根据屏幕截图,它至少有两列。一个名为类型,并且具有已定义的列类型INTEGER以及NOT NULL约束,另一列名为条目,其column_type为BLOB。
这里有一个类似的数据库,它是从模拟器中复制过来的,显示了当你查看数据库结构(朋友是表格和列已经扩展)时如何显示(填充1行)。
请注意,“浏览数据”表已突出显示,并且有一个指向它的箭头。单击此按钮将显示如下内容: -
这是浏览android_metadata表的数据(只有1行,1列)。在突出显示的表格的右侧有一个下拉列表,单击此按钮并选择消息表。您将显示数据,例如(显然这是针对Friends表): -
很明显,您打算从模拟器复制/导出的表不是您在 DB Browser for SQLite 中查看的数据库。您通过提供的实用程序提供的数据库是: -
<强> /data/data/com.rss.feedster.rss_feedster/databases/rssFeeds 强>
因此,您要导出副本然后在DB Browser for SQLite中打开该文件。
不是 google_app_measurement_local.db
我认为问题基本上是您认为数据库必须具有 .db 文件扩展名。 .db (文件扩展名)不会影响它纯粹用于指示文件可能的类型的数据。
我毫不怀疑,如果您打开上面指出的文件,那么您将看到数据和结构正如您所期望的那样。请注意,要查看文件,请选择文件名输入右侧的所有文件。
作为示例,以下显示了一个文件导出/复制为 db1.rumplestiltskin ,然后在 DB Browser for SQLite 中打开: - < / p>
在设备监视器中导出/复制/保存文件 /data/data/com.rss.feedster.rss_feedster/databases/rssFeeds
,然后在数据库浏览器中打开SQLite ;注意到如果它没有 .db 或 .sqlite 文件扩展名,那么您必须从文件中选择所有文件在文件名输入右侧输入选择器,以便能够从文件浏览器中选择文件。
或许阅读Filename extension,更详细地解释文件扩展。