Страницы

Поиск по вопросам

четверг, 5 декабря 2019 г.

Доступ с компьютера к БД приложения на устройстве Android

#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



Как вариант, с помощью дополнительной библиотеки.

Комментариев нет:

Отправить комментарий