メディア

第7回 Androidの高速起動とセキュリティ対策Embedded Android for Beginners(Android基礎講座)

Androidの課題はたくさんあります。特に重要なものを挙げるとすると、起動時間の長さとセキュリティでしょう。起動時間を短くするには高速化ソリューションが必要です。起動時間は、ユーザーの目に見えている最大の問題であり、機器の全体的な印象まで損ねる可能性がありますから、対策を急がなければなりません。セキュリティを高めるには仮想化ソリューションが役立ちます。

» 2011年02月10日 11時00分 公開

「Embedded Android for Beginners(Android基礎講座)」連載一覧

 前回はAndroidの驚異的な成長と可能性を紹介しました。Androidは破竹の勢いで成長し、拡大を続けています。実際、他のどのようなソフトウエアプラットフォームも、Androidに対抗する決定的な方策を見つけ出せていないように見えます。

 例えばAndroidであれば、ユーザーが多いGoogleアプリケーションのバージョンアップを早期に受けられます。エンドユーザーの視点から見て十分に魅力的であり、ユーザーが集まるプラットフォームには開発者も集まるという循環が本格的に加速しつつあります。

 しかし、Androidは順風満帆という調子で進んできたわけではなく、むしろ常に逆風の中にあったと言えます。今回は、Androidがこれから解決しなければいけない、いわゆる「積み残し」の課題について解説します。

「運用でカバーする」現代の家電製品

 本連載をお読みの方のほとんどが「運用でカバーする」という表現に良い印象をお持ちではないでしょう。それもそのはず、ご存知の通り、本来システムが備えているべき機能が欠けていたり、制約があったりしたとき、運用側(ユーザー)がそのような部分を肩代わりするような状況を指した表現です。最近、多くの家電製品において、消費者が運用でカバーさせられている場面を目にします。

 代表的な例はBlu-ray Discプレーヤーです。Blu-ray DiscプレーヤーのOSにはLinuxが多く採用されています。ところがLinuxの起動には時間がかかります。ブランド総合研究所が2010年10月に行った調査によると、消費者がデジタル家電購入後に最もストレスを感じる項目が起動(終了)時間であったそうです。つまり、Linuxの起動時間は製品にマイナスイメージを与える存在になってしまっているのです。

 この調査報告書にはさらに3点の興味深い結果が掲載されていました。1点目は、購入時に気に留めていなかった項目に不満が集まっていることです。画質や記録容量、同時録画などよく検討する項目の性能が仮に良くないものであったとしても、検討の結果、納得して購入しているため、利用時には不満を感じません。

 2点目は、Blu-ray Discプレーヤーの操作ボタン反応の遅さやディスクトレーの開閉反応の遅さよりも、起動(終了)時間についての不満の方が多いことです。これは少し意外でしたが、逆に言うと、ユーザーにはデジタル家電の電源を切っておきたいという強い欲求があるのでしょう。おそらく、消費電力や安全性についての懸念からくるものと推察します。電源を切っておきたくても、起動時間が長いために不便になってしまう、そこで、致し方なく電源を入れたままにしておくという、まさに運用でのカバーを強いられるのです。Linuxの代わりにAndroidを使うと、起動時間はざっと倍になり、ものによっては1分以上待たされることもあります。この問題の技術的な取り組みについて、後ほど紹介します。

 3点目は機能が多過ぎることでした。携帯電話機の場合、最も不満が集まったのは多機能過ぎることであり、次いで二次電池の持続時間が短いことが挙げられています。二次電池については電源を入れたままにしておきたい携帯型機器という性格がよく反映された結果でした。

 Blu-ray Discプレーヤーやテレビ受像機の機能はずいぶん増えました。ボタンだらけのリモコンが増えていくのには閉口しますが、それでも、若者を主たるターゲット層とし、アプリケーションプラットフォームを開放した携帯電話機と比べればまだまだ可愛いものでしょう。しかし、「Google TV」が登場し、Googleの思惑以上にテレビのプラットフォームにAndroidを採用する動きが起こっています。今後、多機能過ぎるという苦情がテレビの場合にも上位に登場するようになると予想できます。

 多くのユーザーにAndroidを使ってほしいと思う反面、何でも先取りして深く楽しむ若者から、割合としては多数を占める主婦などのライトユーザーまで、性格の異なるユーザー層に向けて1つのAndroidでは対応しきれないというのが現実です。本連載の第5回でNTT東日本のAndroid端末である「光iフレーム」を紹介しましたが、Androidの互換性にとらわれず、特にITに不得手な層が受け入れやすいユーザーインタフェースを構築するような試みが、大多数のユーザーを満遍なく満足させる上で重要です。

機器の印象を良くする高速起動技術

 Androidの課題はたくさんあります。特に重要なものを挙げるとすると、起動時間の長さとセキュリティでしょう。

ALT 図1 Nexus Sが起動する様子 (左)電源投入直後の様子。静止画が表示されている。(右)しばらく経ってから、静止画に動きがつく。

 起動時間を短くするには高速化ソリューションが必要です。起動時間は、ユーザーの目に見えている最大の問題であり、機器の全体的な印象まで損ねる可能性がありますから、対策を急がなければなりません。セキュリティを高めるには仮想化ソリューションが役立ちます。仮想化については本連載の第4回で紹介しました。セキュリティ以外にもAndroidのさまざまな弱点をカバーできることが明らかになっています。

 Android携帯電話機の起動の様子をいらいらしながら眺めているとき、最初に静止画が表示され、続いてその画像が動き出し、Androidのメニュー画面に遷移するのが確認できるでしょう。静止画はLinuxの起動時に表示されるいわゆるペンギンマークに相当し、その後、Androidの上位レイヤーが起動している最中に動く画像が表示されます(図1)。

ALT 図2 RTOSと主要サービスタスクを組み合わせて高速起動を実現する方式 1秒以内で起動するシステムを設計できるが、実装は難しい。
ALT 図3 Linuxの高速化ソリューションを利用した例 Linux自体は数秒で起動するが、Androidの起動時間は変わらない。
ALT 図4 Androidの高速化ソリューションを利用した例 実行時のメモリイメージをハイバネーション技術で展開する。

 Androidも含めたLinuxベースのシステムに対して、3つのタイプの高速化技術が考案されています。1つ目は、Androidの高速起動を諦め、リアルタイムOS(RTOS)と主要サービスを組み合わせることで、サービス開始時間を短縮するタイプの高速化です(図2)。最適化の余地が最も大きく、例えば1秒以内といった超高速起動が可能になります。非常に短い起動時間を売りものにしている家電製品は、まずこの方式を採用していると思って差し支えありません。性能面では魅力的ですが、実装が難しいという難点があります。主要サービスをリアルタイムタスクとして実装しなければなりません。Androidも1つのリアルタイムタスクとして起動しますが、2つのタスクが互いに保護されていないので、悪影響を及ぼしたり、保護すべき情報が漏れるといった心配があります。

 2つ目は、Linuxの高速起動ソリューションを利用したものです(図3)。Linuxのディストリビュータを中心に多数のベンダーがこのような技術を提供しています。この方式ではLinuxの起動部分は数秒に抑えられますが、当然のことながらAndroidの上位レイヤーは最適化できません。すなわち、元の起動時間の半分程度が最適化の限界になります。

 3つ目がAndroid全体の起動を高速化するというソリューションです(図4)。今のところ弊社(イーフロー)を含め数社がこのソリューションを提供しています。方式には各社ごとに違いがあるものの、あらかじめ実行時のメモリイメージを取得しておき、電源投入時にハイバネーションを部分的に適用し、実行開始までこぎ着け、あとは展開していないメモリイメージを必要に応じてコピーするというのが基本的な手順になります。

仮想化がAndroidを救う

 仮想化はAndroidの脆弱(ぜいじゃく)性にまつわるさまざまな問題を解決する究極のソリューションです。昨年末、Googleのセキュリティ担当者が、「『Nexus S』のルート権限を獲得できることは脆弱性ではない」とコメントしました。Nexus Sとは、グーグルがサムスン電子と共同開発した新型スマートフォンです。カスタムOSをインストールしたい熱心なユーザーのためにわざわざ提供している機能なので、破られたということではないというのです。Nexus Sをそのような「熱心なユーザー」にのみ販売し、他の端末ではルート権限が獲得できないのであればこのような説明でも納得できますが、実際は、一般ユーザーがほとんどであり、Nexus Sに限らずおよそ全てのAndroid端末でルート権限は取られ放題なのです。

 ルート権限が奪われると、パスワードなどの個人情報が盗まれたり、ソフトウエアモジュールがコピーされるといった被害が起こります。特に、電子マネーなどに関係した情報やソフトウエアが盗まれると、ネットショッピング分野そのものが脅かされます。

ALT 図5 Androidの高速化ソリューションと仮想化を組み合せた例 セキュアサービスとAndroidを分離でき、起動時間も短くなる。

 Androidユーザーの誰もが、最新版に触れたいという強い欲求を持っています。また、Androidは自由にカスタマイズ可能なので、その段階で新しいセキュリティホールが作られる可能性も十分に考えられます。現実問題として、全てのAndroid端末をセキュアに保つことは不可能なのです。

 そこで、仮想化を施し、複数の仮想マシンを用意して、1つの端末で複数のシステムを動作させます。例えば、Androidを動かす一方で、セキュアなソフトウエアや情報を扱うためのシステムを隣で動作させることが可能になります(図5)。仮想化ソフトウエアが複数のシステムを互いに干渉できないように制御し、定められた方法でのみ情報のやりとりを許すよう動作するため、Android側の品質に関係なくセキュリティを保つことが可能になります。

 仮想化は新しい技術ではありませんが、組み込み機器への適用はやっと実用段階に差し掛かったところです。高速化にしろ仮想化にしろ、特に組み込み機器の場合はシステムリソースの制約のために機器ごとの個別対応が必要です。早めの対策が求められます。

コラム:サムスンのCES展示に見るAndroidの影響力

 世界最大のデジタル家電展示会であるCES(Consumer Electronics Show)が、今年も米ラスベガスで開催されました。2009年は「Yahoo! Widget」、2010年は「3Dテレビ」が会場を席巻し話題となりましたが、今年はそのような大きな目玉技術はなく、裸眼3D技術やSkypeテレビ、エコをうたう技術など、既存のさまざまな技術やアイデアを深堀りしたものが多かったように思います。

ALT 図A-1 テレビ電話とAndroid (左)従来のテレビ電話製品。Linux+ウインドウシステムというレガシーな構成で作られている。10年あまりこのような時代が続いた。(右)Androidベースの構成に移行した新製品。メンテナンス性や付加価値の観点から、このような端末のAndroidへの移行はもはや組み込み業界の常識となった。

 そのような中、Androidについては今年は格段に浸透度が深まった印象があります。まず、Linuxプラットフォームで製品を作っていたメーカーの多くがAndroidへ切り替えました(図A-1)。筆者のようにAndroid搭載端末を探して会場を歩き回っている人も数多く見受けられました。特に目玉と言える技術がない中で、Androidは主役級の位置にあったと思います。

ALT 図A-2 Android 3.0を搭載した東芝のタブレット端末 搭載とはいっても、Androidのマスコットキャラクターが表示されているだけであり、3.0らしさを目にすることはできなかった。透明な筒でカバーされており操作はできなかったが、Android 3.0搭載端末を探し求めて訪れる人が絶えなかった。

 展示スタッフと話す中で気が付いたことが1つあります。来訪者が全般にAndroidのバージョンや互換性について非常に気にしているようでした(図A-2)。Androidの最新版に注目が集まるのは喜ばしいことのようにも思えますが、実は、少し残念なことでもあります。というのも、これは多くの人がAndroidをWindowsなどのOSと比較していることを意味しているからです。

 このため、Androidの新バージョンが発表されてから、旧バージョンを搭載した端末の売れ行きが極端に下がることが考えられます。そして、新バージョンにすぐには追随できないメーカーが脱落していき、結果としてAndroid端末の選択肢を狭めることにもなりかねません。

 互換性についても、Android端末を目指して作り上げたわけではない光iフレームのような端末が、Androidのリファレンスと違うという理由で敬遠されるというのは筋違いです。

 Googleが公開したAndroidのリファレンス自体が、製品レベルのOSであると見られてしまう傾向はしばらく続くでしょう。Androidは組み込みOSであり、バージョンや互換性に対するアプローチはWindowsとは異なります。Androidを活用しようという動きが小さくならないことを期待しています。

サムスン電子はGALAXY Tabに集中

 数ある展示の中で、やはり家電業界の覇者であるサムスン電子に学ぶべき点がありました。まず、広大なブースのありとあらゆる展示で、「GALAXY Tab」を使っていました。この端末にかけるサムスン電子の期待がうかがえましたし、Android関係者としては誇らしく思いました。単にGALAXY Tabを露出するだけではなく、GALAXY Tabから関心がそれるような展示がないところも注目すべき点でした。2010年のCESでは電子ブックが展示されており、Googleと一緒に開発しているのだと説明員は自慢していましたが、今回、そのようなGALAXY Tabと競合する端末が一切展示されていませんでした。

 サムスン電子は「bada」というソフトウエアプラットフォームを持っており、携帯型機器の世界最大の展示会「Mobile World Congress 2010」(MWC)ではサムスンブースはもとよりMWCの会場全体がbada一色と言ってよいくらいの激しい宣伝をしていましたが、今回のCESでは、ブースをくまなく探しまわっても、badaの展示を見付けられませんでした。このような思い切った選択と集中が同社を世界のサムスンたらしめたのだと思い知らされました。

 MP3プレーヤーではアップルの「iPod」のラインアップをほぼ踏襲したり、いわゆるソーシャルフィードを「Social Hub」、アップルの「iTunes Store」のようなサービスを「Media Hub」と称してさも新しいサービスのように見せるなど、随所に抜かりのなさを感じました。

 ともあれ、家電業界に君臨するサムスン電子がこれほどまでに力を入れているという事実は、Androidの将来性を如実に語っています。本年もAndroidをめぐる大事件が幾つも起こり、大きな展開があると思われます、そのスピードに置いていかれないようにする必要があるでしょう。

「Embedded Android for Beginners(Android基礎講座)」連載一覧

著者プロフィール

金山二郎(かなやま じろう)氏

株式会社イーフロー統括部長。Java黎明(れいめい)期から組み込みJavaを専門に活動している。10年以上の経験に基づく技術とアイデアを、最近はAndroidプログラムの開発で活用している。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.