2012年3月5日月曜日

Androidアプリ開発、事始め

うし。Androidアプリの開発環境を構築しよう!


1. Eclipseのダウンロードとインストール

まずはここからEclipseをダウンロードする。

Eclipse Downloads

必要なバージョンは3.6以降。エディションは

・Classic
・Java Development
・EE

のどれかが推奨されている。

System Requirements | Android Developers

どれを選ぶか迷うけど、Eclipseは後から色々機能を追加できるし、とりあえずAndroidの開発だけするつもりならClassicが軽くていいだろう、ということでClassicを選択した。

ダウンロードしたらインストール。といっても、単に解凍するだけ。自分の環境の場合、すでにいくつもEclipseがあるので「eclipse3.7.2」とリネームして/Applicationsフォルダに配置した。

念のため起動。ワークスペースの場所を聞かれる。デフォルトの「workspace」だと既存の環境とごっちゃになるので、~/Documents/AndroidDevとすることにした。

ところで、EclipseにPayPalで寄付できるようになってた。長年お世話になってるから、ここは一発、長年の感謝を込めて寄付しとこう。


2. ADTのインストール

・Eclipseを起動
・Help > Install New Software...
・右上の「Add」クリック
・「Add Repository」ウィンドウで「Name」に「ADT Plugin」、「Location」に「https://dl-ssl.google.com/android/eclipse/」を設定して「OK」
・「Work with」が「ADT Plugin - https://dl-ssl.google.com/android/eclipse/」になっていることを確認
・下のテーブルで「Name」の列に「pending...」と表示される
・しばらく待つ(これが相当時間かかった)と「Developer Tools」が出てくるのでチェックして「Next」
・「Install Details」で4項目出てくることを確認して、さらに「Next」
・「Review Licenses」で3項目出てくる。「Apache License」項目に対して「I accept...」をチェックして「Finish」(その他の項目はApacheのを「I accept...」すると自動的にチェックが入る)
・インストールが開始される。途中「Security Warning」が出るけど、もちろん「OK」
・「Restart Now」

Eclipseから自動インストールできなかった場合に備えて、手動インストールの方法も書いてあった。あまりにも遅いので、手動でやろうかと考えたくらいだ。

ADT Plugin for Eclipse | Android Developers


3. Android SDKのインストール

・Eclipseが再起動されると「Welcome to Android Development」ウインドウが表示される
・「Install new SDK」チェック
・「Install the latest available version of....」チェック
・「Target Locations」は「/Applications/eclipse3.7.2/android-sdks」とした
・「Contribute Usage Statistics?」はどっちでもいいけど「Yes」をチェックで協力することにして「Finish」
・コンソールに何やら色々とFetchしている様子が出る(これも結構時間かかる)
・「Choose Package to Install」のウインドウが出る
・3項目選べるけど「SDK Platform Android 4.0.3...」をインストールするために他の2項目が必要なようなので、「Accept All」して「Install」
・コンソールに何やら色々やってる様子が出る(これも結構時間かかる)


4. Android SDKの追加コンポーネントをインストール

以上のインストール作業では最新の4.0.3での開発環境しか入らないようだ。しかし、自分の場合は2.2以上の開発環境も必要なので、追加コンポーネントをインストールする。

・Window > Android SDK Manager
・しばらく待つとインストールできるもののリストが出てくる(要辛抱)
・Android 2.2 (API 8)より上の項目をチェック(「Tools」以外)して「Install Packages...」
・「Choose Package to Install」のウインドウが出るので「Accept All」して「Install」

SDK Managerはどうも不安定らしく、リストをロードするたびに違うリストになることもあった。最低でもそれぞれのバージョンで「SDK Platform」が含まれているかどうかは確認する必要がある。足りないものは後でチェックして、「もしあったら入れる」、的な(^^);

ダウンロード速度はマジで遅いので辛抱が必要。途中で「MOTODEV」「htcdev」がどうのこうの言ってIDとPWを聞かれた。「Cancel」。モトローラやHTCの機体用のエミュレータの何かじゃなかろうか?と思ったけどGoogle APIのアイコンと同じなので独自APIか何かかも。

アカウントを持っていない場合は、モトローラ関連とHTC関連はチェック外しといた方が良さそうだ。


5. 「Hello Android」してみる・・・ためにAVD作成

SDKがちゃんとインストールできたかどうかを確認するには、やはり歴史的に「Hello World」すべきだろう。

Hello, World | Android Developers

始めはエミュレーター、Android Virtual Device (AVD)を作らなければならないらしい。

・Window > AVD Manager
・「Android Virtual Device Manager」ウインドウが出る
・「New」
・「Create new Android Virtual Device」ウインドウが出る
・「Name」に「Android_2_2」、「Target」は「Android 2.2 API Level 8」として「Create AVD」


6. Androidプロジェクト作成

・File > New > Project
・「New Project」ウインドウが出る
・「Android」フォルダから「Android Project」を選択して「Next」
・「Project Name」を「HelloAndroid」として「Next」
・「Build Target」の選択。デフォルト選択は「Android 4.0.3」。ここは「Android 2.2」を選択して「Next」
・「Package Name」を「jp.helloandroid」(テキトー)として「Finish」
・左の「Package Explorer」に「HelloAndroid」プロジェクトができる


7. Activityを初編集

・HelloAndroid/src/jp.helloandroid/HelloAndroidActivity.javaを開く

これにTextViewを追加する。最後のsetContentView()でtvをセットするところがポイント。

package jp.helloandroid;

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

public class HelloAndroidActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView tv = new TextView(this);
        tv.setText("Hello Android");
        setContentView(tv);
    }
}


8. 実行!

・Run > Run
・「Run As」ウインドウが出る
・「Android Application」を選択して「OK」
・Androidのエミュレーターが立ち上がる(しばらく、いや結構待つ。OSが立ち上がる感じ。)
・出た


エミュは実行しっ放しでいいらしい。


という訳で、以上。どうやら、ちゃんと開発できるようになったらしい。


NOTE. Android Developpersサイトは日本語があっても英語基本で

これからAndroidアプリ開発の総本山へと何度となく逝くことになるだろう。

Android Developers

ご丁寧にも日本語版があるようだけど、毎度のことながら使い物にならない。「Android 2.0 の最新バージョンが公開されました」っていつの話だ?(^^);

英語のままあたるのが吉。