当前位置: 首页 > 面试题库 >

为什么在android中命名资源时不能使用大写字母?

岳承悦
2023-03-14
问题内容

我最近开始在android中开发应用程序,许多教程都说过我们不应在命名资源时使用大写字母。这是为什么?另外,不允许提供扩展名,例如.png和.xml。如果我有两个文件button.png和button.xml,应用程序如何区分两个文件?


问题答案:
  1. 不允许在资源中使用大写字母只是严格遵循某些约定

  2. 您不能在同一个资源文件夹中使用两个不同类型的同名资源。例如,说您在drawable-hpdi中有两个资源文件。它们是a.png和a.xml。在编译时,此处将显示错误。但是,如果将a.png放在drawable-hdpi中,将a.xml放在drawable-mdpi中,则不会显示任何错误,因为这两种资源将在两种完全不同的设备类型中使用。

我发现的另一件有趣的事情是,如果在同一文件夹中使用a.png和a.xml,则错误将显示a.xml是重复的。但是,如果在同一文件夹中使用a.jpg和a.png,那么它将显示a.png是重复的。为此,我们可以猜测没有文件类型优先级。编译器遵循自上而下的搜索。由于将a.png放在a.xml上,因此编译器将首先找到a.png,然后当他们找到同名的xml文件时将显示错误。由于相同的原因,在使用a.jpg和a.png时,a.png将显示错误。

注意:这个答案完全基于我的观察。我没有找到任何书面文件。因此,如果有人用证明证明我的错,那将不胜感激



 类似资料:
  • 在面向资源的API中,资源是命名实体,资源名称是资源的标识符。每个资源必须有其唯一的资源名称。资源名称由资源ID本身,父资源的ID和资源对应的API服务名称组成。在下文,我们将探讨资源ID和如何构建资源名称。 gRPC API应该使用无模式的URIs作为资源名称。它们通常遵循REST URL的惯例并且表现得更像网络文件路径。它们可以轻松的映射到REST URL上:细节请参考下一节标准方法。 资源组

  • 升级到android Studio 3.0.1后,名称中带有$的字符串资源如下:

  • 问题内容: 因此,今天在编码时,我发现使用该名称创建函数会产生错误,但是当我将其重命名为所有功能时,一切正常。 是为了在Go中进行某些内部操作而保留“ init”一词,还是我在这里丢失了一些东西? 问题答案: 是的,功能很特殊。加载程序包时,它将自动执行。甚至该程序包也可能包含一个或多个在实际程序开始之前执行的功能:http : //golang.org/doc/effective_go.html

  • 问题内容: 我经常在 CAPITAL LETTERS中 看到用SQL编写的查询。虽然我认为SQL是不区分大小写的,为什么大多数都喜欢在写 大写字母 ?这只是选择问题还是有逻辑? 问题答案: 这是为了提高可读性。以前,SQL是用纯文本编辑器编写的(不突出语法/代码),并且需要区分关键字以提高可读性和维护性。 与 看到不同?每行的第一个单词都告诉读者确切的情况(从某处选择某物)。 但是现在,通过语法突

  • 问题内容: 我决定使用Swift的case语句和元组。它看起来像是该语言的较酷功能之一。 我决定玩月/日/年元组。令我惊讶的是,我不能在switch语句中使用常量元组值作为案例。这是一个示例(可以粘贴到Playground中并运行) 注释掉的代码不会编译(如果重要的话,在Xcode 6.3中)。在下面的情况下(我分别列出了joesBirthday元组的所有元素)更难键入且更难阅读,确实可以工作)

  • 我正在为面向对象编程的秋季考试做准备,其中一种任务是提供代码输出,这通常包括一些异常处理问题。 现在我的问题是什么时候用资源尝试关闭它的资源,因为我的输出严格依赖于实现AutoCloseable的类的输出。 在提供的代码中,我不明白为什么“close 1”输出在“close 40”之前,或者为什么对象A(40)在这个块的末尾被关闭。是因为A(50)和A(40)是同一类型的吗? 我的主要问题是,Au