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

时间:2011-02-28 03:29:34

标签: android file private

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

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

5 个答案:

答案 0 :(得分:37)

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

  1. 转到[android-sdk]/platform-tools文件夹并运行adb shell
  2. run-as com.example.yourapp
  3. cp -r /data/data/com.example.yourapp /sdcard/
  4. (其中 com.example.yourapp 是您的应用程序的包名。) 执行上述步骤后,应用程序的私人文件夹将被复制到您的软件包名称下的 sdcard storage 的根目录中,您有权下载并查看它们

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

    注意2 :从Android Studio 2.0开始,您会在cachefiles/instant-run文件夹中找到与 Instant Run相关的更多文件 GPU调试器功能,由IDE放置。

答案 1 :(得分:20)

你需要连接手机并做一些魔术让你的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。

答案 2 :(得分:3)

您需要根据手机查看Context.MODE_PRIVATE文件

最终存储在我认为的数据文件中,但您需要root权限才能看到它们

因此要么根据您的手机,要么等到调试结束后再添加Context.MODE_PRIVATE

答案 3 :(得分:2)

如果使用Eclipse,还有一个选项:

DDMS Perspective>文件资源管理器标签>数据/数据/ com.yourpackage.yourapp /文件

您可以在其中拉/推/删除文件。

答案 4 :(得分:0)

另一个选择是在应用程序中有一个转储私有文件的命令。这只适用于你不想编辑文件的情况,但是在你投入生产之前你没有必要将其剥离,因为用户不能破坏它。好吧,只要文件不包含敏感信息。但是,真的,如果他们这样做,你做错了什么。正如@ user1778055所说,用户可以根据自己的手机访问它。