Как я могу извлечь базу данных sqlite с устройства Android?
Как вытащить базу данных sqlite из устройства Android, такого как эмулятор?
Ответы
Ответ 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
- Вытащите файл из 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
было достаточно