【问题标题】:How is AndroidManifest.xml validated in android studio?AndroidManifest.xml 如何在 android studio 中验证?
【发布时间】:2017-01-19 08:46:39
【问题描述】:

android studio 如何验证 AndroidManifest.xml 和任何活动 xml?我已经阅读了this 帖子和this 并且知道android 清单没有实际的架构。但是 android studio 或任何验证 AndroidManifest.xml 的工具如何知道哪些标签和元素是合法的?

【问题讨论】:

标签: android xml android-studio android-manifest


【解决方案1】:

android manifest 没有实际的架构

我不认为这是正确的。根据this answer

架构不作为 xml 文件存在。架构取决于您的程序使用的 UI 类。

虽然 XML 文件中没有直接定义架构,但可以在其他地方定义有效的标签和属性,例如在解析和扩展 XML 布局的 Java 代码中。

【讨论】:

  • 那么你的意思是android studio会查看类并确定元素吗?
  • @Kode 我的意思是 Android Studio 有代码可以打开 XML 文件并直接查看它。这很可能是用 Java 类实现的,但它不是“寻找类”。相反,它正在查看它解析的 XML 文件。
  • 我明白你在说什么,但你确定这一点还是有根据的猜测?
  • 这是有根据的猜测。
【解决方案2】:

一切都可以在https://android.googlesource.com上找到。

清单模型未编写为 .xsd 文件。相反,它被写成一组对象。树可以找到here

如果您从Manifest 开始,您可以看到,它引用了ApplicationList<UsesPermission> 等。Application 引用了android:nameandroid:labelList<Activity> 等等开。

来自Activity 对象的样本:

@Attribute("name")
@Required
@Convert(PackageClassConverter.class)
@ExtendClass("android.app.Activity")
AndroidAttributeValue<PsiClass> getActivityClass();

正如您所见,这是 Android Studio 知道的方式,清单中的 activity 标记必须有一个名称。使用了两个注解:

@Attribute("name")
@Required

其中一个是 .xml 标记属性的名称,第二个是通知,该属性是必需的。

可以在清单中使用的标签名称可以找到here

可以在here找到Android Studio用来获取清单属性的帮助类

【讨论】:

  • 这正是我想要的。非常感谢
猜你喜欢
  • 2015-10-03
  • 1970-01-01
  • 2013-06-01
  • 1970-01-01
  • 2017-09-19
  • 2021-05-29
  • 1970-01-01
  • 2021-09-12
  • 1970-01-01
相关资源
最近更新 更多