Brilloから「Android Things」へ、開発者向けプレビューをリリース
12月13日に、GoogleがIoTデバイス向けの新OS「Android Things」を正式発表しました。
Android Thingsは、2015年のGoogle I/Oで発表されたIoTデバイス向けOSの「Brillo」をリブランディングしたものです。これは、AndroidをダウンサイジングしたIoT向けのOSで、2014年にGoogleが32億ドルで買収した、Nestのエンジニアが中心になって開発を進めています。
現時点のAndroid Thingsは、いくつかの汎用ボードコンピュータで動作します。サポートしているボードコンピュータは、以下のサイトで公開されています。
現時点では、Intel Edison、NXP Pico i.MX6UL、Raspberry Pi 3用のシステムイメージがダウンロード可能になっているので、これらでAndroid Thingsを動かせます。
汎用のボードコンピュータは、ノウハウがたくさんネット上に公開されており、トラブルが発生した時の知識共有も容易です。また、ハードウェアは半完成品のようなものなので、プロトタイプの開発段階では、ハードウェアは検証に必要なインターフェースを追加するにとどめて、ソフトウェアの開発やユーザエクスペリエンスの検証に集中できます。
近年のIoTデバイスは、ソフトウェアで制御する範囲が広がっており、開発期間もこれに関わる比重が高くなっています。開発に携わるエンジニアは、幅広い知識と豊かな経験を持つフルスタックエンジニアの参画が必須ですが、Android Thingsでいくぶんかは平準化されて、本来集中すべきところ、たとえば、クラウドサービスとの連携部分やスマホとの連携部分の開発に注力できます。
アプリ開発で得た知識が活用できる
Androidベースということもあり、Androidアプリで得た開発知識を活かせるところもこれまでのIoTデバイスとは大きく異なります。
今回リリースされたのは、SDKのPreview 1なので情報が出そろっていない感はありますが、以下で公開されているOverviewを見れば、何ができるのかが理解できます。
IoTデバイスは操作画面を持たないイメージですが、Android Thingsでは、Androidアプリと同様のGUIをサポートしています。ただし、Androidにあるステータスバーやナビゲーションバーはないので、画面持つデバイスは全画面アプリと同じです。
通知はサポートしておらず、これに関連するAPIを呼び出すことはできません。
通知が使えれば、これを読み上げて音声で返事ができるIoTデバイスなどが考えられます。
他には、以下はサポートしていません。用途を考えれば問題ないものばかりです。
- CalendarContract
- ContactsContract
- DocumentsContract
- DownloadManager
- MediaStore
- Settings
- Telephony
- UserDictionary
- VoicemailContract
Android Thingsでは、ネットワークを含む入出力が中心となり、Googleのサービスとも連携するようなデバイスを想定しているように見えます。入出力は、ネットワーク系だけではなく、周辺機器用のI/O、GPIOやPWM、I2C、SPI、UARTにアクセスできるPeripheral I/O APIも用意されているので、幅広く既存のデバイスと連携して動作もできます。
今年は、これが最終回です。よいお年をお迎えください。また来年。