Hello World を理解する (1/2)

~ R.javaは素材の管理者 ~

前へ   1  2  次へ
androidアプリは、初期状態で「Hello World」と表示するようになっていますが、これはどのように表示されているのか気になります。このセッションでは、Hello World が表示される仕組みを見ていきます。

1.ファイル構成を見る

Eclipseの左に、プロジェクトが表示されていると思います。+をクリックするとプロジェクトの中身が見られます。表示されていないときは、「ウィンドウ」→「ビューの表示」→「パッケージ・エクスプローラ」で表示されます。実際に開いてみると、こんな感じです。

[ Sample01 ]
    [ src ]
        [ sample.android.sample01 ]
            Sample01.java
    [ gen ]
        [ sample.android.sample01 ]
            R.java
    [ Android 1.5 ]
        android.jar
    [ assets ]
    [ res ]
        [drawable]
            icon.png
        [layout]
            main.xml
        [values]
            strings.xml
    AndroidManifest.xml
    default.properties
    proguard.cfg

まあ、ややこしいです。1つひとつ見ていきます。

2.Sample01.javaは何をしているのか

Sample01.javaは、プログラムの本体です。プログラムの本体は、いつもsrcフォルダに入れます。ダブルクリックで開くとこんな感じです。

Sample01.java

package sample.android.sample01;

import android.app.Activity;
import android.os.Bundle;

public class Sample01 extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

androidアプリは、起動したとき、Activityを継承したクラスの、onCreateメソッドが実行されるようになってます。その中身を見ると2つの命令がありますが、super.onCreateは、あってもなくても良いので、結局このプログラムでやっていることは、setContentViewだけです。これは、レイアウトを画面に貼り付ける命令で、R.layout.mainと言うレイアウトを画面に表示しています。

3.R.javaは何をしているのか

R.javaは、素材を管理するためのファイルです。素材には、アイコン、レイアウト、文字、画像、音楽、などが含まれます。このファイルは自動で作られるので、あまり開くことはありません。開くとこんな感じです。

R.java

/* AUTO-GENERATED FILE.  DO NOT MODIFY.

package sample.android.sample01;

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=0x7f040001;
        public static final int hello=0x7f040000;
    }
}

数字は、コンピュータが管理するためのもので、適当に付けられています。赤に注目すると、「layout」「main」の文字が発見できます。これが、さっきのプログラムにあった「R.layout.main」と言うやつです。ここのデータを参照して、レイアウトを取りに行ったわけです。ちなみに、画像とかを使うときも、同じようにします。

4.icon.pngは何をしているのか

これは、文字通り、アプリのアイコンになります。つまり、この画像を変更することで、アイコンを変更できます。

5.結論

R.javaにレイアウトの場所が書かれていて、それをSample01.javaで、表示しています。まだ、「Hello World」という文字は出てきません。

前へ   1  2  次へ