查看由Android应用程序创建的私人文件

Alb*_*iir 20 android private file

我有一个由设置为MODE_PRIVATE的应用程序编写的xml文件,但我现在想要在手机外读取该文件,以进行调试.在Eclipse中,我可以访问应用程序生成的其他文件并将它们复制到我的计算机上,但我甚至看不到这个私有文件.仅将文件更改为MODE_WORLD_READABLE文件似乎没有帮助.我认为该文件存储在无法从手机中删除的内部"SD卡"上,但文件资源管理器中还有两个其他文件夹为空或无法访问:asec和安全.

有谁知道如何访问该文件?

Att*_*nyi 38

如果您的应用程序是以调试模式安装的,则可以在设备上获取私有文件而无需生根.

  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是应用程序的软件包名称.)执行上述步骤后,应用程序的私有文件夹将被复制到SD卡存储的根目录下,在您的软件包名称下,您有权下载和查看它们.

注意1:如果您不需要下载它们,则可以使用unix命令导航并列出文件和文件夹,而不是步骤3.

注意2:从Android Studio 2.0开始,您将在cachefiles/instant-run文件夹中找到更多与IDE放置的Instant RunGPU Debugger功能相关的文件.

  • @Jas - 你也可以使用`adb pull`命令下载文件夹. (2认同)

小智 21

你需要连接手机并做一些魔术让你的sdk使用它(我想把它放在调试模式?).转到你解压缩android sdk的地方:

C:\android-sdk_r10-windows\android-sdk-windows\platform-tools>adb shell
#cd data/data/com.yourpackage.yourapp/files
#ls
Run Code Online (Sandbox Code Playgroud)

您应该看到列出了您的文件.如果您不确定应用程序的完全限定名称是什么,则可能需要运行"ls data/data".从这里,如果文件很小,你只想看看里面有什么,你可以运行:

#cat yourfilename.xml
Run Code Online (Sandbox Code Playgroud)

或者:

#exit
C:\android-sdk_r10-windows\android-sdk-windows\platform-tools>adb pull /data/data/com.yourpackage.yourapp/files/yourfile.xml
Run Code Online (Sandbox Code Playgroud)

注意:我只在模拟器上试过这个,我不知道如何在物理手机上使用adb.

  • 如果您在设备上具有root访问权限,则此方法将起作用. (5认同)
  • 此外,我可以确认它不适用于真正的手机(可能应该如此).至少,它不适用于我的Galaxy S1. (3认同)