Android 2.0、リリース 1

API レベル: 5

Android 2.0 はメジャー プラットフォーム リリースです 2009 年 11 月から Android 搭載携帯に デプロイできるようになります このリリースには、ユーザーとデベロッパー向けの新機能や、変更点が含まれています 使用できます。

デベロッパー向け Android 2.0 プラットフォームは、 コンポーネントをダウンロードします。このダウンロード可能なプラットフォームには、 完全に準拠した Android ライブラリとシステム イメージ、エミュレータのセット スキン、サンプル アプリケーションなどがあります。このダウンロード可能なプラットフォームは 準拠しており、外部ライブラリは含まれていません。

Android 向けの開発またはテストを開始するには Android SDK と AVD Manager ツールを使用して SDK にプラットフォームをダウンロードします

プラットフォームのハイライト

新しいユーザー機能とプラットフォームの特長の一覧については、Android 2.0 プラットフォームのハイライト ドキュメントをご覧ください。

組み込みアプリケーション

ダウンロード可能なプラットフォームに含まれるシステム イメージには、以下の機能が含まれています。 組み込みアプリケーション:

  • アラーム
  • ブラウザ
  • 電卓
  • ビデオ録画
  • カメラ
  • 連絡先
  • カスタム ロケール(デベロッパー アプリ)
  • Dev Tools(デベロッパー アプリ)
  • 電話アプリ
  • メール
  • ギャラリー
  • ジェスチャー ビルダー
  • 日本語テキスト入力の IME
  • メッセージ
  • 音楽
  • 設定
  • Spare Parts(デベロッパー アプリ)

言語

このダウンロード可能なプラットフォームに含まれるシステム イメージには、 使用できます。場合によっては、地域固有の文字列を あります。それ以外の場合は、言語のデフォルト バージョンが使用されます。「 Android 2.0 システムで使用できる言語 (言語_国 / 地域の言語 / 地域)を以下に示します。 あります。

  • 中国語、中華人民共和国(zh_CN)
  • 中国語、台湾(zh_TW)
  • チェコ語(cs_CZ)
  • オランダ語、オランダ(nl_NL)
  • オランダ語、ベルギー(nl_BE)
  • 英語、米国(en_US)
  • 英語、英国(en_GB)
  • 英語、カナダ(en_CA)
  • 英語、オーストラリア(en_AU)
  • 英語、ニュージーランド(en_NZ)
  • 英語、シンガポール(en_SG)
  • フランス語、フランス(fr_FR)
  • フランス語、ベルギー(fr_BE)
  • フランス語、カナダ(fr_CA)
  • フランス語、スイス(fr_CH)
  • ドイツ語、ドイツ(de_DE)
  • ドイツ語、オーストリア(de_AT)
  • ドイツ語、スイス(de_CH)
  • ドイツ語、リヒテンシュタイン(de_LI)
  • イタリア語、イタリア(it_IT)
  • イタリア語、スイス(it_CH)
  • 日本語(ja_JP)
  • 韓国語(ko_KR)
  • ポーランド語(pl_PL)
  • ロシア語(ru_RU)
  • スペイン語(es_ES)
  • ローカライズされた UI 文字列が、アクセス可能なロケールと一致している [設定]で行えます

    エミュレータ スキン

    ダウンロード可能なプラットフォームにはエミュレータ スキン一式が含まれており、さまざまな画面サイズと解像度でアプリケーションをモデル化するために使用できます。エミュレータのスキンは次のとおりです。

    • QVGA(240x320、低密度、小画面)
    • WQVGA(240x400、低密度、標準画面)
    • FWQVGA(240x432、低密度、標準画面)
    • HVGA(320x480、中密度、標準画面)
    • WVGA800(480x800、高密度、標準画面)
    • WVGA854(480x854、高密度、標準画面)

    すべての Android 搭載デバイスで適切に表示され、機能するアプリの開発方法について詳しくは、複数画面のサポートをご覧ください。

    デベロッパー機能

    以下のセクションでは、ダウンロード可能な Android 2.0 プラットフォーム コンポーネントで提供される新しいデベロッパー向け機能について説明します。

    アリのサポート

    • デバッグモードとリリースモードのアプリ署名。リリースモード署名には、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 を置き換えて拡張し、アプリからシステムの壁紙のリクエストと設定を行えるようにします。
    • 新しいサービス API により、アプリケーションは Service のライフサイクルを正しく処理できます。特に、メモリ不足の状況下では、Service の実行中に Service が強制終了される可能性があります。
      • Service.setForeground() が非推奨になり、実質的にオペレーションが実行されなくなりました。これは、進行中の通知をフォアグラウンドの状態に関連付けるのに役立つ(そして必須)新しい API である startForeground() に置き換えられています。
    • MotionEvent が、サポートしているデバイスの同時接触情報をレポートできるようになりました。最大 3 つのポインタを同時にトラッキングできます。
    • KeyEvent には、操作時の操作と長押しの動作の実装に役立つ新しいキー ディスパッチ API と、(仮想キーの)キーの押下をキャンセルする新しいメカニズムがあります。
    • WindowManager.LayoutParams に、ウィンドウが表示されるときに画面を復帰させ、画面がロックされていてもウィンドウを表示できるようにする新しい定数が追加されました。これにより、デバイスのスリープを解除する目覚まし時計などをより明確に実装できます。
    • デバイスの装着状態をブロードキャストし、デバイスがデスクトップ ホルダーやカーホルダーに置かれた際にアプリが特別なアクティビティを起動できるようにする新しいインテント API。

    キーアップ時に実行されるキーイベント

    Android 2.0 は、HOME の仮想キーを使用するデバイスで動作するように設計されています。 Menu、BACK、SEARCH を使用します。最適なユーザーをサポートするには Android プラットフォームでは、これらのボタンを key-down/key-up ペアの場合は、key-down ではなく key-up を使用します。これにより ユーザーがボタン領域を押してからドラッグすることで、 イベントを生成せずに実行することもできます。

    この動作変更は、アプリケーションが動作している場合にのみ、 ボタンイベントをインターセプトして、キーダウンのアクションを実行する します。特にアプリケーションが BACK キーをインターセプトしている場合は、 アプリがキーイベントを適切に処理していることを確認します。

    一般に、アプリケーションで BACK キーをインターセプトすることは推奨されません。 ただし、アプリケーションでその処理が実行され、 key-up ではなく key-down を使用しており、コードを変更する必要があります。

    Android 2.0(API レベル 5)で導入された API をアプリで使用する場合は、 キーイベントのペアを管理するために、新しい API を利用できます。

    • アクティビティやダイアログで BACK キーをインターセプトする場合は、 新しい 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 以前のプラットフォーム バージョンで正しく動作する場合は、 上記と同様のアプローチを使用できます。コードでは、 Key-down 時にボタンイベントをターゲットにする、キーイベントをトラッキングするフラグを設定する キーアップ時にもイベントをキャッチして、トラッキングが フラグが設定されています。また、フォーカスの変化を監視し、トラッキングをクリアします。 フォーカスの取得時/喪失時にフラグを立てます。

    API 差異レポート

    Android 2.0(API レベル 5)における API の変更の詳細を API 差分レポートをご覧ください。