Подтвердить что ты не робот

Как я могу извлечь базу данных sqlite с устройства Android?

Как вытащить базу данных sqlite из устройства Android, такого как эмулятор?

4b9b3361

Ответ 1

Вы можете использовать эти команды для вытаскивания базы данных с вашего устройства. Написание этих команд через студию Android очень просто. Убедитесь, что вы установили путь к adb глобально в вашу систему. Затем откройте "терминал" снизу до студии Android и рядом с "Android Monitor". Теперь вы просто обновляете следующие команды с фактическим именем пакета вашего приложения и именем файла базы данных. Вы получите файл с устройства.

adb shell "run-as package.name chmod 666 /data/data/package.name/databases/file"
adb pull /data/data/package.name/databases/file .
adb shell "run-as package.name chmod 600 /data/data/package.name/databases/file"

команда для Android 5.0+/data/data/package.name/databases/file будет:

adb shell "run-as package.name chmod 666 /data/data/package.name/databases/file"
adb exec-out run-as package.name cat databases/file > newOutFileName
adb shell "run-as package.name chmod 600 /data/data/package.name/databases/file"

Ответ 2

  • подключите устройство к компьютеру
  • откройте командную строку в /sdk-directory/tools
  • type adb pull /data/data/com.example.app/databases/database.db

где com.example.app - ваше имя пакета приложения, а database.db - файл базы данных

что в случае, если ваше устройство укоренилось, если не попробовать следовать

fooobar.com/questions/43017/...

Ответ 3

Лучший способ просмотра и управления вами базы данных приложений Android - использовать эту библиотеку https://github.com/sanathp/DatabaseManager_For_Android

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

Когда разработка завершена, удалите java файл из вашей папки src.

Это очень помогло мне. Надеюсь, это тоже поможет.

Вы можете посмотреть 1-минутную демонстрацию здесь: http://youtu.be/P5vpaGoBlBY

Ответ 4

adb root
adb remount
adb pull <remote>  <local>

Ответ 5

Я знаю, что это старый вопрос, однако это то, что я сделал, чтобы вытащить файл базы данных SQLite из приложения на устройство.

  • Сохранение файла из пакета приложения на устройство sdcard

adb -d shell "run-as com.dautechnology.abdimuna.smartparking cat /data/data/<myAppPackageName>/databases/<databaseFileName> > /sdcard/<databaseFileName>"

Вышеприведенная команда сохранит файл на /sdcard Вы можете проверить файл на adb shell ls sdcard/ Затем выйдите из оболочки adb, набрав exit

  1. Вытащите файл из SD карты в текущее рабочее место.

adb pull sdcard/<databaseFileName> 3. Переместите файл на Рабочий стол или место вашего желания.

mv <databseFileName> ~/Desktop

Я надеюсь, что это поможет кому-то там.

Ответ 6

Если вы используете eclipse, перейдите в режим DDMS. из вкладки "Проводник" → data- > data- > имя пакета приложения- > databases- > имя базы данных

выберите файл базы данных базы данных, затем нажмите кнопку pull

Ответ 7

Вы можете пропустить все эти средние этапы с помощью одной команды.

В оболочке вашего ПК:

adb -d shell 'run-as <package_name> cat /data/data/<package_name>/databases/<db_name>' > <local_file_name>

Ответ 8

You can use Android Device Monitor to pull it.
Go to Tools
        - Android 
             - Android Device Monitor

1 - Select your device from the left list.
2 - Select FileExplorer tab
3 - Expand data-> data -> "yourpackageName" -> databases
4 - Select your databaseFile and on the top right click on this icon
[![enter image description here][1]][1]
pull a file form a device.
5 - Save it on your desk then use this tool to open it:
http://sqlitebrowser.org/ 
  


  [1]: https://i.stack.imgur.com/FYOme.png

Ответ 9

Сделайте это программно в приложении

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

    if (file.canWrite()) {
        String currentPath = "/data/data/" + getPackageName() + "/databases/yourdbname";
        String copyPath = "copydb_name.db";
        File currentDB = new File(currentPath);
        File backupDB = new File(file, copyPath);

        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) {

}

Убедитесь, что предоставлено разрешение

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

Ответ 10

с версии 24 и далее я использую эти команды для загрузки базы данных

adb shell
run-as package.name
cat /databases/database.db > /sdcard/database.db
exit
exit
adb pull /sdcard/database.db

до версии 24

adb pull /data/data/package name/databases/database.db

было достаточно