Intereting Posts
ImeOptions "actionNext" программно – как перейти к следующему полю? Кнопка Android Use Done на клавиатуре для нажатия кнопки Как я могу получить фрагмент из представления? Как показать настройки для текста в речь в моем приложении? Устанавливать подчеркивание текста в TextView в андроиде программно Ошибка градиента: выполнение выполнено для задачи ': app: processDebugGoogleServices' Запрос пароля на Android Карты Google, нет возможности запуска навигации, только предварительный просмотр КоординаторLayout с заголовком RecyclerView и Collapsing Как изменить набор инструментов для приложений SIM (STK) Настройки оптимизации Proguard: включение слияния классов, трансляции и поля / * в современных API и версиях Proguard Как я могу получить рабочую вертикальную SeekBar в Android? Удалять приложение программно (Android) Ткань Вход в систему с кнопкой твиттера выделен серым цветом Реализация onScrollListener для обнаружения конца прокрутки в ListView

Как просмотреть SharedPreferences из оболочки adb?

Теперь, когда мы можем исследовать базы данных sqlite3 из удаленной оболочки , можно ли просмотреть SharedPreferences из оболочки adb? Поскольку было бы гораздо удобнее рассматривать и управлять SharedPreferences из командной строки при отладке.

Или иначе, в каких файлах сохраняются SharedPreferences и как просматривать и изменять эти файлы?

Solutions Collecting From Web of "Как просмотреть SharedPreferences из оболочки adb?"

Хорошо, я нашел файл сразу после того, как поднял вопрос выше. (Кажется, я задаю вопросы, которые публично побуждают меня искать ответы на меня гораздо более усердно, так как я не хочу, чтобы мои дорогие коллеги рассматривали меня как ленивого программиста.)

Это файл XML в каталоге /data/data/your.app.package.name/shared_prefs , а имя файла – your.app.package.name_preferences.xml. Очень просто изменить настройки, когда вы выясните, что контент – это всего лишь карта с ключом.

Если приложение является отладочным, вы можете сделать:

 $ adb shell $ run-as <app-package-id> $ cat /data/data/<app-package-id>/shared_prefs/prefs.xml 

Обратите внимание, что предпочтение может быть сохранено в другом файле, чтобы лучше проверить каталог, чтобы найти его:

 $ ls /data/data/<app-package-id>/shared_prefs/ 

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

 APP_ID=com.myapp; adb pull /data/data/${APP_ID}/shared_prefs/${APP_ID}_preferences.xml /tmp/${APP_ID}_preferences.xml && vim /tmp/${APP_ID}_preferences.xml && adb push /tmp/${APP_ID}_preferences.xml /data/data/${APP_ID}/shared_prefs/ 

Просто установите APP_ID на свой идентификатор приложения.

Обратите внимание, что предполагается, что вы используете имя файла по умолчанию для общих настроек, как получено из PreferenceManager.getDefaultSharedPreferences(context) . Кроме того, ADB должен работать в корневом режиме: adb root

Сначала вытащите файл общих предпочтений с устройства. Для этого требуется корневое разрешение.

 adb pull /data/data/org.test/shared_prefs/MyKeys.xml MyKeys.xml 

Теперь MyKeys.xml хранится в текущем каталоге вашей системы.

Измените значения на

 vim MyKeys.xml 

После редактирования файла сохранить изменения и нажать на устройство.

 adb push MyKeys.xml /data/data/org.test/shared_prefs/MyKeys.xml 

Чтобы проверить свои изменения

 adb shell cat /data/data/org.test/shared_prefs/MyKeys.xml