yumulog

北海道の大学教員/情報科学研究者の日記

組込み開発におけるAndroid


大学院のレポートとしてまとめたので、せっかくなのでここにも上げてみる。

はじめに

Androidとは、携帯電話やタブレット端末等の情報端末向けのOSである。googleが開発し、2007年に発表された。Androidでは、アプリケーション開発者向けに、SDK(Software development Kit)が提供される。アプリケーションはJavaで開発し、DalvikというJava仮想マシン上で稼動させる。


携帯電話、タブレット向けに開発したAndroidアプリケーションは、Android Market で公開することができる。ユーザはAndroid Marketを通じて有料あるいは無料のアプリケーションを自由に選んでダウンロードすることができる。Android Marketに似た仕組みとしてAppleの開発したiOS向けアプリケーションを公開するApp Storeというものがある。Android Marketは、App Storeとは異なり、審査なしにアップロード出来る点が開発者にとってのメリットになっている。

組込みにおけるAndroidの利点

Androidは携帯電話やタブレット端末を主眼において開発されたOSであるが、組込み機器向けソフトウェアの世界においても注目される。その理由として

の3つを挙げる。

オープンソースライセンス

Androidソースコードには、Apache2.0というオープンソースライセンスが採用され(※一部、WebkitGPLLinuxカーネルのLGPLを含む)、ライセンス料を払わずに使用できること、ソースコードを自由に改変できることがメリットとなる。また、Apacheライセンスでは改変したソースコードを公開しなくてよいことになっており、セキュリティや独自性も確保できる。

多機能性

今日の組込み機器は、ハードウェア性能の向上と共に要求される機能も高く幅広くなっている。Androidでは、ブラウザ、動画、データベース、電源管理などの機能が用意され、それらはAPIとして提供されているため、ソフトウェア開発の際に簡単に使用することができる。

開発環境

Androidソフトウェアの開発環境として、開発元のgoogleからAndroid SDKが無償で提供される。Android SDKはWindows, Linux, Mac OSのいずれのOSにも対応しており、開発環境が用意しやすい。ソフトウェア開発にはJavaを使用するため開発への敷居が低い*1

まとめ

組込み機器でのAndroidの利用には上記のような利点があり、今後はより促進していくと考えられる。Androidを利用する際に懸念される点としては、アップデートのリリースの早さがある。最初のAndroid SDKがリリースされた2008年9月から現在までのわずか2年半の間に、1.0, 1.1, 1.5, 1.6, 2.0, 2.1, 2.2, 2.3, 3.0という9つものバージョンがリリースされてきた。Androidを採用した携帯電話のベンダーは、アップデートや新機種での採用など、その対応に追われている。大抵の組込み機器では携帯電話よりも製品サイクルが長く、より重大な問題となりうる。Androidのアップデートに追随してソフトウェア開発を行っていくことは開発負荷が高い。一方でひとつのバージョンを長く使い続けると、新機能を取り入れることができない。このトレードオフが開発におけるポイントとなりそうである。


近い将来、PCや携帯電話だけでなく、様々な機器がネットワークに繋がる時代が来ることが予想される。もともと携帯電話向けであるAndroidは3GやWiFiなどの通信の基本機能の他、GPSの位置情報を使うLocation APIなどを備えており、ネットワーク機器開発の重要な役割を担っていくと考えられる。

このエントリ的な意味でのまとめ

いかにもレポート風という当たり障り無い感じになってしまいましたが。そういえば、Android アプリはひとつも作ったことありません。この薄っぺらさは、アプリ書いてないのに意見を書こうとするからなのか。うーん。

*1:本当か?Objective-Cよりはマシなのかもしれないが。つーか、Javaを1行も書いたことないですほんとすいません。