Ответ 1
В моем корневом телефоне это: /data/data/<your_app_package_name>/databases/<database_name>
Exemple /data/data/com.my.package/databases/mydb
Я создал базу данных sqlite
в android, я могу запросить ее внутри своего кода, но я не могу найти ее на файловой системе /sdcard.
Я проверил другие вопросы SO, его НЕ в data/data/package-name...
Я вижу запись данных в моем приложении, занимающую пространство 52 КБ, поэтому его там, кроме того, когда я запускаю приложение снова, он не запускает OnCreate
, поскольку у него уже есть БД.
Мой телефон укоренен, и я использую пользовательский желе bean rom, который отлично работает для всех целей и задач.
Любые идеи, где это может быть?
CODE С#
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>
Exemple /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 Studios, DDMS находится в "Инструменты" - "Android" - "Android Device Monitor". Используйте DDMS, чтобы найти его так, как вы бы это сделали в Eclipse.