API レベル: 5
Android 2.0 は、2009 年 11 月以降に Android 搭載ハンドセットにデプロイできるメジャー プラットフォーム リリースです。このリリースには、ユーザーとデベロッパー向けの新しい機能に加え、Android フレームワーク API の変更が含まれています。
デベロッパー向け Android 2.0 プラットフォームは、 コンポーネントをダウンロードします。このダウンロード可能なプラットフォームには、 完全に準拠した Android ライブラリとシステム イメージ、エミュレータのセット スキン、サンプル アプリケーションなどがあります。このダウンロード可能なプラットフォームは 準拠しており、外部ライブラリは含まれていません。
Android 向けの開発またはテストを開始するには Android SDK と AVD Manager ツールを使用して SDK にプラットフォームをダウンロードします
プラットフォームのハイライト
新しいユーザー機能とプラットフォームの特長の一覧については、Android 2.0 プラットフォームのハイライト ドキュメントをご覧ください。
組み込みアプリケーション
ダウンロード可能なプラットフォームに含まれるシステム イメージには、次の組み込みアプリが用意されています。
|
|
言語
このダウンロード可能なプラットフォームに含まれるシステム イメージには、 使用できます。場合によっては、地域固有の文字列を あります。それ以外の場合は、言語のデフォルト バージョンが使用されます。「 Android 2.0 システムで使用できる言語 (言語_国 / 地域の言語 / 地域)を以下に示します。 あります。
|
|
ローカライズされた UI 文字列は、[設定] からアクセスできるロケールと一致します。
エミュレータ スキン
ダウンロード可能なプラットフォームにはエミュレータ スキン一式が含まれており、さまざまな画面サイズと解像度でアプリケーションをモデル化するために使用できます。エミュレータのスキンは次のとおりです。
- QVGA(240x320、低密度、小画面)
- WQVGA(240x400、低密度、標準画面)
- FWQVGA(240x432、低密度、標準画面)
- HVGA(320x480、中密度、標準画面)
- WVGA800(480x800、高密度、標準画面)
- WVGA854(480x854、高密度、標準画面)
すべての Android デバイスで適切に表示および動作するアプリを開発する方法については、複数画面のサポートをご覧ください。
デベロッパー機能
以下のセクションでは、ダウンロード可能な Android 2.0 プラットフォーム コンポーネントで提供されるデベロッパー向けの新機能について説明します。
Ant サポート
- デバッグモードとリリースモードのアプリ署名。リリースモードの署名には、
zipalign
最適化の統合サポートが含まれています。詳しくは、アプリへの署名をご覧ください。 - Emma 計測プロジェクト(コードカバレッジ)をサポートする新しい Ant ビルドシステムを追加しました。
フレームワーク API
以降のセクションでは、Android 2.0 プラットフォームで提供されるアプリケーション フレームワーク API について説明します。
API レベル
Android 2.0 プラットフォームでは、フレームワーク API の最新バージョンが提供されます。以前のバージョンと同様に、Android 2.0 API 値には整数の識別子(5)が割り当てられます。 保存されることはありません。「API レベル」と呼ばれるこの識別子によって、 アプリが Google Cloud とどのように互換性があるかを インストール前に確認する必要があります。
Android 2.0 で導入された API をアプリで使用するには、以下を行う必要があります。
<uses-sdk>
の属性で適切な値「5」を設定する
要素を宣言する必要があります。
API レベルの使用方法について詳しくは、API レベルのドキュメントをご覧ください。
API の変更の概要
Bluetooth
- Bluetooth をオンまたはオフにする
- デバイスとサービスの検出
- RFCOMM を使用してリモート デバイスに接続し、データを送受信する
- RFCOMM サービスをアドバタイズし、受信 RFCOMM 接続をリッスンする
同期アダプター
- 同期アダプターが任意のバックエンドに接続するための新しい API
アカウント マネージャー
- 認証トークンやパスワードを安全に保存してアクセスできる一元化されたアカウント マネージャー API
連絡先
- 複数のアカウントのデータに対応できる新しい連絡先 API
- 新しい Quick Contact フレームワーク API を使用すると、デベロッパーはアプリで連絡先バッジを作成できます。バッジをクリックするとウィンドウが開き、ワンクリックで相手に連絡する方法のリストが表示されます。
WebView
- サポートが終了したクラス: UrlInterceptHandler、Plugin、PluginData、PluginList、UrlInterceptRegistry。
カメラ
- カラーエフェクト、シーンモード、フラッシュモード、フォーカスモード、ホワイト バランス、回転などの設定に関する新しいパラメータ。
- ズームレベルが変更されたときにアクションを実行する新しい ZoomCallback インターフェース。
メディア
- MediaScanner が、MediaStore に挿入されたすべての画像のサムネイルを生成するようになり、
- 画像と動画のサムネイルをオンデマンドで取得するための新しい Thumbnail API。
その他のフレームワーク
- android.R.style の新しいシステムテーマ。現在のシステム 壁紙の上にアクティビティを簡単に表示したり、前のアクティビティをバックグラウンドに表示したりできます。
- 新しい WallpaperManager API は、以前 Context にあった壁紙 API を置き換えて拡張し、アプリからシステムの壁紙のリクエストと設定を行えるようにします。
- 新しい Service API により、アプリが Service のライフサイクルを正しく処理できるようになります。特に、Service の実行中に Service が強制終了される可能性があるメモリ不足の状況で役立ちます。
- Service.setForeground() は非推奨となり、実質的に操作を実行しなくなりました。これは、進行中の通知をフォアグラウンド ステータスに関連付ける(必要とする)新しい API startForeground() に置き換えられます。
- MotionEvent で、同時タップに対応しているデバイスの同時タップ情報を報告できるようになりました。最大 3 つのポインタを同時にトラッキングできます。
- KeyEvent には、アクション オン アップと長押しの動作を実装するための新しいキー ディスパッチ API と、キー入力をキャンセルする新しいメカニズム(仮想キー用)が追加されました。
- WindowManager.LayoutParams に新しい定数が追加されました。これにより、ウィンドウが表示されるときに画面を復帰させ、画面がロックされていてもウィンドウを表示できるようになります。これにより、デバイスを起動するアラーム クロックなどをアプリでよりクリーンな方法で実装できるようになります。
- デバイスのドッキング状態をブロードキャストし、デバイスがデスクトップ ホルダーまたは車載ホルダーに置かれているときにアプリが特別なアクティビティを起動できるようにする新しい Intent API。
キーアップ時に実行されるキーイベント
Android 2.0 は、物理キーではなく、ホーム、メニュー、戻る、検索の仮想キーを使用するデバイスで実行するように設計されています。このようなデバイスで最適なユーザー エクスペリエンスを実現するため、Android プラットフォームでは、これらのボタンをキーダウンではなくキーアップで実行するようにしました。これにより、キーダウン / キーアップのペアが実現されます。これにより ユーザーがボタン領域を押してからドラッグすることで、 イベントを生成せずに実行することもできます。
この動作変更は、アプリケーションが動作している場合にのみ、 ボタンイベントをインターセプトして、キーダウンのアクションを実行する します。特に、アプリが「戻る」キーをインターセプトしている場合は、アプリがキーイベントを適切に処理していることを確認する必要があります。
通常、アプリで BACK キーをインターセプトすることはおすすめしませんが、アプリでインターセプトしていて、キーアップではなくキーダウンでアクションを呼び出す場合は、コードを変更する必要があります。
アプリケーションで Android 2.0(API レベル 5)で導入された API を使用する場合は、キーイベント ペアを管理するための新しい API を利用できます。
- アクティビティまたはダイアログで「戻る」キーをインターセプトする場合は、新しい
onBackPressed()
メソッドを実装するだけです。 - ビューで BACK キーをインターセプトする場合は、そのキーを追跡する必要があります。
キーダウン時のイベント(新しい
startTracking()
を使用) メソッドを呼び出し、キーの上のキーでアクションを呼び出します。使用できるパターンは次のとおりです。
Kotlin
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.repeatCount == 0) { event.startTracking() true } else { false } } ... else -> super.onKeyDown(keyCode, event) } } override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.isTracking && !event.isCanceled) { // *** DO ACTION HERE *** true } else { false } } ... else -> super.onKeyUp(keyCode, event) } }
Java
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { event.startTracking(); return true; } return super.onKeyDown(keyCode, event); } public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking() && !event.isCanceled()) { // *** DO ACTION HERE *** return true; } return super.onKeyUp(keyCode, event); }
以前のアプリを更新して、Android 2.0 以前のプラットフォーム バージョンでも BACK キーの処理が適切に機能するようにするには、上記に示した方法と同様の方法を使用できます。コードでは、 キーダウン時にボタンイベントをターゲットにする、キーイベントをトラッキングするフラグを設定する キーアップ時にもイベントをキャッチして、トラッキングが フラグが設定されています。また、フォーカスの変化を監視し、フォーカスが取得または失われたときにトラッキング フラグをクリアすることも必要です。
API の差分レポート
Android 2.0(API レベル 5)の API の変更点(以前のバージョンとの比較)については、API の差分レポートをご覧ください。