Hatena::Groupandroid

lnzntの Android 日記 このページをアンテナに追加 RSSフィード

2012年04月06日(金)

「Hello,World」アプリを作る

22:55 | 「Hello,World」アプリを作る - lnzntの Android 日記 を含むブックマーク はてなブックマーク - 「Hello,World」アプリを作る - lnzntの Android 日記 「Hello,World」アプリを作る - lnzntの Android 日記 のブックマークコメント

AVD も作ったので、今度は「Hello,World」(的な)アプリを作ります。

プロジェクトを作成

eclipse を起動して、以下を行います。

  1. 「ファイル」->「新規」->「プロジェクト」で新規プロジェクトダイアログを開く
  2. [Android]-[Android プロジェクト]を選択して「次へ」をクリック
  3. Project Name を入力(任意。ここでは 「Hello」)して「次へ」をクリック
  4. (ターゲットの選択だが一択なのでそのまま)「次へ」をクリック
  5. Package Name を入力(任意。ここでは「com.example」)して「完了」をクリック

これで、Hello プロジェクトが作成されます。

この時点で Hello は実行可能です。

アプリ実行

Hello を実行してみます。

  1. パッケージ・エクスプローラで「Hello」を選択
  2. 「実行」->「実行」でダイアログを開く
  3. 実行する方法で「Android アプリケーション」を選択して、「OK」をクリック

AVD が起動されて、アプリケーションがロード/実行されます。

(AVD が最初の起動だと、遅くて失敗するかも。。。)

しばらくすると、DDMS のコンソールでインストール成功のメッセージが出ます。

エミュレータのアプリランチャを確認してみると Hello がインストールされています。

20120406224923

Hello を実行するとメッセージが表示されました。成功。

20120406224924

ちょいと変更

何か作った感が薄いので、アプリケーションのメッセージをちょっと変更してみたいと思います。

  • (変更前) 「Hello, World, HelloActivity!」
  • (変更後) 「皆さん、こんにちは!」

Eclipse で Hello > src > com.example > HelloActivity.java を開くと以下のようにな

っています。

package com.example;

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

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

アクティビティとは何ぞや? など開発の基礎については以下のページあたりに解説されてます。

ここで setContentView で設定されているビューは R.layout.main です。

R クラスは Hello > gen > R.java に定義されています。

これは、 Hello > res 以下の XMLの定義ファイルを元に生成されたものです。

Hello > res > layout > main.java は以下のようになっています。

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

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
</LinearLayout>

LinearLayout/TextView/@android:text が表示メッセージのテキストのようです。

テキストは直値でなく "@string/hello" の形式でリソースを参照しています。

Hello > res > values > strings.xml は以下のようになっています。

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="hello">Hello World, HelloActivity!</string>
    <string name="app_name">Hello</string>

</resources>

では、resources/string[@name="hello"] の内容を変更してみます。

(変更前) <string name="hello">Hello World, HelloActivity!</string>
(変更後) <string name="hello">皆さん、こんにちは!</string>

変更後、保存(Ctrl+S)して、「Hello」をもう一度実行します。

で、エミュレータを確認します。

20120406225438

メッセージが変更されました。


参考

Android Developers*1 の チュートリアル。(Hello World もありますね)

----

以下は、前に日記に貼った図。

(アプリケーションのイメージ)

Android の アプリケーション

アクティビティのライフサイクル (Android Developers の図が理解できず自分なりに書いたもの)

Android Activity Lifecycle

*1Android Developers のページは日本語に切り替えられます。ただし翻訳されてないページもあります