Android 3.0 API

API レベル: 11

デベロッパー向け Android 3.0 プラットフォーム (HONEYCOMB)をダウンロード可能 Android SDK のコンポーネントを使用します。ダウンロード可能なプラットフォームには、Android ライブラリとシステムが含まれている エミュレータ スキンのセットなどが含まれています。ダウンロード可能なプラットフォームには、 使用できます。

デベロッパー向け Android 3.0 プラットフォームは、 コンポーネントをダウンロードします。このダウンロード可能なプラットフォームには Android ライブラリとシステム イメージ、エミュレータ スキンのセットと、 できます。Android 3.0 に対する開発やテストを開始するには、 Android SDK Manager を使用して、SDK にプラットフォームをダウンロードします。

API の概要

以下のセクションでは、Android 3.0 のデベロッパー向けの新機能について技術的な概要を説明します。 (フレームワーク API の新機能や以前のバージョンからの変更を含む)

フラグメント

新しいフレームワーク コンポーネントであるフラグメントを使用すると、 アクティビティを、独自の UI とライフサイクルを定義する自己完結型のモジュールにまとめます。新しい P-MAX キャンペーンを Fragment クラスを拡張して複数のライフサイクルを実装する必要があります。 Activity と同様のサポートを提供します。複数のアセットを を 1 つのアクティビティにまとめ、それぞれが 1 つの 独自のライフサイクルとユーザー入力を管理します。

UI を提供せずにフラグメントを使用し、代わりにフラグメントをワーカーとして使用することもできます。 ダウンロードの進行状況などを管理できます。 できます。

以下の点にもご注意ください。

  • フラグメントは自己完結型であり、複数のアクティビティで再利用できる
  • アクティビティ内でフラグメントを追加、削除、置換、アニメーション化できる
  • アクティビティが管理するバックスタックにフラグメントを追加して、 移動して、ユーザーが異なるフラグメント間をさかのぼれるようにします。 州
  • 具体的には、 代替レイアウトが用意されています。たとえば、 画面のサイズと向きに応じて
  • フラグメントはコンテナ アクティビティに直接アクセスでき、フラグメントにアイテムを提供できる アクティビティのアクションバー(次で説明)

アクティビティ内のフラグメントを管理するには、FragmentManager を使用する必要があります。このライブラリには、フラグメントを操作するための API( アクティビティ内のフラグメントを検出してバックスタックからフラグメントをポップして 維持します。

フラグメントの追加や削除などのトランザクションを実行するには、FragmentTransaction を作成する必要があります。その後、add() remove()replace() などのメソッドを呼び出すことができます。すべてのキャンペーンを トランザクションに対して実行する変更を定義するには、commit() を呼び出す必要があります。これにより、フラグメント トランザクションがトランザクションに適用されます。 できます。

フラグメントの使用について詳しくは、フラグメントのドキュメントをご覧ください。複数 サンプルは、 API Demos アプリケーション。

アクションバー

アクションバーは、アクティビティ ウィンドウの上部にある従来のタイトルバーに代わるものです。 左上隅にアプリケーションのロゴが表示され、 オプション メニュー。また、 アクションバーでできること:

  • メニュー項目を「アクション アイテム」としてアクションバーに直接追加します。

    メニュー項目の XML 宣言に、値が "ifRoom"android:showAsAction 属性を含めます。十分なスペースがある場合、メニューは 直接アクションバーに表示されます。それ以外の場合、アイテムは アクションバーの右側にあるメニュー アイコンから表示されます。

  • アクション アイテムをウィジェット(検索ボックスなど)に置き換える(検索ボックスなど) [アクションビュー]を選択します

    メニュー項目の XML 宣言に android:actionViewLayout 属性を追加する レイアウト リソースまたは android:actionViewClass 属性で、 追加します。(商品が表示されるように、android:showAsAction 属性も宣言する必要があります) をクリックします)。アクションバーに十分なスペースがなく、 オーバーフロー メニューです。通常のメニュー項目と同様に動作し、ウィジェットは表示されません。

  • アプリケーションのロゴにアクションを追加して、カスタムのロゴに置き換える

    アプリケーションのロゴには、自動的に android.R.id.home ID が割り当てられます。 タップされると、アクティビティの onOptionsItemSelected() コールバックにシステムが渡します。コールバックでこの ID に応答するだけで、 メソッドを使用して、アプリケーションの「ホーム」に移動するなどのアクションを実行します。できます。

    アイコンをロゴに置き換えるには、マニフェスト ファイルでアプリのロゴを android:logo 属性を作成してから、アクティビティで setDisplayUseLogoEnabled(true) を呼び出します。

  • パンくずリストを追加して、フラグメントのバックスタック内を遡る
  • タブやプルダウン リストを追加してフラグメント間を移動できるようにする
  • テーマと背景でアクションバーをカスタマイズする

アクションバーは、新しいホログラフィック テーマを使用するすべてのアプリケーションの標準です。 android:minSdkVersion または android:targetSdkVersion"11" に設定した場合も標準です。

アクションバーについて詳しくは、アクションバーのドキュメントをご覧ください。複数 サンプルは、 API Demos アプリケーション。

システム クリップボード

アプリケーションは、単なるテキスト以外のデータをシステム全体との間でコピーして貼り付けることが可能に クリックします。クリップされたデータには、書式なしテキスト、URI、インテントのいずれかを指定できます。

ユーザーにコピーしてほしいデータに対するシステム アクセスをコンテンツ プロバイダを介して提供することで、 ユーザーは複雑なコンテンツ(画像やデータ構造など)をアプリからコピーし、 その形式のコンテンツに対応している別のアプリケーションに貼り付けることができます。

クリップボードの使用を開始するには、グローバル ClipboardManager オブジェクトを取得します。 getSystemService(CLIPBOARD_SERVICE) を呼び出します。

アイテムをクリップボードにコピーするには、1 つ以上の ClipData.Item を保持する新しい ClipData オブジェクトを作成する必要があります。 それぞれが 1 つのエンティティを表します。ClipData オブジェクトを作成するには ClipData.Item を 1 つだけ含む場合は、次のヘルパー メソッドのいずれかを使用できます。 たとえば newPlainText()newUri()newIntent() など、これらの関数はそれぞれ、ClipData ClipData.Item を指定します。

ClipData をクリップボードに追加するには、ClipboardManager のインスタンスの setPrimaryClip() に渡します。

ClipboardManager に対して getPrimaryClip() を呼び出すと、クリップボードからファイルを読み取ることができます(貼り付けるため)。受け取った ClipData を処理すると、 複雑で、クリップボード内のデータ型を実際に処理できることを確認する必要があります。 コピーしてください。

クリップボードには、クリップされたデータが 1 つだけ(ClipData) オブジェクト)を一度に格納することはできませんが、1 つの ClipData に複数の ClipData.Item を含めることができます。

詳しくは、 貼り付けます。API デモでコピー&ペーストの単純な実装を確認することもできます。 サンプルと、より完全な実装をメモ帳のサンプルで公開しています。

ドラッグ&ドロップ

新しい API は、アプリケーションのユーザー インターフェースでのドラッグ&ドロップ オペレーションを簡素化します。ドラァグ オペレーションは、ClipData で運ばれるある種のデータの転送です。 ある場所から別の場所に移動できます。ドラッグ オペレーションの開始点と終了点は View であるため、ドラッグ&ドロップ オペレーションを直接処理する API は次のようになります。 View クラス内。

ドラッグ&ドロップ オペレーションのライフサイクルは、複数のドラッグ アクションによって定義されます。 DragEvent オブジェクトで定義(ACTION_DRAG_STARTEDACTION_DRAG_ENTEREDACTION_DROP。ドラッグに参加する各ビュー リッスンできます。

アクティビティ内のコンテンツのドラッグを開始するには、startDrag() を呼び出します。 View で、値を表す ClipData オブジェクトを提供します。 ドラッグするデータ、シャドウ処理を容易にする View.DragShadowBuilder ドラッグ中にユーザーが目にするアイコンと、共有可能な Object があります。 オブジェクトを受け取ることができるビューを含むドラッグ オブジェクトに関する情報。

View でドラッグ オブジェクトを受け入れる(「ドロップ」を受け取る)には、ビューを登録します。 (setOnDragListener() を呼び出して OnDragListener を持つ)ビューでドラッグ イベントが発生すると、 システムが OnDragListener に対して onDrag() を呼び出し、DragEvent を受け取ります。 発生したドラッグ アクションの種類(ACTION_DRAG_STARTEDACTION_DRAG_ENTEREDACTION_DROP)です。ドラッグ中、システムはドラッグの下にあるビューに対して onDrag() を繰り返し呼び出し、 ドラァグ イベントのストリーム。受信側のビューは、DragEventgetAction() を呼び出すことで、onDragEvent() に配信されたイベントタイプを問い合わせることができます。

注: ドラッグ イベントには ClipData オブジェクトが含まれることがありますが、これはシステム クリップボードとは関係ありません。ドラッグ&ドロップ ドラッグしたデータをシステム クリップボードに配置すべきではありません。

詳しくは、ドラッグ&ドロップ ドロップのドキュメントをご覧ください。 API Demos アプリケーションと Honeycomb Gallery 説明します。

アプリ ウィジェット

Android 3.0 では、ユーザーがよりインタラクティブなアプリ ウィジェットを行えるように、いくつかの新しいウィジェット クラスがサポートされています。 ホーム画面(GridViewListViewStackViewViewFlipperAdapterViewFlipper など)。

さらに重要なこととして、新しい RemoteViewsService を使用してアプリを作成できます。 コレクション付きのウィジェット。リモートデータに基づく GridViewListViewStackView などのウィジェットを使用する。 アップロードすることもできます

AppWidgetProviderInfo クラス(XML で <appwidget-provider> 要素を使用して定義)では、autoAdvanceViewIdpreviewImage という 2 つの新しいフィールドもサポートしています。autoAdvanceViewId フィールドを使用すると、ビュー ID を指定できます。 アプリ ウィジェットのホストによって自動進行されるアプリ ウィジェットのサブビュー。「 previewImage フィールドには、 アプリ ウィジェットはこのようにして、ウィジェット選択ツールからユーザーに表示されます。このフィールドが アプリ ウィジェットのアイコンがプレビューに使用されます。

アプリ ウィジェットのプレビュー画像(previewImage フィールドで指定)を作成できるように、Android Emulator には以下が含まれています。 「ウィジェットプレビュー」というアプリを作成しますプレビュー画像を作成するには、このアプリを起動して プレビュー画像の表示方法を設定したら、 アプリのドローアブル リソースに配置します。

StackView アプリ ウィジェット天気リスト ウィジェットで、新しいアプリ ウィジェット機能の実装を確認できます。 説明します。

ステータスバーの通知

よりコンテンツリッチなステータスをサポートするように Notification API が拡張されました 追加すると、新しい Notification.Builder クラスにより、 Notification オブジェクトを作成します。

新しい機能は次のとおりです。

  • setLargeIcon() を使用した通知内の大きなアイコンのサポート。通常は ソーシャル アプリケーションで、イベントの発生元である人物の連絡先写真を表示 メディアアプリではアルバムのサムネイルが表示されます。
  • setTicker() を使用した、ステータスバー ティッカーでのカスタム レイアウトのサポート。
  • カスタム通知レイアウトをサポートして PendingIntent のボタンを追加し、よりインタラクティブな通知ウィジェットを実現。たとえば、 通知を使用して、アクティビティを開始せずに音楽の再生を制御できます。

コンテンツ ローダー

新しいフレームワーク API は、Loader クラスを使用したデータの非同期読み込みを容易にします。ビューや UI などの UI コンポーネントと組み合わせて使用できます。 使用してワーカー スレッドから動的にデータを読み込みます。CursorLoader サブクラスは、 ContentProvider

必要な作業は、新しいローダがリクエストされたとき、またはデータがリクエストされた場合にコールバックを受け取る LoaderCallbacks インターフェースを実装することだけです。 次に、initLoader() を呼び出して 追加する必要があります。

詳しくは、ローダのドキュメントをご覧ください。また、 LoaderCursor でローダーを使用するサンプルコード および<ph type="x-smartling-placeholder"></ph> LoaderThrottle サンプルをご覧ください。

Bluetooth A2DP とヘッドセット API

Android には、接続されている Bluetooth A2DP の状態をアプリが検証するための API が追加されています。 ヘッドセット プロファイル デバイスを設定します。たとえば、Bluetooth ヘッドセットが接続され、 接続し、必要に応じてユーザーに通知します。アプリケーションはまた、 ベンダー固有の AT コマンドをブロードキャストし、接続状態をユーザーに通知します。 接続中のデバイスのバッテリー残量が少なくなった場合などに、

それぞれの BluetoothProfile を初期化するには、A2DP または HEADSET を指定して getProfileProxy() を呼び出します。 プロファイル定数と BluetoothProfile.ServiceListener が格納され、 Bluetooth クライアントが接続または接続解除されたときに呼び出されるコールバック。

アニメーション フレームワーク

まったく新しい柔軟なアニメーション フレームワークで、任意のオブジェクトの任意のプロパティをアニメーション化 (ビュー、ドローアブル、フラグメント、オブジェクトなど)。これを使用すると、インフラストラクチャのさまざまな側面を アニメーションを

  • 所要時間
  • 繰り返しの回数と動作
  • 時間補間のタイプ
  • Animator は、アニメーションを一緒に、連続して、または指定された遅延後に再生するように設定する
  • フレーム更新遅延

オブジェクトの int、float、16 進数で、アニメーションのアスペクトなどを定義できます。 色の値です。つまり、オブジェクトにこれらの型のプロパティ フィールドがある場合、 時間とともに変化する可能性があります。その他の型の値をアニメーション化するには、 TypeEvaluator インターフェースを実装して、特定の型の値を計算する方法。

プロパティの値をアニメーション化するには、ValueAnimatorObjectAnimator の 2 つのアニメーターを使用できます。ValueAnimator はアニメーション値を計算しますが、具体的な値は認識していません。 結果としてアニメーション化される オブジェクトまたはプロパティです計算を実行するだけです。 更新をリッスンし、独自のロジックでデータを処理します。ObjectAnimatorValueAnimator のサブクラスであり、 を使用すると、オブジェクトとプロパティをアニメーション化するように設定でき、すべてのアニメーション処理が処理されます。 つまり、アニメーション化するオブジェクトを ObjectAnimator に指定し、 時間の経過に伴って変化するオブジェクトのプロパティと、そのプロパティに適用する一連の値 アニメーションを開始します。

また、LayoutTransition クラスは、自動移行を有効にします。 アニメーションを追加することです。画面の一部で遷移を有効にするには、 LayoutTransition オブジェクトを作成して、 setLayoutTransition() を呼び出すことで、任意の ViewGroup を取得できます。これによってデフォルト グループへのアイテムの追加または削除の際に実行されるアニメーションです。カスタム アニメーションの場合は、LayoutTransitionsetAnimator() を呼び出し、カスタムの Animator を指定する。 例: ValueAnimatorObjectAnimator 使用します。

詳細については、プロパティ アニメーションのドキュメントをご覧ください。Google Chat では API デモ アプリケーションを使用します。

拡張 UI フレームワーク

  • ListView と GridView の複数選択選択

    setChoiceMode() の新しい CHOICE_MODE_MULTIPLE_MODAL モードで複数のアイテムを選択可能に ListView または GridView から。使用する場所 複数のアイテムを選択してから目的のアクションを アクションバーのオプション リストからパフォーマンスを選択することも可能(多肢選択式に変わりました) アクション モード)。

    多肢選択式を有効にするには、setChoiceMode(CHOICE_MODE_MULTIPLE_MODAL) を呼び出して MultiChoiceModeListenersetMultiChoiceModeListener() に置き換えます。

    ユーザーがアイテムを長押しすると、アクションバーが複数選択型に切り替わります。 アクション モード。アイテムが選択されると、システムは onItemCheckedStateChanged() を呼び出して MultiChoiceModeListener に通知します。

    多肢選択式選択の例については、List15. Java クラスをご覧ください。

  • ビューを変換する新しい API

    新しい API を使用すると、アクティビティ内のビューに 2D および 3D 変換を簡単に適用できます できます。新しい変換は、ビューを定義する一連のオブジェクト プロパティを使用して行います。 レイアウトの位置、向き、透明度などを指定できます。

    ビューのプロパティを設定する新しいメソッドには、setAlpha()setBottom()setLeft()setRight()setBottom()setPivotX()setPivotY()setRotationX()setRotationY()setScaleX()setScaleY()setAlpha() などがあります。

    一部のメソッドには、レイアウトで指定できる、対応する XML 属性もあります。 デフォルトの変換を適用します。使用可能な属性: translationXtranslationYrotationrotationXrotationYscaleXscaleYtransformPivotXtransformPivotYalpha などがあります。

    これらの新しいビュー プロパティの一部を、新しいアニメーション フレームワーク(後述)と組み合わせて使用する )を使用して、ビューに豪華なアニメーションを簡単に適用できます。たとえば、画面を回転させるには、 y 軸でビューを表示するには、ObjectAnimatorView(「rotationY」)を指定します。プロパティ、start 値、end 値を次のように設定しています。

    Kotlin

    ObjectAnimator.ofFloat(myView, "rotationY", 0f, 360f).apply {
        duration = 2000
        start()
    }
    

    Java

    ObjectAnimator animator = ObjectAnimator.ofFloat(myView, "rotationY", 0, 360);
    animator.setDuration(2000);
    animator.start();
    
  • 新しいホログラフィック テーマ

    標準のシステム ウィジェットと全体的なデザインが刷新され、 「ホログラフィック」ユーザー インターフェースのテーマです。新しいテーマが適用される 標準のスタイルとテーマシステムを使用します。

    android:minSdkVersion のいずれかを設定して Android 3.0 プラットフォームをターゲットとするアプリ android:targetSdkVersion の値を "11" に設定して、デフォルトでホログラフィック テーマを継承します。 ただし、アプリケーションで独自のテーマも適用している場合、テーマは (ホログラフィック テーマを継承するようにスタイルを更新しない場合を除く)。

    ホログラフィック テーマを個々のアクティビティに適用するか、独自のテーマで継承するため 新しい Theme.Holo のいずれかを使用して できます。アプリが Android 3.0 より前のバージョンと互換性があり、 カスタムテーマを使用する場合は、プラットフォームに基づいてテーマを選択する必要があります。 version

  • 新しいウィジェット <ph type="x-smartling-placeholder">
      </ph>
    • AdapterViewAnimator

      切り替え時にアニメーションを実行する AdapterView の基本クラス ビュー間の移動です

    • AdapterViewFlipper

      次の要素がある複数のビューの間でアニメーション化するシンプルな ViewAnimator 追加されたことを示します。お子様は一度に 1 人だけ表示されます。必要に応じて、自動的に反転できます。 次の間 一定の間隔で作成されます。

    • CalendarView

      日付をタップしてカレンダーから日付を選択し、スクロールまたはフリングで日付を選択 カレンダーで目的の日付に変更できます。ウィジェットでは、表示可能な期間を設定できます。

    • ListPopupWindow

      自身をホストビューに固定し、リスト EditText ビューに入力する際に候補が表示されます。

    • NumberPicker

      ユーザーは、事前定義された範囲から数値を選択できます。ウィジェットは 数字を選択する上下のボタンを使用します。入力フィールドをタップすると 値をスクロールするか、もう一度タップして現在の値を直接編集します。また オンプレミスとクラウドの インデックスではなく対応する文字列が表示されるようにします。 なります。

    • PopupMenu

      ビューに固定されたモーダル ポップアップ ウィンドウに Menu を表示します。「 ポップアップはアンカービューの下に(スペースがある場合)表示され、スペースがない場合は上部に表示されます。IME(ソフト)の場合は、 キーボードなど)が表示されている場合、ポップアップはユーザーが 選択します。

    • SearchView

      指定したユーザーに検索クエリを配信するよう設定できる検索ボックスを提供します (従来の検索ダイアログと同じ方法で)検索候補を表示します。この ウィジェットは、アクションバーに検索ウィジェットを提供する場合に特に便利です。詳しくは 検索インターフェースの作成をご覧ください。

    • StackView

      子が 3D スタックで表示され、ユーザーがスワイプできるビュー 表示することもできます。

グラフィック

  • ハードウェア アクセラレーション 2D グラフィック

    マニフェスト要素の <application>android:hardwareAccelerated="true" を設定することで、アプリで OpenGL レンダラを有効にできるようになりました。 個々の<activity>要素または あります。

    このフラグを使用すると、描画を高速化できるため、アプリに役立ちます。その結果 アニメーションが滑らかになり より滑らかなスクロール、ユーザー操作に対する全体的なパフォーマンスと応答性の向上につながります。

  • ハードウェア レイヤとソフトウェア レイヤのサポートを表示する

    デフォルトでは、View にレイヤは指定されていません。「新規顧客の獲得」目標を ビューが、ハードウェア レイヤまたはソフトウェア レイヤ(LAYER_TYPE_HARDWARELAYER_TYPE_SOFTWARE の値で指定)を基盤としていること。 setLayerType() または layerType 属性です。

    ハードウェア レイヤは、ハードウェア固有のテクスチャ(通常はフレーム バッファ オブジェクトまたは (OpenGL ハードウェアでは FBO など)が使用され、Android のハードウェア レンダリングを使用してビューがレンダリングされます。 ただし、ビュー階層に対してハードウェア アクセラレーションがオンになっている場合のみ可能です。ハードウェアが アクセラレーションがオフの場合、ハードウェア レイヤはソフトウェア レイヤとまったく同じように動作します。

    ソフトウェア レイヤはビットマップを基盤としており、Android の ソフトウェア レンダリング パイプラインに同期できます。ソフトウェア レイヤは、 影響を受けるビューツリーが頻繁に更新される場合に、この問題を回避できます。更新されるたびに、 ソフトウェア レイヤにデプロイされるため、処理が遅くなる可能性があります。

    詳細については、LAYER_TYPE_HARDWARELAYER_TYPE_SOFTWARE のドキュメントをご覧ください。

  • Renderscript 3D グラフィック エンジン

    Renderscript はランタイム 3D フレームワークであり、3D シーンを構築するための API も提供している として扱われています。RenderScript を使用すると、 グラフィック オペレーションとデータ処理を高速化できます。RenderScript は、 アプリ、壁紙、カルーセルなど向けの高性能 3D 効果です。

    詳細については、3D レンダリングと Compute Engine Renderscript のドキュメントをご覧ください。

メディア

  • タイムラプス動画

    Camcorder API で、タイムラプス動画を記録する機能がサポートされるようになりました。setCaptureRate() は、使用するフレームのレートを 捕捉する必要があります

  • 画像ストリームのテクスチャのサポート

    新しい SurfaceTexture を使用すると、画像ストリームを OpenGL ES としてキャプチャできます。 テクスチャです。スマートフォンのsetPreviewTexture()を呼び出して、 Camera インスタンスでは、イベントから動画再生またはプレビュー フレームを描画する SurfaceTexture を指定できます。 カメラ。

  • HTTP ライブ ストリーミング

    アプリケーションは、M3U 再生リストの URL をメディア フレームワークに渡して HTTP ライブを開始できるようになりました。 ストリーミングセッションに 属しますメディア フレームワークは HTTP Live Streaming の仕様のほとんどに対応していますが、 適応ビットレートなどもありますサポートされているメディア形式のドキュメントで、 ご確認ください。

  • EXIF データ

    ExifInterface に、絞り値、ISO、露出の新しいフィールドが追加されました あります。

  • ビデオカメラのプロファイル

    新しい hasProfile() メソッドと複数の動画 品質プロファイル(QUALITY_1080PQUALITY_720PQUALITY_CIF など)を使用して、カムコーダーを判別 画質のオプションです。

  • デジタル メディア ファイル転送

    このプラットフォームには、USB 経由のメディア/画像転送プロトコル(MTP/PTP)の組み込みサポートが含まれています。 これにより、ユーザーはあらゆる種類のメディア ファイルをデバイス間やホスト コンピュータに簡単に転送できます。 デベロッパーはこのサポートを基に、ユーザーがリッチなアプリケーションを作成、管理できるアプリケーションを作成できます。 デバイス間で転送または共有するメディア ファイル。

  • デジタル著作権管理(DRM)

    デジタル著作権管理(DRM)の新しいフレームワークでデジタル著作権の あります。これは、次の 2 つのアーキテクチャ レイヤに実装されています。

    • DRM フレームワーク API。アプリケーションに公開され、Dalvik VM を介して実行されます。 使用できます。
    • フレームワーク API を実装し、DRM のインターフェースを公開するネイティブ コード DRM マネージャー プラグインを使用して、さまざまな DRM スキームの著作権管理と復号を処理できます。

    アプリケーション デベロッパー向けに、このフレームワークでは抽象化された統合 API を使用して、 保護する方法を学びます。この API は DRM オペレーションの複雑さを隠蔽し、 多様な DRM にわたり、保護されたコンテンツと保護されていないコンテンツの両方に対して一貫した運用モードを使用できます。 説明します。

    デバイス メーカー、コンテンツ所有者、インターネット デジタル メディア プロバイダにとって DRM は フレームワークのプラグイン API は、任意の DRM スキームのサポートを Android システム: コンテンツ保護を安全に適用します。

    プレビュー リリースでは、デジタル配信のチェックと適用のためのネイティブ DRM プラグインは提供されていません。 あります。ただし、デバイス メーカーから DRM プラグインがデバイスに付属している場合があります。

    android.drm パッケージには、すべての DRM API があります。

キーボードのサポート

  • Control、Meta、Caps Lock、Num Lock、 Scroll Lock の修飾子をサポートします。詳しくは META_CTRL_ON と関連フィールドをご覧ください。
  • デスクトップ スタイルの完全なキーボードに対応しており、Esc、Home、End、 削除などフルキーボードからのキーイベントかどうかを判別するには、 getKeyboardType() のクエリと KeyCharacterMap.FULL の確認
  • TextView がキーボードベースの切り取り、コピー、 貼り付け、すべて選択。Ctrl+X、Ctrl+C、 Ctrl+V キー、Ctrl+A キーの順に押します。PageUp/PageDown、Home/End、 キーボードでのテキスト選択に対応しました
  • KeyEvent に、キーを簡単にチェックできるように新しいメソッドがいくつか追加されました。 正しく、一貫性を持たせる必要があります。hasModifiers(int) をご覧ください。 hasNoModifiers(), metaStateHasModifiers(), metaStateHasNoModifiers()
  • アプリでカスタム キーボード ショートカットを実装するには、ActivityDialog、または View をサブクラス化して実装します。 onKeyShortcut()。フレームワークはこのメソッドを呼び出します。 常に自動スクロールで表示されますオプション メニューの作成時にキーボードを登録できる 各 <item>android:alphabeticShortcut 属性または android:numericShortcut 属性を設定してショートカットを使用する 要素(または setShortcut() を使用)で定義できます。
  • Android 3.0 に導入された新しい「仮想キーボード」ID が KeyCharacterMap.VIRTUAL_KEYBOARD のデバイス。仮想デスクトップ キーボードにはデスクトップ スタイルの US キーマップがあり、テスト用のキーイベントを合成するのに便利です 表示されます。

タッチイベントの分割

これまでは、一度に 1 つのビューのみがタッチイベントを受け入れることができました。Android 3.0 タッチイベントを複数のビューやウィンドウで分割するためのサポートが追加され、異なるビューで受け入れられるようになった 同時に発生します。

アプリがターゲットとする場合、分割タッチイベントはデフォルトで有効になります。 Android 3.0。つまり、アプリケーションが android:minSdkVersion または または android:targetSdkVersion 属性の値を "11" に設定します。

ただし、次のプロパティを使用すると、内部のビュー間でタッチイベントの分割を無効にできます。 または複数のウィンドウ間で 表示できます

  • ビューグループの android:splitMotionEvents 属性 を使用すると、レイアウト内の子ビュー間で発生する分割タッチイベントを無効にできます。次に例を示します。
    <LinearLayout android:splitMotionEvents="false" ... >
        ...
    </LinearLayout>
    

    この方法では、線形レイアウトの子ビューでタッチイベントを分割することはできず、1 つのビューだけが 1 度にタッチイベントを受信できます。

  • android:windowEnableSplitTouch スタイル プロパティ アクティビティのテーマに適用することで、ウィンドウ間でのタッチイベントの分割を無効にできます アプリケーション全体を サポートします次に例を示します。
    <style name="NoSplitMotionEvents" parent="android:Theme.Holo">
        <item name="android:windowEnableSplitTouch">false</item>
        ...
    </style>
    

    このテーマを <activity> または <application> に適用すると、 現在のアクティビティ ウィンドウ内のタッチイベントのみが受け入れられます。たとえば、CPU 使用率、メモリ使用率、 複数のウィンドウでのタッチイベントがあるため、システムバーが複数のウィンドウで同時にタッチイベントを受け取ることはできません。 できます。アクティビティ内のビューでタップを分割できるかどうかには影響しません。 デフォルトのアクティビティは、引き続きタッチイベントをビュー間で分割できます。

    テーマの作成について詳しくは、スタイルとテーマの適用をご覧ください。

Webkit

  • 新しい WebViewFragment クラスにより、 WebView
  • 新しい WebSettings メソッド: <ph type="x-smartling-placeholder">
      </ph>
    • setDisplayZoomControls() を使用すると、非表示にできます ユーザーが指の操作でズームできる状態で画面上のズーム コントロールを使用できる(setBuiltInZoomControls() を設定する必要があります true)。
    • 新しい WebSettings メソッドである setEnableSmoothTransition() を使用すると、 を使用すると、パンやズームを滑らかに遷移させることができます。有効にすると、WebView でソリューションが選択される (たとえば、リクエスト中に WebView のコンテンツが更新されない、 あります。
  • 新しい WebView メソッド: <ph type="x-smartling-placeholder">
      </ph>
    • 処理を一時停止する onPause() コールバック WebView が非表示になるとこれは、不要な CPU を削減したり、 WebView がフォアグラウンドにないときのネットワーク トラフィック。
    • 処理を再開するための onResume() コールバック WebView が関連付けられていますが、onPause() で一時停止されました。
    • saveWebArchive() を使用すると、 現在のビューをデバイス上のウェブ アーカイブとして表示できます。
    • showFindDialog() がテキスト検索を開始します。 現在のビューに表示されます。

ブラウザ

ブラウザ アプリケーションには、ウェブ アプリケーションをサポートするために次の機能が追加されています。

  • メディア キャプチャ

    HTML Media Capture で定義されている ブラウザにより、ウェブ アプリケーションから音声、画像、動画のキャプチャや 制御します。たとえば、次の HTML は、ユーザーが アップロードする写真をキャプチャ:

    <input type="file" accept="image/*;capture=camera" />
    

    または、capture=camera パラメータを除外することで、ユーザーは 新しい画像をカメラで撮影するか、デバイス(ギャラリー アプリなど)から画像を選択します。

  • デバイスの向き

    Device Orientation Event(デバイスの向きのイベント)で定義 仕様により、ウェブ アプリケーションで DOM イベントをリッスンして、 デバイスの物理的な向きと動きに関する情報。

    デバイスの向きは x 軸、y 軸、z 軸で角度で表され、動きは 加速度と回転速度のデータで表現されます。ウェブページは画面の向きを登録できます イベントタイプ "deviceorientation"window.addEventListener を呼び出します。 また、"devicemotion" イベントタイプを登録して、モーション イベントに登録します。

  • CSS 3D 変換

    CSS 3D Transform で定義された Module を使用した場合、ブラウザでは CSS によってレンダリングされた要素を 3 つの要素で変換できます。 定義できます。

JSON ユーティリティ

新しいクラス JsonReaderJsonWriter を活用 JSON ストリームを読み書きできます新しい API は、org.json クラスを補完するものです。 メモリ内のドキュメントです

JsonReader のインスタンスを作成するには、次の呼び出しを呼び出します。 そのコンストラクタ メソッドを呼び出し、JSON 文字列をフィードする InputStreamReader を渡します。 次に、beginObject() を呼び出してオブジェクトの読み取りを開始し、 nextName() を含むキー名を作成し、メソッドを使用して値を読み取ります。 (nextString()nextInt() など)に指定し、hasNext() が true である間、この操作を続行します。

JsonWriter のインスタンスを作成するには、そのコンストラクタを呼び出して、 適切な OutputStreamWriter を渡します。次に、JSON データを 上記と同様に、name() を使用してプロパティ名を追加します。 および適切な value() メソッドを使用して、 あります。

デフォルトでは、これらのクラスは厳格になっています。setLenient() 各クラスのメソッドは、受け入れる内容に自由度が高いように設定します。この寛大 解析モードは、org.json のデフォルト パーサーとも互換性があります。

新しい特徴定数

<uses-feature> manfest 要素は、外部エンティティ(Google Play など)に アプリが依存するハードウェアとソフトウェアの機能。このリリースでは、Android に 次の新しい定数を追加します。

  • "android.hardware.faketouch"

    この宣言が宣言されている場合、これは、 エミュレートされたタッチスクリーン(以上)が必要です。エミュレートされたタッチスクリーンを備えたデバイスでは、ユーザー入力が可能です。 タッチスクリーンの一部をエミュレートできる 提供しますそのような入力システムの例として、マウスやリモコンで クリックします。このような入力システムは、クリックダウン、クリックアップ、ドラッグなどの基本的なタッチイベントをサポートしています。 ただし、より複雑な入力タイプ(ジェスチャー、フリングなど)は、より難しくなったり、 疑似タップ デバイスでは不可能です(マルチタッチ ジェスチャーは明らかに不可能です)。

    アプリで複雑なジェスチャーを必要とせずエミュレートされたタッチスクリーンを備えたデバイスからアプリケーションを除外したい場合は、 <uses-feature>"android.hardware.faketouch" を宣言する 要素です。こうすることで、できる限り多くの種類のデバイスでアプリを利用できるようになります。 これにはエミュレートされたタッチスクリーン入力のみを提供するものも含まれます。

    タッチスクリーンを搭載したデバイスはすべて、"android.hardware.faketouch" もサポートしています。その理由は次のとおりです。 タッチスクリーン機能は、疑似タップ機能のスーパーセットです。したがって、お客様から実際に <uses-feature> を Faketouch 用の要素です。

新しい権限

  • "android.permission.BIND_REMOTEVIEWS"

    これは、<service> マニフェストで必要な権限として宣言する必要があります。 RemoteViewsService を実装するための要素です。たとえば RemoteViewsService を使用して マニフェスト エントリは次のようになります。

    <service android:name=".widget.WidgetService"
        android:exported="false"
        android:permission="android.permission.BIND_REMOTEVIEWS" />
    

新しいプラットフォーム テクノロジー

  • ストレージ <ph type="x-smartling-placeholder">
      </ph>
    • オンボード eMMC ストレージを有効にする ext4 ファイル システムのサポート。
    • MTP デバイスをサポートする FUSE ファイル システム。
    • キーボードと USB ハブをサポートする USB ホストモード。
    • MTP/PTP のサポート
  • Linux カーネル <ph type="x-smartling-placeholder">
      </ph>
    • 2.6.36 にアップグレード
  • Dalvik VM <ph type="x-smartling-placeholder">
      </ph>
    • SMP をサポートして最適化するための新しいコード
    • JIT インフラストラクチャのさまざまな改善
    • ガベージ コレクタの改善: <ph type="x-smartling-placeholder">
        </ph>
      • SMP 用にチューニング済み
      • より大きなヒープサイズのサポート
      • ビットマップとバイトバッファの処理を統一
  • Dalvik コアライブラリ <ph type="x-smartling-placeholder">
      </ph>
    • はるかに高速な新しい NIO(最新の I/O ライブラリ)の実装
    • 例外メッセージの改善
    • 全体を通じた正確性とパフォーマンスの修正

API 差異レポート

Android 3.0(API レベル)におけるすべての API の変更点について詳しくは、 11 など)が含まれている場合は、API 差分レポートをご覧ください。

API レベル

Android 3.0 プラットフォームでは、 使用できます。Android 3.0 API 値には整数の識別子( 11 - 保存されることはありません。「API レベル」と呼ばれるこの識別子によって、 アプリが Google Cloud とどのように互換性があるかを インストール前に確認する必要があります。

Android 3.0 で導入された API をアプリで使用するには、 提供されている Android ライブラリを使用してアプリをコンパイルする必要があります。 Android 3.0 SDK プラットフォームに統合されています。必要に応じて、 android:minSdkVersion="11"も追加する必要があります アプリケーションの <uses-sdk> 要素に 使用します。アプリが Android 2.3 以降でのみ動作するように設計されている場合は、 この属性を宣言すると、アプリがそれより前には サポートしています。

詳細については、API とは何か レベル