我在android中创建了一个sqlite
数据库,我可以在代码中查询它,但在文件系统/sd卡上找不到它。
我已经检查了其他SO问题,它不在data/data/package-name...
中
我确实看到我的应用程序上的一个数据条目占用了52 kb的空间,所以它就在那里,而且当我再次运行应用程序时,它不会触发OnCreate
,这意味着它已经有了DB。
我的手机是root &我使用的是自定义果冻豆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();
}
字符串
6条答案
按热度按时间wydwbb8l1#
在我的扎根手机,它在:
字符串
现实生活中的例子:
型
jgovgodb2#
1.转到工具-> DDMS或单击工具栏中SDK管理器旁边的设备监视器图标。
1.设备监视器窗口将打开,在文件资源管理器选项卡中单击数据->数据->您的项目名称。之后,您的数据库文件将打开。单击“从设备拉取文件”图标。保存文件使用.db扩展名。
1.打开Firefox,按Alt,工具->SQLiteManager。
1.按照数据库->连接到数据库->浏览数据库文件并单击确定。您的SQLite文件将立即打开。
lnvxswe23#
它在那里。你不能在Android设备中访问它的唯一原因是因为该文件夹是私人的,不能使用传统的方法看到,操作系统保护该文件夹和该文件夹(和它的内容,例如您的数据库)只能由该特定应用程序使用。
如果你想看到它,运行一个模拟器,在那里运行你的应用程序,转到DDMS视图,做
/data/data/packageName/databases
,它就在那里。如果你没有访问DDMS的权限,使用这个ADB Shell命令:$ adb pull /data/data/packageName/databases/yourDBFilename.db
flseospp4#
调用
Context.getDatabasePath
将给予明确的答案kkbh8khc5#
如果您使用的是Android Studios,DDMS位于“Tools”-“Android”-“Android Device Monitor”中。使用DDMS可以像在Eclipse中一样找到它。
eufgjt7s6#
Android中的数据库默认存储在“data/data/yourPackageName/databases/”中