XML Binary
Android でデフォルトで提供されている layoutファイル(例えば、android.R.layout.simple_list_item_1)があることがわかったので、他にどんなのがあるのかと Eclipseで、プロジェクトの Android 2.1以下にある xmlファイルを見てみた。
ところがこれが、見れない、っていうか Eclipseがハングするw。しょうがないので、android.jarファイルを解凍して、xmlファイルを見てみたら、なんとバイナリ形式になってた!
拡張子はそのまんま xmlなのに。。。
調べてみたら、Android XML Binaryという形式らしい。昔から、XML Binary というのが検討されていたのは知ってたので、ようやく標準化されてそれを採用したのかと思ったら、どうやら Binary形式の XMLファイルはまだ標準化されておらず、乱立している状態らしい。うーん。。。
そもそも、XMLというのは、マシーンのための効率を捨て去ってまで、Human-readableを優先したものじゃなかったの?本末転倒じゃね?大体、人間様があんなデータをいまだに読み書きしなきゃいけない状態っていうのが、イケてないでしょー。
バイナリフォーマットに回帰するのは今だ!ww
というわけで、とりあえず、Android XML Binaryを読む方法を書いときます。
ここから、ツールをダウンロードして、こんな感じです。
$ java -jar ./AXMLPrinter2.jar foo/bar.xml
ところがこれが、見れない、っていうか Eclipseがハングするw。しょうがないので、android.jarファイルを解凍して、xmlファイルを見てみたら、なんとバイナリ形式になってた!
拡張子はそのまんま xmlなのに。。。
調べてみたら、Android XML Binaryという形式らしい。昔から、XML Binary というのが検討されていたのは知ってたので、ようやく標準化されてそれを採用したのかと思ったら、どうやら Binary形式の XMLファイルはまだ標準化されておらず、乱立している状態らしい。うーん。。。
そもそも、XMLというのは、マシーンのための効率を捨て去ってまで、Human-readableを優先したものじゃなかったの?本末転倒じゃね?大体、人間様があんなデータをいまだに読み書きしなきゃいけない状態っていうのが、イケてないでしょー。
バイナリフォーマットに回帰するのは今だ!ww
というわけで、とりあえず、Android XML Binaryを読む方法を書いときます。
ここから、ツールをダウンロードして、こんな感じです。
$ java -jar ./AXMLPrinter2.jar foo/bar.xml
