#java #android #eclipse #android_studio #sqlite
Здравствуйте. Занимаюсь разработкой под андроид. Использую базу данных SQLite. В процессе разработки было бы удобно "сливать" фаил базы данных и с помощью сторонних средств смотреть что же там лежит. Когда у меня на телефоне стояла кастомная прошивка, я мог делать это без проблем. Насколько я помню у меня был доступ к папке data в которой лежат все файлы приложений. Теперь у меня стоит родная прошивка и доступа нет. Какой выход? можно ли без лишний шаманств получить доступ к файлу базы данных приложения? хотя бы на время разработки.
Ответы
Ответ 1
Есть 3 способа: Начиная с 14-й версии Intellij IDEA можно получить доступ к БД SQLite устройства (реального или эмулятора). Доступ дается через DataSource - нечто типа JDBC драйвера, то есть можно смотреть, делать запросы и проч. - но руками пощупать сам собственно файл не получится. Почитайте здесь Работает только для платной версии Intellij IDEA (версия Ultimate) Можно тупо получить root на свое устройство, далее вы получите доступ к каталогу /data Можно установить на самом устройстве SQLite3 + командную консоль (все это можно найти на Google Play Market) и через командную строку в самом устройстве (опять же нужен рут).Ответ 2
В IntelliJ IDEA Ultimate есть плагин Database Support, который позволяет полностью получить доступ к БД устройства во время разработки: просматривать таблицы, изменять содержимое, удалять и добавлять записи и тд. - полноценный редактор базы данных подключенный прямо к базе данных разрабатываемого приложения. Это нереально удобно. В бесплатных IDE, что для Eclipse, что для Android Studio/IDEA Community ничего подобного нет. Гугл обещал в туманной перспективе для AS сделать такой плагин, но сроки задвинуты куда-то за горизонт. К всем трем бесплатным IDE можно подключить плагин SQLiteManager ( о подключении к AS/IDEA ). Это конечно жалкое недоразумение по сравнению с database support ультимата, но позволяет просматривать БД на устройстве. Так же вы можете вытянуть свою БД через православный adb.Ответ 3
Нужно установить в проект библиотеку http://facebook.github.io/stetho/ и воспользоваться браузером Chrome DevTools. В его арсенале достаточно много дополнительных плюшек. (Просмотр сетевого трафика, View Hierarchy, Database Inspection)Ответ 4
В Eclipse и Android Studio имеется DDMS File Explorer, через который вы можете выгрузить базу из эмулятора, (из реального без root наверное не сможете). Так что выход использовать эмулятор.Ответ 5
Как здесь уже писали, можно извлечь файл БД с устройства. Но если устройство настоящее, в каталог приложения попасть нужно суметь, потому что каталог доступен только самому приложению. Для этого есть команда run-as, которая позволяет выполнять команды с правами определенного приложения. В примере ниже com.yourpackge.name — id приложения, filename.db — имя файла с базой. adb -d shell "run-as com.yourpackge.name ls /data/data/com.yourpackge.name/databases/” adb -d shell "run-as com.yourpackge.name cat /data/data/com.yourpackge.name/databases/filename.db > /sdcard/filename.sqlite" adb pull /sdcard/filename.sqliteОтвет 6
Как вариант, с помощью дополнительной библиотеки.
Комментариев нет:
Отправить комментарий