是否有可能引用没有保存在res文件夹中的strings.xml文件?



我正在创建一个应用程序,可以在多个教育机构中使用各种课程的导师,他们希望能够在特定的基础上更新应用程序内的一些信息。我最初认为这样做的最好方法是让应用程序下载一个新的strings.xml文件到res/values文件夹,尽管我已经读到你不能更新这个文件夹/文件,而应用程序被打包和运行。我认为解决这个问题的一个好办法是在其他地方保存另一个strings。xml文件

我的问题是:

  1. 这可能吗?
  2. 我要去哪里保存strings.xml,使它不是当我导出应用程序时打包?

注意:该文件不会被称为string.xml,因此不会与实际的strings.xml混淆等。

你应该把文件放在哪里没有"规则"(当然,减去系统和其他你不能访问的私人文件夹)。然而,将应用程序下载的非打包资源放置在您自己的应用程序数据文件夹(位于设备的内部存储)或设备的外部存储(SD卡)中是合乎逻辑且最常见的位置。

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

要写入外部存储,您需要将WRITE_EXTERNAL_STORAGE权限添加到清单中。这样做之后,您可以在下载时使用FileOutputStream写入文件数据。用于读取的InputStream(查找最适合的输入流类型)

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

res文件夹下的文件被编译器用来自动生成R类,其中包含字符串,布局,drawables等的id…

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

最新更新