[英]Where is my sqlite database stored in android?
我已经在android中创建了一个sqlite
数据库,我可以在我的代码中查询它,但是在文件系统/ 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();
}
在我的根电话中,它位于: /data/data/<your_app_package_name>/databases/<database_name>
示例/data/data/com.my.package/databases/mydb
在那里。 您无法在Android设备上访问该文件夹的唯一原因是该文件夹是私有文件夹,无法使用常规方法查看,操作系统会保护该文件夹,并且该文件夹(及其内容,例如您的数据库)只能由该特定用户使用应用。
如果要查看它,请运行一个模拟器,在其中运行您的应用程序,转到DDMS视图,对/data/data/packageName/databases
,它就在其中。 如果您无权访问DDMS,请使用以下ADB Shell命令: $ adb pull /data/data/packageName/databases/yourDBFilename.db
调用Context.getDatabasePath
将为您提供明确的答案
Android中的数据库默认情况下存储在“ data / data / yourPackageName / databases /”中
如果您使用的是Android Studio,则DDMS位于“工具”-“ Android”-“ Android设备监视器”中。 使用DDMS可以找到它,就像在Eclipse中一样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.