将值存储在“资源”文件夹中有什么必要?

时间:2019-02-08 16:10:19

标签: java android class resources

在Android Developer网站上: https://developer.android.com/guide/topics/resources/providing-resources

  

资源是代码中的其他文件和静态内容   用途,例如位图,布局定义,用户界面字符串,   动画说明等。

     

您应该始终外部化应用程序资源,例如图像和字符串   从您的代码中,以便您可以独立维护它们

据我了解,我们应该在此处存储用于编码的静态内容,以便它们更易于编辑/存储/管理,对吗?他们还有什么目的?

我不能只拥有自己的单独的Java类并在那里定义所有变量,final等吗?这些资源真的必要吗?

我知道例如声音文件,图像等必须存储在某个位置,在Java类中,我们指的是它们的位置或告诉程序如何到达它们,但是整数或字符串之类的值呢? ?

如果没有在Resources文件夹中的.xml文件中而是直接在Java类中分配我的值,我会失去什么?声明它们,在.xml文件中编辑它们,在Java文件中再次引用它们等似乎很麻烦。

但是!我当然知道这样做是有充分理由的,我只是不明白为什么。

2 个答案:

答案 0 :(得分:1)

他们还有什么目的?

  • 允许您根据语言环境,设备尺寸和操作系统版本进行不同的配置。

我不能只拥有自己的单独的Java类并在那里定义所有变量,final等吗?这些资源真的必要吗?

  • 对于某些事情,可以并且应该在Java中进行定义。

我知道例如声音文件,图像等必须存储在某个位置,在Java类中,我们指的是它们的位置或告诉程序如何到达它们,但是整数或字符串之类的值呢? ?

  • 用户显示的字符串应始终存储在res文件夹中。它使本地化更加容易。但是,在我看来,可以将诸如意图键之类的字符串存储为Java中的静态私有变量。
  • 整数可以用Java存储。如果整数是给定填充量或图像大小的大小,则该整数应位于res文件夹中。但是,如果要知道从数据库端点向下的不同值是什么,则是整数,然后将其存储在Java中。

如果没有在Resources文件夹中的.xml文件中而是直接在Java类中分配我的值,我会失去什么?声明它们,在.xml文件中编辑它们,在Java文件中再次引用它们等似乎很麻烦。

  • 获得的值是,如果需要根据用户设置的语言环境/语言来更改它,或者屏幕大小很重要(平板电脑,大型手机,风景等),或者是否关心设备版本。例如,不同版本的Android确实会以不同方式启动图标。我有一个名为minmap-anydpi-v26的文件夹,并且其中包含我的图标。然后在我的普通minmap文件夹中,有一个“默认”图标。

TL; DR 在大多数情况下,res文件夹可用于处理UI(用户看到的内容)。我(通常)只会将与UI项有关的整数和字符串存储在res文件夹中。

答案 1 :(得分:1)

Convention over configuration是一个简单的概念,主要用于编程。  这意味着您工作的环境  (系统,库,语言...)默认情况下采用多种逻辑情况,  因此,如果您适应它们而不是每次都创建自己的规则,  编程成为一项更轻松,更高效的任务...

一些好处:

  1. 生产力,直接的结果就是您可以在更短的时间内创建更多的东西。
  2. 明确地说,这是一个“标准”,因此该项目的新手将可以更轻松地加快速度。
  3. 减少要做的决定的数量。
  4. 消除了必须配置应用程序开发的所有领域的复杂性。

    .. 快乐的编码。