代码之家  ›  专栏  ›  技术社区  ›  bharal OpherV

为什么我们有Android的命名空间?

  •  -1
  • bharal OpherV  · 技术社区  · 7 年前

    我就是不明白。

    在Android中编写基于XML的布局时,我们使用字符串 "xmlns:android="http://schemas.android.com/apk/res/android".

    好的,现在有人会说“防止冲突”和“如果我使用不同的名称空间 然后呢? “。但没有人真正编写一个相互竞争的模式,然后尝试用它运行他们的Android应用程序。

    换句话说,如果我将默认值保留为空,则什么都不起作用。但为什么谷歌会做出这样的选择:如果真是这样的话,一切都不会起作用?读取XML并计算出元素应该不会那么困难,那么为什么要做出这种特殊的设计决策呢?

    1 回复  |  直到 6 年前
        1
  •  0
  •   bharal OpherV    6 年前

    来自CommonWare的评论(抱歉,我不确定这个问题是否会被解决,所以我会在我可以的时候把它放出来!)

    " 嗯,XML名称空间通常是一个好主意(如果您正在设计多方XML)。毕竟,我们在Android中使用了一些XML文件(Android、应用程序和工具,仅举三个)。

    然而,在一些XML文件中,元素名称映射到Java类名(例如,layouts),我认为这促使决定不对元素名称应用名称空间。

    至于为什么他们不只是使用默认名称空间,我想了十年了。但是,在这一点上,做出这个决定的人完全有可能不再参与Android项目。 "

    因此,使用默认名称空间,以便我们可以在常规AndroidManifest中使用不同的名称空间。类xml文件 app tools 以及 android .

    在其他文件中,由于元素名称映射到完全限定的java包名称,因此没有理由拥有名称空间,因为所有元素名称都因此保证是唯一的。

    原始设计决策不会记录在任何容易获取的地方,但如果您确实知道,请分享!