Hello, Android!

本稿のゴール

eclipseでアンドロイドプロジェクトを作成して、初期状態のプログラム解説とかできれば…

新規プロジェクトの作成

ファイル > 新規 > その他 より Android プロジェクトを選択

新規 Android プロジェクト
新規 Android プロジェクト


設定する値はだいたいこんな感じで。eclipseのバージョンによって違うことってあるのかな?

項目名 説明
プロジェクト名 HelloAndroid 最初はやっぱりHelloXXXでしょう!
ビルドターゲット Android 2.1 これ以上の端末が殆どなので、2.1をベースにします
アプリケーション名 HelloAndroid プロジェクト名に合わせましょう
パッケージ名 jp.olive.android.hello 自分のドメインを持っている人は逆から書けばそれがJavaのパッケージとなります。
もってなければ com.localdomain.android.hello とかでいいんじゃん
Create Activity MainActivity とりあえず基本となるクラスなので

んで、完了押せばプロジェクトができる。

解説のコーナー

プロジェクト作成時に生成されたそれぞれのソースについて、わかる限り解説します。
それでも足りなかったらググッてください。

src/jp/olive/android/hello/MainActivity.java

アプリ起動時に最初に呼ばれるクラス(設定により変更可)。
[java]
package jp.olive.android.hello;

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

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

onCreate(Bundle savedInstanceState)

onCreateつうのはこのActivityが呼び出されたときに一番最初に呼ばれる関数だな。
ここで、どのレイアウトを使うだとか、画面上にボタンがある場合はリスナーの登録を行ったりとかする。

他にもonPause(他のアプリの割り込み時に呼ばれる処理)やonDestory(アプリの終了時)といった関数がある。
ここの図をよく見て、なんとなくでいいので把握しておこう。

setContentView(R.layout.main)

これはMainActvityでどの画面を使うかの設定。res/layout/main.xmlで定義したレイアウトを適用するという意味。

res/layout/main.xml

画面レイアウトの定義を記述しているファイルでつ。
[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>
[/xml]
LinerLayoutの中にTextViewtってのがあるのが分かりますね。基本的にはLayoutの中にLayoutかViewを入れ子にしていって画面を作成します。
まぁ、eclipseでアプリ開発してるなら、GUIを使ったレイアウト作成も手ですね。GUIでだいたいのレイアウトを作成して、細かいところをxmlで詰めてく感じです。

GUIによるレイアウト設計
GUIによるレイアウト設計
LinearLayout

一直線に並べるレイアウト。一番基本的なやつです。これを入れ子にしていけばだいたいの画面はつくることが出来ます。
これとTableLayoutとか覚えておけば全然オッケー

TextView

文字を表示する領域表示するテキストはandroid:textってとこにベタで書いても、@string/helloのような文字列リソース(後述)でも設定できる。

res/values/strings.xml

文字列リソースを定義しておく場所。殆どの場合ベタで書いても動くのだが、文字定数などはなるべくこちらで定義しておきたい。ここで定義した文字列は@string/hogeという形でアプリ内で呼び出すことができるようになる。
また、アプリを国際化する際、 res/values-ja/strings.xmlとかres/values-en/strings.xml とか言語別に用意しておくだけで、勝手に地域対応してくれるって寸法さ。

AndroidManifest.xml

これが最後にして最大の肝ファイルである。

AndroidManifest.xml
AndroidManifest.xml

アプリの中でActivity(クラス)がどのような挙動をするかを定義するファイルです。
Manifestなしにアプリは動かんのですよ!!

画面左下にある Application Nodes これがとっても重要!

.MainActivity

このアプリにはMainActivityってのがありますよっていう定義。この下にMainActivityから派生する挙動を記述する。

Intent Filter

Androidのアプリ遷移は全てIntentっていうものを介して行われる。アプリ(Activity)からメールソフトを起動したり、ブラウザを立ち上げたり、電話をかけたり。全てはIntentFilterの設定である。

android.intent.action.MAIN

Javaやってる人ならおなじみの public void static main(String[] args) よろしく、アプリケーション起動時に最初に呼ばれるクラスですよってことです。

android.intent.category.LAUNCHER

アプリケーションランチャーに登録できることをしめしているよ~だ

アプリケーションの実行

とりあえず、本稿のゴールは達成できたわけだ。

疲れた・・・、あとは頑張れ!
Σ(゚Д゚;エーッ!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です