将Android应用资源移至外部存储器

时间:2014-07-12 13:16:56

标签: android sd-card

我会保持简短 - 我的应用程序需要一个包含大量文件的目录。我需要将它们移到SD卡上,因为将它保存在内部存储器上毫无意义。我该怎么做?

我假设我需要将目录保存在res中,最初,然后在外部存储器上打开/创建所需的文件夹,并将所有文件移到那里。

我如何一次?每次运行我的应用程序时,是否必须检查外部文件夹的完整性?

感谢。

2 个答案:

答案 0 :(得分:2)

您可以轻松地遍历每个res /文件夹,如果您愿意,可以将它们复制到SDCARD。 res / raw文件夹的示例:

void iterate_over_res_raw() {
    Field[] fields = R.raw.class.getFields();
    for (int count=0; count < fields.length; count++){
        String rawElement = fields[count].getName();
    }
}

从那里将所选资源复制到SDCARD。


但这不会解决您的问题,因为您无法在复制后删除res文件。应用可能永远不会删除或更新自己的APK内容。这是一个安全限制。


那你能做什么:

A。创建一个没有/最小资源文件的apk,并在首次运行时从服务器下载其他资源并进入SDCARD。

B。通过将installLocation设置为preferExternal,允许将整个APK安装到SD卡上:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="string"
          .......
          android:installLocation="preferExternal" >

希望它有所帮助。

答案 1 :(得分:1)

你不能使用res文件夹,res文件夹被设计为在apk文件中维护。

为了确保您的文件与应用程序分开保存,您需要自己完成,在安装应用程序后下载资源并将其保存到您想要的位置,但之后您需要自己检查完整性和加载同样。