Подтвердить что ты не робот

Просмотр личных файлов, созданных приложением android

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

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

4b9b3361

Ответ 1

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

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

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

#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 с физическим телефоном.

Ответ 2

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

  • Перейдите в папку [android-sdk]/platform-tools и запустите adb shell.
  • run-as com.example.yourapp
  • 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.

Ответ 3

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

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

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

Ответ 4

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

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

где вы можете тянуть/удалять/удалять файлы.

Ответ 5

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