10年ほど前、組み込み機器がまだ今ほど高性能でなかったころは、搭載するソフトウエアコンポーネントの種類が限られていたため、関係する企業の数も少なく、数社が作った小さな輪の中で製品を開発できました。しかし、特に携帯電話機は、どんどん多機能化していき、必然的に統合に必要なコストと期間が爆発的に増大してしまいました。そこで、あらかじめ統合されたソフトウエアコンポーネントの組み合わせを1つの企業から購入する「ワンストップソリューション」が求められるようになりました。
→「Embedded Android for Beginners(Android基礎講座)」連載一覧
連載第1回と第2回は、組み込み機器にAndroidを適用できる範囲や、Androidの導入を検討する際に必要となる技術スキルなどを駆け足で紹介しました。今回からは、もう少し的を絞り、掘り下げた内容の解説を行っていきたいと思います。まずはAndroidを理解する下地として、Android登場に至るまでの組み込みソフトウエア開発の背景を振り返ります。
Androidは技術的な側面だけではなく、ビジネスの側面でも他のソフトウエアプラットフォームとは異なります。過去の組み込み機器向けソフトウエアプラットフォームの背景を知ることで正しい理解が進みます。
「iPhone」に遅れること1年、Androidを搭載した携帯電話機が、2007年末に発表されました。先行したiPhoneは驚異的な売り上げを見せましたが、Androidも大きく巻き返し、グーグルのCEOを務めるEric Schmidt氏が語ったところによると、今や1日に20万台のAndroid携帯電話機が出荷されているそうです。
そして米国の調査機関NPDの2010年8月4日の発表によると、Androidがついに米国におけるスマートフォンOSのシェア1位に躍り出ました。米国ではRIMの「BlackBerry」に人気があり、2007年1月のiPhone発表時からスマートフォンOSのシェア1位の座を守り続けていましたが、iPhoneを追い抜いたAndroidが猛烈な勢いで抜き去っていった格好です。図1はニールセンの調査結果です。こちらは企業向け販売を含めているために、まだBlackBerryが首位にありますが、それでも首位交代は目前の状態です。今後、Android携帯電話機を手掛けるメーカーはますます増えますから、しばらくはAndroidの独走状態が続くと考えられます。
Androidを搭載する携帯電話機が増え続けている現在ではもはやイメージしにくいかもしれませんが、かつての携帯電話機の開発では、各種のソフトウエアコンポーネントを別々の企業から購入し、手元で統合した後に製品に仕上げていました(図2)。
ソフトウエアコンポーネントを供給する会社はボードメーカーと契約し、評価ボードを入手して自社製品をポーティングします。しかし、それだけでは不十分で、関係各社が集まって会議を重ね、ソフトウエアコンポーネント間の決まりごとなどを定める必要がありました。そして、自社ソフトウエアを決められた通りに改造し、他社のソフトウエアと正しく連携して動作するかを確認し、問題があれば共同でデバッグするといった道のりを経て、製品が完成します。
10年ほど前、組み込み機器がまだ今ほど高性能でなかったころは、搭載するソフトウエアコンポーネントの種類が限られていたため、関係する企業の数も少なく、数社が作った小さな輪の中で製品を開発できました。しかし、特に携帯電話機は、どんどん多機能化していき、必然的に統合に必要なコストと期間が爆発的に増大してしまいました。
そこで、あらかじめ統合されたソフトウエアコンポーネントの組み合わせを1つの企業から購入する「ワンストップソリューション」が求められるようになりました。
ワンストップソリューションの中で普及が進んだものとして、「Linux」や「SymbianOS」、「Windows Mobile」などが挙げられます。オープンソースとして公開されたLinuxをそのまま使うと、組み込み機器の性能が上がらないといった問題がありました。そこで、リネオソリューションズやモンタビスタ ソフトウエアといったディストリビュータが製品利用に耐えうるLinuxベースのプラットフォームを提供し始めました。
Symbian OSはノキアの携帯電話機に採用され、スマートフォンのシェアでは一時、世界一となりました。Windows MobileもWindows人気の中で一定のシェアを維持しました。
ワンストップソリューションと似たアプローチの例もあります。NTTドコモがLinuxとSymbian OSを採用した例です。NTTドコモブランドの携帯電話機メーカーのソフトウエアプラットフォームをその2つにまとめ、トータルのコストを抑えました。
ワンストップソリューションへの移行は、最初からうまくいったわけではありません。ふたを開けてみるとまだまだ必要なソフトウエアコンポーネントが不足していたからです。ある通信事業者は、採用したワンストップソリューションについて、展示会セミナーの席上で「最初は本当に何もなくて驚いた。ミドルウエアより上の層はわれわれがかなりの部分を作り上げ、当社の内部にとどめておいても仕方がないから、ソフトウエアを寄付した」とこぼしていたほどです。
Androidはこのようなワンストップソリューションの1つです。グーグルが用意した豊富なサービスはもちろんのこと、PCで多用されつつもiPhoneでは採用されていない「Adobe Flash」などの技術も利用可能です。
しかし、PCと違い、組み込み機器では、オープンソースのソフトウエアプラットフォームをそのままでは適用できません。Androidに限りませんが、チップセットごとにポーティングやデバイスドライバソフトウエアの準備が必要になります。
チップセットベンダーにとって、Androidが動作することは自社製品の付加価値になりますから、例えば韓国のTelechipsなどはAndroidの自社製品対応に積極的に取り組んでいます(図3)。
組み込み機器を製品化する際、どのチップセットを用いるかというのは重要な選択です。Androidをサポートしていないチップセットを選んでしまうと、Androidのポーティングからはじめなければなりません。新しいバージョンのAndroidが動作するのか、必要な処理性能が実現できるのか、ハードウエアが備えている新規の機能が動作するのかについて、特に対応を確認するべきです。
金山二郎(かなやま じろう)氏
株式会社イーフロー統括部長。Java黎明(れいめい)期から組み込みJavaを専門に活動している。10年以上の経験に基づく技術とアイデアを、最近はAndroidプログラムの開発で活用している。
Copyright © ITmedia, Inc. All Rights Reserved.