2012-01-16 6 views
1

Я создал базу данных для своего приложения. Теперь я хочу убедиться, что все атрибуты правильные, и строки заполняются должным образом. Кажется, что база данных находится в папке /data, но эта папка кажется пустой. Когда я пытаюсь использовать sqlite3 для доступа к нему (из командной строки с использованием adb shell), я получаю ошибку не найденную. Телефон Android, в котором я играю, - это Google Nexus S. Любые идеи о том, как его экспортировать или проверить, что база данных построена правильно и используется по назначению?Экспорт базы данных SQLite Android

ответ

5

В перспективе DDMS используйте проводник файлов во время работы эмулятора. Вы можете изучить папки там. Вы найдете свою базу данных в/данные/данные /-пакете имя вашей базы данных/ Вы можете найти подробную информацию о DDMS here

+0

Пожалуйста, посмотрите следующую ссылку, пошаговую процедуру с изображениями, такую ​​же, как @ C.d. http://www.weston-fl.com/blog/?p=2812 – J4cK

+0

Это будет работать только в том случае, если ваше устройство укоренилось - эмуляторы внедрены по умолчанию. Во многих устройствах у вас не будет доступа к/data/data, чтобы делать то, что вы предлагаете. – George

1

Вам необходимо либо укоренить свой телефон, либо использовать эмулятор. На обычных некорневых телефонах у вас нет разрешения на доступ к данным частного приложения, как это.

Read this to see how to export your file for analysis.

+0

В какой-то момент мне нужно будет получить таблицы базы данных, так как мне придется выполнить анализ данных на них. Должен быть способ получить эти данные. На данный момент, как я могу получить доступ к этим данным из эмулятора? – JustCurious

+0

См. Ответ C.d. для получения подробной информации о том, как просматривать файловую систему эмулятора с Eclipse/DDMS. –

+0

Спасибо! Как насчет того, когда мне придется экспортировать его для анализа данных? Тогда мне нужно будет экспортировать многие базы данных. – JustCurious

3

Вы можете найти этот вопрос полезный:

How do I backup a database file to the SD card on Android?

@skeniver говорит:

try { 
    File sd = Environment.getExternalStorageDirectory(); 
    File data = Environment.getDataDirectory(); 

    if (sd.canWrite()) { 
     String currentDBPath = "//data//{package name}//databases//{database name}"; 
     String backupDBPath = "{database name}"; 
     File currentDB = new File(data, currentDBPath); 
     File backupDB = new File(sd, backupDBPath); 

     if (currentDB.exists()) { 
      FileChannel src = new FileInputStream(currentDB).getChannel(); 
      FileChannel dst = new FileOutputStream(backupDB).getChannel(); 
      dst.transferFrom(src, 0, src.size()); 
      src.close(); 
      dst.close(); 
     } 
    } 
} catch (Exception e) { 
} 

с @Jakobud добавив, что вам нужно иметь

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

в вашем манифесте.

+0

спасибо, отлично работает для меня – Nicola

Смежные вопросы