ソースコードをチェックする
さて、パッケージ内にはもう1つ、「R.java」というソースコードファイルも作成されていました。こちらはどうなっているのでしょうか。
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package jp.allabout.android;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040000;
}
}
これは一体、なんだ? と思われたかもしれません。これは、androidアプリで使用される各種のIDを定義しているクラスなのです。ここでは、Rクラスの中に「drawable」「layout」「string」といった内部クラスが定義されています。その中に、static finalフィールドが置かれています。プログラム内から利用される定数が、ここにまとめられているのですね。
ここで、各種のリソースにアクセスするためのインデックスIDを定義しておき、これらを指定することでリソースをそのまま指定し利用できるようにしてある、と考えてください。――例えば、先にActivityのonCreateで、setContentView(R.layout.main)と実行していたのを思い出しましょう。このR.layout.mainは、このRの内部クラスlauyoutにあるmainフィールドを指定していたのですね。これにより、このR.layout.mainで指定されたインデックスのリソースが読み込まれsetContentViewされていた、というわけです。
――以上で、androidアプリのソースコードは終わりです。「あれ? たったこれだけ? 実際に表示されていたテキストなんかはどこで作っていたの?」と疑問に感じた人。それらは、実はJavaのソースコードにはありません。リソースファイルとして定義されていたものが読み込まれ、利用されていたのですね。
では、次回はandroidのリソースファイルや設定ファイル類について説明をしましょう。