開発者、ユーザーにとってのメリットとは?
「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などを含む。
アプリケーションのランタイム「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そのものも概念から変えられる
「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はオープンソース化したばかり。直接の協力だけでなく、アプリケーションを作成するなど皆さんに協力していただきながら今後も育てていきたい」と話し、講演を結んだ。
関連リンク
関連記事
情報をお寄せください:
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
キャリアアップ
- - PR -
- - PR -
転職/派遣情報を探す
「ITmedia マーケティング」新着記事
「TikTok禁止」は結局、誰得? どうするトランプ氏――2025年のSNS大予測(TikTok編)
米国での存続を巡る議論が続く一方で、アプリ内ショッピングやAI機能の拡大など、TikTok...
ネットの口コミを参考に8割超が商品を購入 最も参考にした口コミの掲載先は?
ホットリンクは、口コミ投稿の経験や購買への影響を調査した結果を発表した。
「生成AIの普及でSEOはオワコン」説は本当か?
生成AIの普及によりSEOが「オワコン」化するという言説を頻繁に耳にするようになりました...