Hello, Android: Introducing Google's Mobile Development Platform

前回 [ [id:KYoshiaki:20090329] ] 書いたように、あいかわらず iPhone SDK 3.0 は、インストールしていません。しかし、資料はコツコツ読んでいます。NDAのため詳細について残念ながら触れることはできませんが!

ところで、前回 [ [id:KYoshiaki:20090329] ] Mac OS X 上の VMware FusionUbuntu ja-8.10 仮想マシンを使い、Android SDK を試した実行画面を載せましたが

Android 1.5 Early Look SDK | Android Developers
http://developer.android.com/sdk/preview/

が公開されていたので、試してみました。上の説明通り実行すれば、何の問題もなく動作します。注意するところといえば、Android エミュレーターを実行するには Android Virtual Device (AVD) を作成する必要があることぐらいです。上記に書かれている通り、コマンドラインを実行し、eclipse の設定をするだけです。

本格的に取り組むつもりはないと書きましたが、試しに

を購入してみました。

この書籍で知ったのですが、Android エミュレータの画面を実行中に横向きに変更するには CTRL + F11 キーを押せばよいようです。ただし、私の iMac では ‘F11’ キーは音量の調整に利用されています。そこで ‘/アプリケーション/システム環境設定.app’ の

キーボードとマウス/キーボード
'F1、F2 などのすべてのキーを標準のファンクションキーとして使用'

にチェックを入れる必要がありました。

一通り読み終えました。一番の利点はプログラミングを通して Android の仕組みや端末の作法を学べることです。実際、iPhone の場合、テーブルの行の並び替えや削除の方法はプログラミングを通して学びました。

上の書籍のサンプル ‘数独‘ を作りながら Android 端末の ‘Menu’ キーや ‘Back’ キーをどういうところで利用するのか理解できました。

インターフェイス、リソースの作成には XML 形式のファイルを利用します。ほとんど経験がありませんが、どちらかというと Windows Vista 上の XAML プログラミング (WPFアプリケーション) に似ていると思います。

iPhoneフレームワークなどは多少違いますが、構造としては Mac 上のデスクトップアプリケーションとそんなに変わりがないと思います。

Android は、プロセスとアプリケーションが同一ではありません。(まだ、深く理解していないので間違っているかもしれません。) アプリケーションを起動すると前面にアプリケーションの画面 (activity) が作成されます。アプリケーションは複数の画面 (activity) を持つことができます。 ユーザーが他のアプリケーションを呼ぶ度に画面 (activity) が作成され system’s activity manager が application stack に追加し、管理します。また、’Back’ ボタンを押すことで前の Activity に戻ることができます。また必要なくなった Activity は system’s activity manager が削除します。

Activity、Intent、Service、Content Provider など説明だけだと理解しにくいと思いますが、

で実際サンプル ‘数独‘ を作成してみると理解しやすいと思います。

また、iPhone シミュレーターは初期の頃 OpenGL には対応していませんでした。Android エミュレータの場合は問題ないようです。

試しに

のサンプル OpenGLMac OS X 上の VMware FusionUbuntu ja-8.10 仮想マシンを使い、実行した画面をで付けておきます。(VMware Fusion の’仮想マシンのハードウェア設定’/ディスプレイ/3Dグラフィックの高速化にチェックは必要ないようです。)