連載
» 2011年01月27日 00時00分 公開

Androidで動く携帯Javaアプリ作成入門(22):開発者が知って得するAndroid 2.3の新機能18選 (2/3)

[緒方聡,株式会社イーフロー]

ネイティブコード周りの充実

 Android NDK(r5、またはそれ以上)では、Android 2.3の豊富なネイティブ環境を使用するアプリ開発のためのツールセットやライブラリを提供します。より詳細な情報やNDKのダウンロードに関しては、以下のAndroid NDKのページをご参照ください。

【4】ネイティブの入力とセンサイベント

 ネイティブコードを使用するアプリは、ネイティブコード内で直接入力イベントとセンサイベントを受け取って処理できるようになりました。

 プラットフォームが公開しているネイティブライブラリでは、アプリがこれらのフレームワークを介して利用できるよう、入力イベントと同じタイプを扱えます。

 アプリはサポートしているすべてのセンサからイベントを受け取れ、またセンサの有効無効を切り替え、イベント配信率とキューイングを管理します。

【5】アセットとストレージへのネイティブアクセス

 Android 2.3では、アプリはJNIを介さずネイティブコードから直接アプリのアセットを取得できるネイティブアセットAPIも使えます。.apkのアセットはサイズ制限なく読み込み可能です。

 またアプリは、OSによってダウンロード/管理されているOBB(Opaque Binary Blobs)ファイルを直接操作するネイティブストレージ管理APIを使えます。

 なおOBBファイルはAndroid 2.3で利用可能ですが、OBBファイルを作成して管理するための開発ツールは、2011年前半まで利用可能にならないことに注意してください。

【6】Activityライフサイクルのネイティブアクセス

 ネイティブアプリは新しいActivityクラスとして宣言でき、NativeActivityのネイティブコード内で直接ライフサイクル(状態遷移)のコールバックを実装可能です。

 NativeActivityと、その基になるネイティブコードは、他のActivityと同様にシステム内で動作します。それらは、アプリのシステムプロセス内で動作し、アプリのメインUIスレッド上で実行され、そして他のActivityと同様にライフサイクルのコールバックを受け取ります。

【7】ウィンドウ管理

 Android 2.3は、ピクセルバッファに直接描画するためのロック/アンロック機能を含むウィンドウ管理用APIを追加しました。アプリは、APIを介すことでネイティブコード内で直接、Surfaceオブジェクトとやりとりできるフレームワークに関連付けられるネイティブウィンドウのオブジェクトを取得できます。

【8】グラフィック管理

 Android 2.3は、「Khronos EGL」ライブラリのインターフェイスを提供するので、アプリはネイティブコードからグラフィックスコンテキストの管理や作成、OpenGL ESテクスチャやSurfaceの管理が可能です。

 またOpenGL ESの処理が向上し、すべての3Dグラフィックスの性能向上のためにサードパーティのビデオドライバを更新しています。

【9】ネイティブでのオーディオ制御のためのオープンAPI

 Android 2.3では、「Khronos OpenSL ES」の標準APIが使用可能になり、アプリはオーディオ制御とエフェクトをネイティブコードから実行できます。このAPIを使用することにより、ネイティブから直接オーディオデバイスの管理やオーディオ入出力の制御と処理を行えます。

マルチメディア・SIPなど音関連

 ネイティブのオーディオ周りの機能追加に関連して、音関係も紹介しておきます。

【10】和音可能なオーディオエフェクト

 新しいオーディオエフェクトAPIで、開発者は音量均等化や低音強化、ヘッドホン仮想化(サウンドステージの拡大)、および電気的に付加された残響をオーディオトラックと音に加えることによって、豊かなオーディオ環境を作成できます。

 また、複数のトラックにわたり、ローカルまたはグローバルに複数のオーディオエフェクトをミックスすることもできます。

【11】新しいフォーマットのサポート

 Android 2.3は、ビデオ圧縮フォーマット「VP8」とオープンソースの動画規格「WebM」をサポートします。

 また、AACエンコーディングとARMワイドバンドエンコーディング(ソフトウェア実装)のサポートを追加することで、アプリがナローバンドよりも高品質な音声を使えます。

【12】SIPのインターネット通話

 Android 2.3では、SIPSession Initiation Protocol)をサポートします。ユーザーは、SIPアカウントを持っている他のユーザーにインターネット上で音声通話を行えます。任意のコンタクトにインターネット通話番号(SIPアドレス)を追加し、クイックコンタクトまたはダイヤルから発信ができます。

 インターネット通話を使用するには、ユーザーが自分の好きなSIPプロバイダでアカウントを作成する必要があります(インターネット通話機能の一部として、SIPアカウントは提供していません)。

 また、デバイスがSIPおよびインターネット通話をサポートするかどうかは、メーカーや関連事業者が決定します。

 開発者はSIPベースのインターネット通話機能をアプリに追加できます。Android 2.3は、アプリがセッション管理やトランスポートレベルの通信や音声録音や再生を直接行う必要のない、簡単に発信と着信が可能な完全なSIPプロトコルスタックと通話管理サービスを提供します。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。