1|2Androidの基本構成と組み込みデバイスAndroidの基本構成(図2)についての情報は、Webや専門書などで詳しく触れられているので、本稿では割愛するが、基本構成の中には組み込みデバイスとして必要な機能が多く含まれている。Android標準のアプリケーションであるホーム画面や連絡先などは非携帯電話での必要性は低い。Androidのホーム画面しかし、アプリケーション・フレームワークから下の部分には、GUIを持つOSプラットフォームとして、携帯電話以外の組み込みデバイスでも利用可能な重要なモジュールが存在している。出典:富士通ソフトウェアテクノロジーズAndroidの拡張Androidは、携帯電話向けのプラットフォームとして非常に多くの機能を有しているが、組み込みデバイスにおけるさまざまなカテゴリのデバイスに搭載するには不足している機能もある。ある意味、Androidはクライアントとしての機能は多く持っているが、サーバ機能はほとんど搭載されていない。CEや組み込みLinuxは、HTTPサーバやFTPサーバなどのサーバ機能も搭載可能であり、それらがサービス・デーモンといった形で実行され、アプリケーションとの通信方法も確立されている。最近のデジタル家電デバイスによくあるホームネットワーク機能を実現する「DLNA」プロトコルなどもAndroidには実装されていない。これらは既存の資産として存在するが、多くはJava言語で記載されておらず、C/C++での実装が多い。「DalvikVM」(注)上では処理し切れないようなパフォーマンスを必要とする処理などについても、既存のLinux資産としては多く存在する。※注:小メモリ、低速CPU環境でも効率的に動作するバーチャルマシン。Interface(JNI)」によるネイティブコードとの連携が提供されている(図3)。Kit)」が標準でネイティブコードとの連携をサポートしている。NDKには以下のような機能が提供されている。C/C++で記述されたソースコードからAndroid用のネイティブコードライブラリを作成するためのツールキット群ネイティブコードを含むアプリケーションを配布する方法ネイティブのシステムヘッダ・ライブラリとドキュメントとサンプルコード(将来のAndroidでも互換性を保証するとのこと)NDKで今回提供されるライブラリについては、“ネイティブ”であるため、CPUアーキテクチャに依存する。Enhance)の命令セットに依存している。NDKで提供されているライブラリは、以下のとおりだ。1一般的な携帯電話では、このNDKによるネイティブコードの実装は、開発面、デバッグ面、ソースコードの互換性面でマイナスとなることがある。組み込みデバイス開発では、CPU以外の周辺デバイスへのアクセスやJavaでは処理し切れないパフォーマンスを必要とする処理が存在するため、重要なポイントといえる。Androidは、携帯電話のプラットフォームとして登場したが、Android自身が持つ機能や表現力によって、携帯電話以外の組み込みデバイスでも新しい可能性が見えてきた。カーナビゲーションデバイス、デジタルテレビ、セットトップボックス、デジタルフォトフレームなどのコンシューマ機器から、工場で利用されるパネルコンピュータなどのFA機器まで、さまざまなデバイスが新しいインターフェイスと開発スタイルを手に入れることができる。次回は、NDKを利用して実際にAndroidにネイティブコードを実装し、Androidを拡張する方法について具体的に触れていく。SNSFacebookXITmediaはアイティメディア株式会社の登録商標です。