2012-03-01 21 views
0

私の個人的な目的のために、Android Manifestファイルのコメントを解析したいと思います。これらのコメントには、抽出したい属性と値を持つタグがあります。 htmlファイルのタグと似ていますが、これは通常、このタグをサポートしていないブラウザがあるためコメントされています。だから私はアンドロイドマニフェストで同様のことを実装したい。AndroidでのXMLのコメントの解析

Androidマニフェストファイルでは、SAXParserを使用して解析されていることが分かります。さらに、私はこの目的のためにLexicalHandlerを使うべきだと思いますが、私はこの機能に直面することは一度もありませんでした。コードスニペットと任意のヘルプが高く評価されます!

+0

これは私が恐れていたものです。私はこれについて考えていたが、わからなかった。どうもありがとうございました! – Yury

答えて

0

resフォルダ(res/rawを除く)にあるすべてのものと同様に、マニフェストはコンパイルされ、バイナリ形式で保存されているため、コメントは削除されるため、未加工のXMLマニフェストは解析できません。

多分あなたはxmlnsで遊んで、マニフェスト解析をキャプチャすることができます...しかし、私はそれが疑わしいです、マニフェストはパッケージマネージャーによって解釈され、私はあなたがそれにアクセスできるとは思わない。 (あなたのフィードバックから)

ソリューション:コンパイル時にAndroidManifestファイルからすべてのコメントが削除されるため
要求された機能は、不可能です。

は、次の方法でこれを確認することができます。

  1. シンプルなアプリプロジェクト(Hello Worldの)を作成し、AndroidManifestファイルにコメントを追加します。
  2. プロジェクトをコンパイルし、.apkファイル(符号付きまたは符号なし)をエクスポートします。
  3. apktoolなどのツールを使用すると、apkファイルが抽出されます。
  4. AndroidManifest.xmlの結果を確認してください。コメントはありません。

他の方法を見つけてください。

0

AndroidManifestがクラスパスリソースとして利用できないとは思われません。私が考えることができる唯一の方法は、実際にAndroidManifest.xmlのコピーをソースファイルに作成し、antターゲットを使用してコンパイル済みオブジェクトとしてビルドすることです。

次に、通常のXMLファイルのようにXML API。

+0

私はAndroidManifestを解析できるように、フレームワークレイヤーで作業しています。私はこれを行う方法がわからないという唯一の問題です。私は単純なXMLファイルと見なすことができると思うが、私はコメントからタグとその属性を抽出する方法を知る必要がある。さらに、マニフェストファイルにはいくつかのコメントがあります。そのため、タグが必要です。 – Yury

+0

XMLファイルは実行時にクラスパスに存在しません(コピーを作成することによって存在しない限り) –

+0

どういう意味ですか?パッケージインストーラがあるとします。それは、AndroidManifestファイルを解析し、その情報をユーザに表す。だから、このレベルで私はこのXMLファイルを解析することができると思います。あるいは、私は実際に私がXML解析で密接に直面したことがないので、何かを理解していないかもしれません。 – Yury

0

その男が嫌いですが、カスタムXMLを/ assets /に保存し、manifest.xmlファイルをオーバーロードしないようにしてください。