「Android アプリケーションの構築 (基礎編)」

2008年6月10日に行われたGoogle Developer day 2008で行われたJason Chen (ジェイソン チェン)の「Android アプリケーションの構築 (基礎編)」の概要と感想です。

OHAについて

オープンハンドセットアライアンスは、新しいモバイル端末のユーザーエクスペリエンスを提供するために結成されたアライアンスです。

以下のカテゴリーの会社から構成されています。

  • 携帯電話会社 (KDDIDoCoMoなど)
  • 半導体メーカー (IntelやTIなど)
  • 携帯端末メーカー (LGやMotorolaなど)
  • ソフトウェア会社 (eBayやGoogleなど)
  • 商用サポート企業 (AplixやWind Riverなど)

Androidアーキテクチャの各説明

お馴染みのアーキテクチャ図の説明。やはり、まずはこの図からですね。

レイヤ構造のアーキテクチャとなっている。下のレイヤから、以下のような構造となっています。

  • Linux 2.6ベースのカーネルを使用
  • ライブラリ C, C++で書かれたライブラリ群
  • アンドロイドランタイム Java言語でかかれたコードを独自のバーチャルマシンで実行
  • アプリケーションフレームワーク アプリケーションを作成するためのコアライブラリ

アプリケーションの基本

アプリケーションの基本となる概念の説明。

  • アクティビティ: アプリケーションの基本要素
  • タスク: 概念的なアクティビティの集まり。画面遷移のスタック制御に使用。
  • プロセス: Linuxのプロセスに対応。デフォルトではひとつのアプリケーションにひとつのプロセスが割り当てられる。設定によって、別のプロセスを割り当てることも可能
  • パッケージファイル: アプリケーションをパッケージしたもの。

上記の中で、タスクが多少わかりにくい概念ですが、ユーザーがひとつのアクティビティから、別のアプリケーションのアクティビティを起動したときの、画面遷移のスタック情報の塊と理解しました。

開発のツールチェーン

Openについて

個人的には、今回の説明の中で、一番重要なポイントだと感じた、オープン性の三つの視点の説明です。

業界
  • アパッチライセンスによるオープンソースのソフトウェアスタック
  • ソースコードは、最初の製品がリリースされた後に公開される
  • 誰でもシステムのイメージを構築可能
ユーザー
  • 自分で自分のユーザー体験をコントロール可能
  • 自分で何をインストールするかをコントロール可能
  • 自分でデフォルトの設定を可能
開発者
  • アプリケーションを開発するのに許可が不要
  • フレームワークAPIはすべて公開されている。許可が必要なAPIがない。

その他

このあたりから、ちょっと、内容が頭に入ってこなくなってしまいました。

  • インテントによるアプリケーション間の連携について
  • セキュリティについて
  • 2007年11月のアナウンス以降のトピックの説明