【问题标题】:Acess files on root in device访问设备根目录下的文件
【发布时间】:2011-03-25 14:51:38
【问题描述】:

我正在为 Galaxy Tab 开发一个应用程序,现在我需要在 /data/data// 文件夹中获取一些文件。

模拟器真的非常慢。所以我正在设备上进行测试,并且需要从设备中获取文件(从我能够做到的模拟器中)。我该怎么做?

【问题讨论】:

    标签: android filesystems


    【解决方案1】:

    在您的代码中添加调试功能,将受保护文件夹中的所需文件复制到手机的 SD 卡中。然后,您可以从您的 PC 访问它们。

    public static void backupFile() throws IOException {
    
      String inFileName = "/data/data/your.package.name/........"; //TODO Use folder/filename
      File inFile = new File(inFileName);
      FileInputStream fis = new FileInputStream(inFile);
    
      String outFileName = Environment.getExternalStorageDirectory()+"/........"; //TODO Use output filename
      OutputStream output = new FileOutputStream(outFileName);
    
      byte[] buffer = new byte[1024];
      int length;
      while ((length = fis.read(buffer))>0)
        output.write(buffer, 0, length);
    
      output.flush();
      output.close();
      fis.close();
    }
    

    【讨论】:

    • 啊,漂亮!这会派上用场的。
    • 有趣。我认为这可以成为一个解决方案。
    【解决方案2】:

    设备上的 /data 目录具有受限权限。要使用 adb 复制文件,您需要已植根您的设备。

    【讨论】:

      【解决方案3】:
      adb pull <path>
      

      会将文件从设备下载到您的当前目录。

      您还可以使用adb shell 使用常用的 shell 命令来探索您的设备。 adb shell ls &lt;path&gt; 会让你在不完全进入 shell 的情况下做到这一点。

      编辑 - 这不适用于 /data 目录或其他受限目录中的文件,除非您对设备具有 root 访问权限。

      【讨论】:

      • 是的,不幸的是某些目录受到限制。 /data/data 中的应用程序目录不应该是。
      • 有趣。我的印象是 /data/data 下的任何内容都无法以这种方式访问​​。我从来没有能够从无根设备上的 /data 中提取任何文件。也许我只是从来没有选择正确的文件?
      • 嗯,我想你是对的!我可以发誓我以前做过。它一定是刚刚在模拟器上。
      • 好吧,感谢您的仔细检查!我真的希望我错了:-)
      猜你喜欢
      • 2012-09-28
      • 1970-01-01
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      • 2012-09-22
      相关资源
      最近更新 更多