2016-09-11 15 views
8

アンドロイドスタジオはAndroidManifest.xmlと任意のアクティビティxmlをどのように検証しますか?私はthis投稿とthisを読んで、アンドロイドマニフェスト用の実際のスキーマはないことを知っています。しかし、AndroidManifest.xmlを検証するアンドロイドスタジオやツールは、どのようなタグと要素が合法であるかを知っていますか?AndroidManifest.xmlはアンドロイドスタジオでどのように検証されますか?

+0

を見つけることができます見つけることができ、私は想像します。 https://developer.android.com/guide/topics/manifest/manifest-element.html –

+0

@ cricket_007私は理解していますが、タグや要素が正しいことを確認するために何かをチェックする必要があります。言い換えれば、に変更した場合、それはどういうことが分かりますか – Kode

+0

XMLソースを一度見つけたようですしかし)。 categoryタグの場合、 'name'属性のみが有効です。 https://developer.android.com/guide/topics/manifest/category-element.html –

答えて

2

すべてはhttps://android.googlesource.comで見つけることができます。

マニフェストモデルは.xsdファイルではありません。代わりに、オブジェクトのグループとして記述されます。あなたが見ることができるManifestから起動する場合は、ツリーは、それがなどApplicationがそうでandroid:nameandroid:labelList<Activity>とへの参照を持っている、ApplicationList<UsesPermission>への参照を持っていることを、

hereを見つけることができます。

Activity対象からのサンプル:

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

あなたは、これはAndroidのメーカーは、マニフェスト内のactivityタグが名前を持っていなければならないことを、知っていること、の方法である見ることができるように。二つの注釈が使用されています。それらの

@Attribute("name") 
@Required 

一つは、.xmlのタグ属性の名前であり、2つ目は、この属性が必要であることを、知らせます。マニフェスト内で使用可能なタグの

名は、マニフェストのプロパティを取得するには、Android Studioで使用here

ヘルパークラスを再帰的に各タグをチェックhere

+0

これはまさに私が探していたものです。ありがとう – Kode

2

アンドロイドマニフェスト

のための実際のスキーマは、私はこれが正しいとは思わないがありません。 this answer

スキーマはxmlファイルとして存在しません。スキーマは、プログラムで使用するUIクラスによって異なります。

XMLファイルに直接定義されたスキーマはありませんが、有効なタグと属性は、XMLレイアウトを解析して拡張するJavaコードなど、別の場所で定義できます。

+0

アンドロイドスタジオがクラスを調べて要素を決定するということですか? – Kode

+0

@Kode Android Studioには、XMLファイルを開いて直接見るコードがあります。これはJavaクラスで実装されている可能性が高いですが、「クラスを調べている」わけではありません。むしろ、解析するXMLファイルを調べています。 –

+0

私はあなたが言っていることを見ていますが、あなたはこれについて確信しているのですか、それとも教育を受けた推測ですか? – Kode

関連する問題