このほかのAndroid 3.2での変更点は、Honeycombに最適化されていない固定画面サイズのアプリを大画面に拡大表示するズームモード、そしてアプリがSDカードと直接データの読み書きが行える機能が搭載される。非常に地味ではあるが、よりOSが完成に近付いているということがわかる。

周辺機器/USBサポートとOpen Accessory API

本項では先ほども少し紹介したが、Android 3.1で新たに対応した周辺機器/USBサポートとOpen Accessory APIについて触れていく。これが意味するところを単純に説明すれば、USBなどを介して周辺機器のAndroidデバイスへの接続が可能になったということだ。端的にいえばそれだけなのだが、これはAndroidにとって非常に大きな意味を持つ。なぜなら、これまでUSB経由でPC等に接続してデータの送受信やデバッグなど周辺機器として利用していたAndroidデバイスが、この機能により「中央の制御装置」として動作させることが可能になるからだ。つまりPCなしでの独立動作が可能となり、さまざまな周辺機器をAndroidデバイスに直接接続することが可能になる。ソフトウェア開発などの視点を離れ、1人のAndroidユーザーとして考えれば、ほとんどの作業はAndroid上で完結することになる。現在はまだドライバ等の周辺機器サポート含めて不完全だが、もし今後拡張が行われ続けるのであれば、これまでのPCならではの優位なポイントが失われることになる。そうした意味で、Androidの立ち位置を180度変えることになる非常に興味深い機能だといえる。ここではAndroidの周辺機器サポートの経緯を振り返りつつ、これら新API群について簡単に説明する。

AndroidにおけるUSBホストモード

USBは「ホスト(Host)」「周辺機器(Peripheral)」という2つのモードを持ち、1つのホストに対して複数の周辺機器がツリー状(あるいはスター型)がぶら下がるトポロジー構造をしている。IEEE 1394 / FireWireなどの個々のデバイスがホストとして独立している規格とは異なり、あくまでホストと周辺機器が対になった構成である必要がある。通常、PCなどのデバイスでは複数のUSBホストコントローラを持ち、USBポートを介して接続された周辺機器に対して電力を供給しつつ、データ通信用のパイプを確立する。マスター/スレーブとも呼ばれる構造だが、PCに接続する周辺機器はこのような形で従属デバイスとしてPCにぶら下がる形で存在することになる。

ここで問題なのはAndroidデバイスの位置付けだ。通常、AndroidデバイスはマスストレージモードあるいはデバッグのためにUSB経由でPCに接続する場合、「周辺機器」としてPCのホストコントローラにぶら下がる形となる。ところがAndroidに他のUSB機器を接続しようとした場合、双方が「周辺機器」となるため「ホスト」が存在しない。これがAndroidデバイスにUSB経由で直接周辺機器を接続できない理由だ。ところが、USBには「USB On-The-Go」(通称: USB OTG)という規格が存在し、通常は「周辺機器」として動作するデバイスのUSBポートを一時的に「ホスト」として動作させ、周辺機器の接続を可能にするエミュレーション機能の利用が可能だ。例を挙げれば、デジタルカメラや携帯電話にUSBストレージやキーボードを接続し、これらデバイスとの入出力を可能にする用途がある。

実際、AndroidデバイスでのUSB OTGのサポートは古くから議論されていたようで、開発者とユーザーともに要望が多かった機能であることは間違いない。非公式ではあるものの、昨年2010年初頭にはOTGの利用の可否がDroidなど一部デバイスでも確認されており、OSそのものでのサポートも時間の問題だと考えられていたようだ。だが実用性や搭載ポート数などの面からみて、Googleがタブレットで初めて本格サポートに踏み切ったのではないかというのが筆者の考えだ。USB OTGのホストモードはAndroidのAPI Level 12以上(つまりAndroid 3.1以降)でサポートされるが、オプションのアドオンライブラリでAndroid 2.3.4 (API Level 10)でもサポートが行われるという。つまり、スマートフォン向けにOTGのサポートが行われるのはIce Cream Sandwich以降ということになる。実際のところ、Android 3.1でもOTGをサポートしたのみでドライバ(アプリ)の整備はこれからのため、この機能が本格的に利用できるようになるのはIce Cream Sandwichよりもさらに後の世代になる可能性もある。

USBホストモードで動作するAndroid 3.1デバイス。対応するアプリの呼び出し許可を求めるダイアログが表示される

ただし、多くのユーザーがAndroidデバイスにUSBマウスを挿入してすぐに利用できるケースを報告していることから、標準的なデバイスは特に工夫なしでそのまま利用できるようだ。あとはアプリ側の対応しだいだと思われ、その点で今後半年から1年先が楽しみだ。