Как получить доступ к базе данных при разработке на Android-телефоне?

У меня возникают проблемы с доступом к базе данных, когда я разрабатываю телефон. Всякий раз, когда я выполняю

cd /data/data/com.mycompck/databases

а затем запустите ls. Я получаю: "opendir failed, Permission denied"

Или, когда я набираю sqlite3, я получаю: "sqlite3: permission denied"

Что я делаю неправильно?

Существуют ли какие-либо приложения, которые могут помочь мне получить представление о значении контента и/или базах данных SQLite для человека?

Ответ 1

Чтобы ответить на первую часть вашего вопроса, откройте этот ответ. В принципе, ваш телефон должен иметь root-доступ, и вам нужно запустить adb в корневом режиме (используя "adb root" ).

Что касается второй части, я использую SQLite Database Browser для просмотра моих SQL-запросов (хотя это только тогда, когда db находится на моем компьютере, не знаете каких-либо браузеров на устройстве). Я не знаю, каким образом получить представление о разрешении контента для человека.

Ответ 2

Проверьте мой ответ из следующего потока: Почему я получаю доступ к папке с данными при использовании adb?

Начиная с уровня API 8 (Android 2.2), если вы создаете приложение как отладочное, вы можете использовать команду shell run-as для запуска команды или исполняемого файла в качестве конкретный пользователь/приложение или просто переключитесь на UID вашего чтобы вы могли получить доступ к его директории data.

Таким образом, в основном вам нужно будет сделать отладочную сборку (которая сделана автоматически всякий раз, когда вы запускаете приложение из Android Studio, если вы не запрашиваете сборку выпуска) и запускайте следующие команды:

run-as com.mycompck
cd /data/data/com.mycompck/databases
ls
sqlite3 ./yourdatabase.db

Однако обратите внимание, что двоичный код sqlite3 по умолчанию отсутствует на многих телефонах. Таким образом, вам, возможно, потребуется загрузить его где-нибудь (например, из архивов SuperOneClick в http://shortfuse.org/), сохранить на SD-карте и сделать ее исполняемой ( что немного сложно), например:

run-as com.mycompck
cd /data/data/com.mycompck/
cat /sdcard/sqlite3 >./sqlite3
chmod 744 ./sqlite3
./sqlite3 ./databases/yourdatabase.db

Ответ 3

Вы должны быть root для доступа к любому файлу базы данных. Таким образом, вы можете либо получить root на свой телефон (искать информацию в Google), либо отлаживать базу данных только с эмулятора (который всегда дает вам доступ root).

Bye!

Ответ 4

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

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

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

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

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

Ответ 5

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

Взгляните на это. с помощью этого вы можете просмотреть свою базу данных внутри своего приложения. Менеджер баз данных

Для меня это работало нормально. Это также зависит от того, что вы планируете делать.

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