Просмотр личных файлов, созданных приложением для Android - PullRequest
20 голосов
/ 28 февраля 2011

У меня есть xml-файл, который записывается приложением, для которого установлено MODE_PRIVATE, но теперь я хочу прочитать этот файл за пределами телефона для целей отладки.В Eclipse я могу получить доступ к другим файлам, созданным приложением, и скопировать их на свой компьютер, но я даже не вижу этот приватный файл.Простое изменение файла на файл MODE_WORLD_READABLE, похоже, не помогает.Я думаю, что файл хранится на внутренней "SD-карте", которую нельзя удалить с телефона, но в проводнике также есть две другие папки, которые либо пусты, либо недоступны: asec и secure.

Кто-нибудь знает, как получить доступ к файлу?

Ответы [ 5 ]

37 голосов
/ 14 апреля 2016

Если ваше приложение установлено в режиме отладки , вы можете получить свои личные файлы на устройстве без рута .

  1. Перейти к [android-sdk]/platform-toolsпапку и запустите adb shell.
  2. run-as com.example.yourapp
  3. cp -r /data/data/com.example.yourapp /sdcard/

(где com.example.yourapp - это пакетимя вашего приложения.) После выполнения описанных выше шагов личная папка вашего приложения будет скопирована в корень вашего хранилища sdcard под именем вашего пакета, где у вас есть разрешение назагрузите и просмотрите их.

Примечание 1 : если вам не нужно загружать их, вместо шага 3 вы можете использовать команды unix для навигации и просмотра файлов и папок.

Примечание 2 : начиная с Android Studio 2.0, вы найдете больше файлов в папках cache и files/instant-run, связанных с Instant Run ифункции GPU Debugger , размещенные в IDE.

21 голосов
/ 05 марта 2011

Вам нужно будет подключить телефон и сделать немного магии, чтобы ваш SDK работал с ним (я думаю, переведите его в режим отладки?).Перейдите туда, куда вы распаковали Android SDK:

C:\android-sdk_r10-windows\android-sdk-windows\platform-tools>adb shell
#cd data/data/com.yourpackage.yourapp/files
#ls

Вы должны увидеть свой файл в списке.Возможно, вам придется запустить «ls data / data», если вы не уверены, какое полное имя у вашего приложения.Отсюда, если файл небольшой, и вы просто хотите увидеть, что внутри него, вы можете запустить:

#cat yourfilename.xml

В качестве альтернативы:

#exit
C:\android-sdk_r10-windows\android-sdk-windows\platform-tools>adb pull /data/data/com.yourpackage.yourapp/files/yourfile.xml

Примечание.Я не знаю, как использовать ADB с физическим телефоном.

3 голосов
/ 21 ноября 2012

Вам нужно получить root права на ваш телефон, чтобы увидеть файлы Context.MODE_PRIVATE

В конечном итоге он сохраняется в данных // файлах, но я верю, но вам нужно разрешение root для их просмотра

Так что либо rootили дождитесь окончания отладки, а затем добавьте Context.MODE_PRIVATE

2 голосов
/ 04 апреля 2013

Если используется Eclipse, есть еще одна опция:

Перспектива DDMS> вкладка «Проводник»> data / data / com.yourpackage.yourapp / files

, куда вы можете вытащить / нажать/ удалить файлы.

0 голосов
/ 22 ноября 2012

Другим вариантом является наличие в приложении команды, которая выводит личные файлы.Это работает только в том случае, если вы не хотите редактировать файлы, но у вас есть дополнительный бонус, который вам не нужно удалять перед тем, как он пойдет в производство, потому что пользователь не может ничего с этим порвать.Ну, пока файлы не содержат конфиденциальную информацию.Но на самом деле, если они это делают, вы делаете что-то не так.Как сказал @ user1778055, пользователь может получить root права на свой телефон для доступа к нему.

...