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