開発者、ユーザーにとってのメリットとは?

「Androidは単なるOSではない」、グーグル担当者が説明

2008/11/28

 「よく誤解されるが、AndroidはWindowsやLinuxと同じ意味でのOSと思わないでほしい。OSにはLinuxを利用しているが、Androidが組み込み用に提供しているのはOS、フレームワーク、サービスで、それらを総称してわれわれはAndroidと呼んでいる」

 11月28日に東京・目黒で行われたモバイル関連技術のイベント「Tech-mobi2008」で講演したグーグルの門間純一氏は、2008年9月末にオープンソースとして公開されたばかりのAndroidについて、その特徴とメリットを改めて説明した。

マルチプロセスモデルを採用するワケ

 AndroidはLinuxカーネルの上にライブラリ、ランタイム、アプリケーションフレームワークの3層が乗る。カーネルの上にはWebKit、SQLite、OpenGL ES、FreeTypeなどOSSのライブラリに加え、グーグルが実装した基本ライブラリのlibcなどを含む。

stack.jpg Androidのソフトウェア構成

 アプリケーションのランタイム「Dalvik VM」は、開発言語にJava言語を使うためJava VMの一種のように見られることが多いが、「Java VMとは違う」(門間氏)という。Java VMはスタックマシン型のVMである一方、DalvikはARMアーキテクチャに適しており、より少ないメモリ量で稼働し、バイトコードも小さくなるレジスタマシン型のVMだという。

 また、従来の日本の典型的な携帯電話端末と異なるのは、アプリケーションを個別に動かすマルチプロセスのモデルを採用していることだという。「これはLinuxでいうプロセスそのもの」(同氏)。例えば電話帳アプリを立ち上げ、また別のアプリを立ち上げると、それぞれVMが起動する。こうしたアプローチを採用した理由として、アプリのクラッシュ時にほかのアプリの巻き添えを防ぐという意味のほかに、セキュリティ上の理由がある。「プロセスアイソレーションを使っている。initやZygoteといった一部例外的にroot権限で動くものをのぞいて、ほかのプロセスをのぞき見できなくなっている」。各アプリケーションには個別にユーザーIDが割り振られ、ファイルシステム上ではパーミッションによる分離も行っているという。

 アプリケーション間でのデータの共有はローカルのデータベースを使うほかにも、アプリケーションフレームワーク層が提供する独自のメッセージシステムが使える。Androidアプリケーションを構成する要素は、「Activity」「IntentReciever」「Service」「ContentProvider」と大きく4つあるといい、このうちIntentRecieverやContentProviderが、「Androidらしい」ユニークなインターフェイスを各アプリケーションに提供する。

 IntentRecieverはアラームやSMSメッセージ受信など、何かのイベントがあったとき、その通知を受けて何かをしたいアプリケーションが利用する“システム内ブロードキャスト”のシステムだ。例えばSMS受信に対して何らかの処理をしたいアプリケーションは起動時にシステムに登録することで、実際にSMSメッセージが来たときに通達を受け取れる。「これまでケータイでは、こうした仕組みはあまりなかった」(門間氏)。送受信されるメッセージは“インテント”(intent)と呼ばれ、これは自分で作ってシステム上でブロードキャストとして送り出すこともできる。

 もう1つユニークな仕組みがContentProviderだ。これは電話帳アプリや写真アルバムのように自分が保持するデータを、ほかのアップリケーションに対して公開して、利用してもらうときに使う仕組み。インターフェイスをシステム上で公開しておくことで、ほかのアプリケーションはAPI経由でクエリを投げたり、データの削除、更新、追加などができる。

UIそのものも概念から変えられる

android01.jpg グーグル ソフトウェアエンジニア 門間純一氏

 「Activity」はウィンドウやUIを持つすべてのアプリケーションのベースとなるクラスで、アプリケーションの生成、可視化など状態遷移のライフサイクルを管理する。「Service」はUIを持たないアプリケーションが継承するスーパークラスだ。

 門間氏はAndroidの大きな特徴として「日本の携帯電話のように2年サイクルで買い替えるような場合でも、ユーザーは自分の好きなようにユーザーエクスペリエンスを変えられる」。配色やデザインを変えるだけでなく、「UIそのものの概念から変えられる。使っているものが気に入らなければユーザーは新しいUIをダウンロードして使える」。開発者はWidgetクラスで提供される多くのView、例えばTextViewなどを継承してオーバーライドすることで自由にルック&フィールを変えられるのだという。

開発者、メーカー、ユーザーのそれぞれのメリット

 門間氏は改めてAndroidがもたらすメリットを、端末メーカー、ユーザー、開発者のそれぞれについて解説した。

 端末メーカーにとってAndroid採用は開発コスト削減というメリットが大きい。現在、新たに端末を開発するとなると数十億円、数百億円の投資となっているが、その大部分はソフトウェア開発と言われている。Androidは組み込みに適したオープンソースライセンス「Apache 2.0」を採用しているため、端末メーカーには利用しやすい。「耐久テスト、品質テストなどは必要だが、初期開発コストを削減できる」(門間氏)。

 ユーザーにとってAndroidのメリットは、自由にアプリケーションを導入できることだ。「Androidが提供するセキュリティの範囲で、ユーザーは自己責任で好きなアプリケーションをインストールできる。われわれが提供する配信プラットフォーム(Android Market)を使っていただいていいし、誰かが立ち上げたポータルで配信してもらっても構わない。われわれはアプリケーションについて何の制約も課さない」(門間氏)。

 開発者にとってはグローバル市場に対応したアプリケーション構築をやりやすくなるメリットがあるという。「これまでモバイル市場では世界共通インフラはなかった。Javaもフラグメンテーションがあった」。

 Windowsのようなデスクトップ環境でも、iPhoneのようなモバイル向けでも、ソフトウェアプラットフォームで問題になるのがAPIのオープン性や透明性だ。この点について門間氏は「特定の何かを指してこういうことを言うわけではないが、フレームワークAPIには非公開のものや特権的なAPIは一切ない。特定の企業だけが使えるAPIはなく、われわれはすべてオープンにしている」。

  グーグルはAndroidによってPC業界やWeb業界で一般化したインフラのオープン化、標準化を推し進めたい考えだという。門間氏は「まだAndroidはオープンソース化したばかり。直接の協力だけでなく、アプリケーションを作成するなど皆さんに協力していただきながら今後も育てていきたい」と話し、講演を結んだ。

関連リンク

(@IT 西村賢)

情報をお寄せください:

Java Agile フォーラム 新着記事

キャリアアップ

- PR -

注目のテーマ

- PR -
ソリューションFLASH

「ITmedia マーケティング」新着記事

過半数の社員はデジタルシフトしていない企業で働きたくない――オプトホールディング調査
企業におけるデジタルシフトの取り組み状況と、経営者と会社員それぞれのデジタルシフト...

音声検索のランキングに影響する3つの要素――SEMrush調査
音声検索のランキングに強い影響を与えている要素についての分析です。

電通と電通デジタル、自動車販売店での試乗体験を支援する「AI試乗ソリューション」を提供
自動車販売店での試乗にAIが「同乗」。試乗に対する心理的ハードルを軽減するなどのメリ...