Androidはハイエンドスマートフォンから下位のモデルまで、広い範囲の携帯電話に合うように構成されています。コアなAndroid APIは全てのAndroid携帯電話で利用可能となりますが、オプションのAPIについては気をつける必要があります。
これらのAPIは2つの意味で”オプション”です。第一は使う必要が無ければ使わないという意味合いで、例えばアクティビティやIntentAPIが無ければアプリケーションを構築することは出来ませんが、アプリケーション側でユーザの現在地がどこであるのか、といった情報が必要無い場合はあるでしょう。この場合、位置情報を用いたサービス用のAPIは必要ありません。この意味合いでは、アクティビティAPIが必須であるのに対してLBS APIは必須ではないと言えます。
“オプション”のもう片方の意味は、アプリケーションを動作させる携帯電話が機能をサポートしていない場合というものです。例えば、ある携帯電話にはBluetoothやWiFiのハードウェアが組み込まれていないかもしれません。この場合、これらの機能に対するアクセスを行うAPI自体は存在しますが、動作はしません。つまり利用したいAPIを持たない機器でアプリケーションを実行すると、機器上には当該クラスが存在しているためリンクにおいては特に問題は発生しませんが、実際にそのAPIを利用しようとすると機器側では何も実装されていなかったり、あるいは例外を投げたりすることが考えられます。それぞれのAPIが未サポートのハードウェア上ではどのような挙動をするのかについては各APIのドキュメントに記述されています。アプリケーション側では、これらの挙動を正しく処理する必要があります。
位置情報を基にしたサービス (LBS) では、携帯電話の現在位置取得が可能です。これにはGPS衛星測位による情報が含まれますが、将来的に他の位置情報ベースシステムがサポートされるかもしれず、その際にはこのAPIに機能が追加されることになります。
Click here for an introduction to the Android LBS APIs
メディアAPIはメディアファイルの再生に使われます。これにはMP3やその他の音楽ファイル、ゲームのサウンドエフェクトといった音声データと、Webからダウンロードされた映像の再生といったものが含まれます。ネットワーク越しにメディアのストリーミングを行う、”URIの再生”もサポートされています。
Click here for an introduction to the Android Media APIs
Android'sの主なユーザインターフェイスは通常のウィジェットベースのクラス構造によるものですが、その下にはハードウェア悪世良レーションを含む高速な2D・3Dエンジンがあります[※1] 。この中で、プラットフォームの3D機能にアクセスするためにはOpenGL ES APIが利用されます。
Click here for an introduction to the Android OpenGL API
Androidでは、BluetoothやWiFiといった低レベルなハードウェアへアクセスするAPIも提供する予定ですが、これらはまだSDKに盛り込まれていません。SDKに盛り込まれた時点で、このドキュメントを更新します。