【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷

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

「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 Solution フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

アイティメディアの提供サービス

ホワイトペーパー(TechTargetジャパン/閲覧には会員登録が必要です)

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  直属上司が海外にいるのエンジニアに見る
【実例】場所に捉われないワークスタイル

  「仮想化工房」のマイスターが選んだのは
VMware、Hyper-V、そしてVirtageだった!

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?