[Android]Hello Worldを出力するアプリ

画面にHello Worldという文字列を出力するアプリを作成する

開発環境は開発環境の構築を参照。

1. 新規プロジェクトの作成
Eclipseの[新規プロジェクト作成]から[Androidプロジェクト]を選択する。

2. プロジェクト名などの入力

・プロジェクト名:HelloWorld
  Eclipseのプロジェクト名。分かりやすい名前を付ければよい。
・ビルド・ターゲット:Android 2.2をチェックする
・アプリケーション名:ハローワールド
  アプリケーションの名前。この名前でAndroidケータイに登録される。
・パッケージ名:org.example.helloworld
・Create Activity:HelloWorldActivity
  Activityを継承するクラス名を指定。Activityはアプリのライフサイクルを管理するクラスで、Androidアプリでは必ず実装しなければならない。
・Min SDK Version:8
  Min SDK Versionはビルド・ターゲットのAPI Levelの数値を入力する。

3. プロジェクト構成
手順2が完了すると、プロジェクトが下記のような構成で作成されている。

ファイル名 説明
HelloWorldActivity.java アプリケーションの処理を記述するファイル
R.java リソースIDを管理するファイル。プロジェクト作成時に自動生成され、その後はビルド時に自動更新される。変更することは禁止されている。
res/drawable-* 画像データを置くディレクトリ。各ディレクトリにイメージを配置する事で、解像度によって使用するイメージを切り替える事ができる。
res/layout/main.xml 画面レイアウトを定義するファイル
res/values/strings.xml Androidで使用する文字列を定義するファイル。(任意のファイル名で文字列や配列、スタイルなどを定義できる。)
values-en、values-jaのように言語ごとにディレクトリを作成する事で国際化に対応できる。
AndriodManifest.xml アプリケーションの構成を定義しているファイル
default.properties バージョン管理に使用するファイル

以降、ソースコードの説明。

4. main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>

タグ 説明
LinearLayout リソース(ボタン、テキスト欄など)垂直に並べる
TextView text属性で指定した文字列を出力する

android属性 説明
orientation vertical:垂直に並べる
horizontal:水平に並べる
layout_width fill_parent:枠を横幅いっぱいに設定する
wrap_content:枠を文字列と同じ幅に設定する
layout_height fill_parent:Buttonを横幅いっぱいに使用するために設定
wrap_content:枠を文字列と同じ幅に設定する
text 出力したい文字列を入力する。
または、strings.xml ファイルに定義した値を記述する。この場合「リソースのタイプ/リソース名」と入力する。

5. HelloWorldActivity.java
現在のアプリの状態に関する情報はsavedInstanceStateにまとめられており、メモリ中に存在する。

package org.hello.world;

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

public class HelloWorldActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    // Hello Worldを表示する。
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);  //setContentView:画面を生成する。
    }
}

6. R.java
リソースIDを管理するファイル。リソースとは画面に配置したボタンやテキスト欄のことである。R.javaは初めてプロジェクトをビルドした時に作成され、その後ビルドが行われるたびに自動的に更新されていく。その為、ユーザーはリソースの追加だけを行っておけばリソースに対するIDの管理などは行う必要はない。

/* 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 org.hello.world;

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;
    }
}

7. strings.xml
アプリケーションで使用する文字列を定義するファイル。アプリケーション内では文字列を使いまわす可能性が高いので、xmlファイル形式で1箇所にまとめている。ハローワールドという値を取得したい場合は、「@string/app_name」と記述する。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World</string>
    <string name="app_name">ハローワールド</string>
</resources>

8. AndroidManifest.xml
アプリケーションがどのような挙動を行いどのような情報を公開し、どのようなデータを処理でき、またはどのようにしてそれらを起動するかという情報を記述したファイル 。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="org.hello.world"
      android:versionCode="1"
      android:versionName="1.0">
    application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".HelloWorldActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
    <uses-sdk android:minSdkVersion="8" />

</manifest>

9. default.properties
バージョン管理に使用するファイル。本ファイルは自動生成される。また後から書き換えてはいけない。下記の例ではビルド・ターゲットのAPI Levelのバージョンが記述されている。

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
# 
# This file must be checked in Version Control Systems.
# 
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.

# Project target.
target=android-8

10. icon.png


11. 実行結果
Eclipseで[プロジェクト名を右クリック]->[実行]->[Androidアプリケーション]をクリックするとAndroidのシミュレータが起動する。

実行するとまずシミュレータが起動する。ホーム画面が表示される。

ロックを解除すると、ハローワールドアプリが自動起動する。

ハローワールドアプリのアイコンはこんな感じ。