是否可以引用未保存在res文件夹中的strings.xml文件?

时间:2011-11-16 19:01:17

标签: android

我正在创建一个可以在多个教育机构中使用的应用程序,这些应用程序可以在各种课程中使用,这些教师希望能够在临时的基础上更新应用程序中的某些信息。我原本以为最好的方法是让应用程序将一个新的strings.xml文件下载到res / values文件夹,尽管我已经读过你在打包并运行应用程序时无法更新这个文件夹/文件。我认为一个好的方法就是能够在别处保存另一个strings.xml文件

我的问题是:

  1. 这可能吗?
  2. 我将在哪里保存strings.xml以使其不存在 我导出应用程序时打包?
  3. 注意:该文件不会被称为string.xml,因此实际的strings.xml不会产生混淆等。

2 个答案:

答案 0 :(得分:0)

没有“规则”,你应该把文件放在哪里(减去你无法访问的couse系统和其他私人文件夹)。但是,将应用程序下载的非打包资源放在您自己的应用程序数据文件夹(位于设备的内部存储器中)或设备的外部存储(SD卡)上的逻辑和最常见的位置。

要将文件写入内部存储,您需要使用上下文的openFileOutput(..)方法。这会将文件存储在您的应用程序专用数据目录中。使用openFileInput(..)读取存储的文件

要写入外部存储,您需要向清单添加WRITE_EXTERNAL_STORAGE权限。完成此操作后,您可以使用FileOutputStream在下载时编写文件数据。用于读取的InputStream(查找哪种输入流类型最合适)

显然,我提供的示例并不完全详细或有代码,但它们将指导您在设备上存储文件的正确方向。

答案 1 :(得分:0)

编译器使用res文件夹下的文件自动生成包含字符串,布局,drawable等的ID的R类......

当然,您可以从服务器下载自定义资源,并将其作为@dymmeh点存储在SD中。并且是实现文字修改的最合理方法,但要注意,您将无法在布局的xml中使用@ string / string_id,并且您必须自己解析下载的文件。