API レベル: 13
Android 3.2(HONEYCOMB_MR2
)は増分プラットフォーム リリースで、
開発できます。以下のセクションでは、その概要を説明します。
新機能とデベロッパー向け API の概要を
ご紹介します
デベロッパー向け Android 3.2 プラットフォームは、 コンポーネントをダウンロードします。このダウンロード可能なプラットフォームには Android ライブラリとシステム イメージ、エミュレータ スキンのセットと、 できます。Android 3.2 に対する開発やテストを開始するには、 Android SDK Manager を使用して、SDK にプラットフォームをダウンロードします。
プラットフォームのハイライト
新しいユーザー機能
- 幅広いタブレット向けの最適化
Android 3.2 では、さまざまなシステムの最適化により、幅広いタブレット デバイスで優れたユーザー エクスペリエンスを実現しています。
- 固定サイズのアプリに対する互換性ズーム
Android 3.2 では、新しい互換ズームモードが導入されており、 大きなデバイスで固定サイズのアプリを表示する新しい方法をユーザーに提供します。この新しいモードでは、タブレットなど、大きな画面サイズで実行するように設計されていないアプリに対して、標準の UI ストレッチに代わるピクセル スケーリング モードが提供されます。新しいモードは ユーザーがシステムバーのメニュー アイコンからアクセスできる場合、 サポートしています。
- SD カードからのメディアの同期
SD カードをサポートするデバイスで、メディア ファイルを直接読み込めるようになりました そのデータを使用するアプリに移動できます。システム機能が システムのメディアストアからアプリからアクセス可能。
デベロッパー向けの新機能
- 画面の管理をサポートする拡張 API
Android 3.2 では、プラットフォームの画面サポート API が拡張され、デベロッパーは Android 搭載デバイスの幅広い範囲でアプリケーション UI を管理できるようになりました。API には、新しいリソース修飾子と マニフェスト属性を使用して、リソースの状態を アプリがさまざまなサイズで表示され、 サイズカテゴリを選択します。
固定サイズのアプリ、または限られたサイズのアプリに対して、 サポートされ、プラットフォームには新しいズーム機能も備わっています。 小さな画面領域に UI をレンダリングしてから拡大縮小する互換モード 画面全体に表示されます。Screen Support API とそのコントロールの詳細については、以下のセクションをご覧ください。
API の概要
Screens Support API
Android 3.2 では、さまざまな画面サイズでアプリの表示方法をより細かく制御できる、新しい画面サポート API が導入されています。この API は、プラットフォームの一般的な画面密度モデルなど、既存の画面サポート API をベースに構築されていますが、一般的な画面サイズ(large や xlarge など)ではなく、密度に依存しないピクセル単位(幅 600dp や 720dp など)で測定される寸法で特定の画面範囲を正確にターゲティングできる機能が追加されています。
アプリの UI を設計する際は、引き続きプラットフォームに依存して密度の抽象化を提供できます。つまり、アプリはデバイス間での実際のピクセル密度の違いを補正する必要はありません。マイページ 水平方向または垂直方向の量に応じてアプリの UI をデザインできる できます。プラットフォームは、smallestWidth、width、height の 3 つの新しい特性を使用して、使用可能なスペースの量を表します。
- 画面の smallestWidth は基本の最小サイズで、 密度非依存ピクセル(「dp」)単位で測定されます。画面の高さまたは幅の短い方です。画面が縦向きの場合、smallestWidth は通常幅に基づきますが、横向きの場合は高さに基づきます。すべての場合で、smallestWidth は 向きに関係なく値は変わりません。SmallestWidth は、 スペースは可能な限り短い幅を表すため、用途にとって重要です。 アプリ UI を描画する必要がある場所(画面領域は含まない) 使用します。
- 一方、画面の幅と高さは、 アプリケーションのレイアウトに使用できる現在の水平方向または垂直方向のスペース(測定) 単位は「dp」(システムが予約した画面領域は含みません)幅と ユーザーが画面の向きを横向きに切り替えたときに画面の高さが変化する 使用できます
新しい画面サポート API は、アプリの UI を管理できるように設計されています。 現在の画面の SmallestWidth に応じて調整が行われます。必要に応じて、現在の幅または高さに合わせて UI を管理することもできます。これらの目的のため、API は 次のツールが用意されています。
- 新しいリソース修飾子を使用して、レイアウトなどのリソースを 最小の smallestWidth、width、または height
- アプリの最大数を指定する新しいマニフェスト属性 画面互換性範囲
さらに、アプリは引き続きシステムにクエリを実行し、UI とリソースの 以前のバージョンと同様に、実行時にリソースを読み込むことができます。
新しい API では、smallestWidth、width、height を使用して画面をより直接的にターゲットに設定できるため、さまざまな画面タイプの一般的な特性を理解しておくと役に立ちます。次の表に、dp 単位で測定した例を示します。
タイプ | 密度(一般化) | サイズ(dp) | smallestWidth(dp) |
---|---|---|---|
基準となるスマートフォン | mdpi | 320×480 | 320 |
小型タブレット / 大型スマートフォン | mdpi | 480×800 | 480 |
7 インチ タブレット | mdpi | 600x1024 | 600 |
10 インチ タブレット | mdpi | 800×1280 | 800 |
以降のセクションでは、新しい画面修飾子とマニフェスト属性について詳しく説明します。Screen Support API の使用方法の詳細については、複数の画面のサポートをご覧ください。
画面サポート用の新しいリソース修飾子
Android 3.2 の新しいリソース修飾子を使用すると、画面サイズの範囲にレイアウトを適切にターゲティングできます。修飾子を使用すると、密度非依存ピクセル単位で測定される特定の最小最小幅、現在の幅、または現在の高さに合わせて設計されたリソース構成を作成できます。
新しい修飾子は次のとおりです。
swNNNdp
- リソースを使用する最小の smallestWidth を「dp」単位で指定します。前述のとおり、画面の smallestWidth は、向きに関係なく一定です。例:sw320dp
、sw720dp
、sw720dp
。wNNNdp
とhNNNdp
- 最小値を指定します リソースを使用する幅または高さ(「dp」単位)あります。前述のように、画面の幅と高さは画面の向きに相対的であり、向きが変わるたびに変化します。例:w320dp
、w720dp
、h1024dp
。
必要に応じて、重複するリソース構成を複数作成することもできます。 たとえば、一部のリソースを 480 dp より広い画面で使用するようにタグ付けし、他のリソースを 600 dp より広い画面で使用するようにタグ付けし、さらに他のリソースを 720 dp より広い画面で使用するようにタグ付けできます。特定の画面に対して複数のリソース構成が適格な場合、システムは最も近い一致する構成を選択します。特定の画面に読み込まれるリソースを正確に制御するには、1 つの修飾子でリソースにタグを付けるか、複数の新しい修飾子または既存の修飾子を組み合わせます。
前述の典型的なディメンションに基づいて、 次のように、新しい修飾子を使用できます。
res/layout/main_activity.xml # For phones res/layout-sw600dp/main_activity.xml # For 7” tablets res/layout-sw720dp/main_activity.xml # For 10” tablets res/layout-w600dp/main_activity.xml # Multi-pane when enough width res/layout-sw600dp-w720dp/main_activity.xml # For large width
古いバージョンのプラットフォームでは新しい修飾子が無視されるため、 必要に応じてこれらを混ぜて、どのデバイスでもアプリが適切に表示されるようにします。現在地 いくつか例を示します。
res/layout/main_activity.xml # For phones res/layout-xlarge/main_activity.xml # For pre-3.2 tablets res/layout-sw600dp/main_activity.xml # For 3.2 and up tablets
新しい修飾子の使用方法について詳しくは、新しい修飾子の使用 サイズ修飾子を使用します。
画面サイズ互換性のための新しいマニフェスト属性
フレームワークには、新しい <supports-screens>
マニフェスト属性のセットが用意されており、
さまざまな画面サイズに対するアプリのサポートを管理します。
具体的には、アプリが表示される最大画面と最小画面を指定できます。
大きな画面上で稼働するように設計されており
新しい画面がなくても
互換モードをご覧ください。前述のリソース修飾子と同様に、新しい
マニフェスト属性では、アプリがサポートする画面の範囲を指定します。
指定されています。
画面サポートの新しいマニフェスト属性は次のとおりです。
android:compatibleWidthLimitDp="numDp"
- これ 属性を使用すると、アプリケーション レイヤがレンダリングする 互換性モードがなくても実行できることです。現在の画面が指定した値より大きい場合、システムはアプリを通常モードで表示しますが、ユーザーは必要に応じてシステムバーの設定で互換性モードに切り替えることができます。android:largestWidthLimitDp="numDp"
- これ 属性を使用すると、アプリケーション レイヤがレンダリングする 実行されるよう設計されています。現在の画面が指定した値より大きい場合 アプリが画面互換性モードに強制的に切り替わり、 現在の画面に表示されます。android:requiresSmallestWidthDp="numDp"
- これ 属性を使用すると、アプリケーションがレンダリングする最小の SmallestWidth を 実行できます。現在の画面が指定した値より小さい場合、システムは アプリがデバイスに対応していないと判断するが、それを妨げることはない インストールして実行できないようにします。
注: Google Play は現在、上記の属性に基づいてアプリをフィルタリングしていません。フィルタリングは、今後のプラットフォーム リリースで追加される予定です。アプリケーションに必要な
画面サイズに基づくフィルタリングでは、既存の <supports-screens>
を使用できます。
属性です。
新しい属性の使用方法の詳細については、画面サイズのサポートを宣言するをご覧ください。
画面互換性モード
Android 3.2 では、アプリ向けに新しい画面互換性モードが提供される 大画面はサポートされないと明示的に宣言し、 確認する必要がありますこの新しい「ズーム」機能では、ピクセル スケール モードです。 小さな画面領域にアプリをレンダリングしてから、ピクセルを 現在の画面全体に表示されます。
デフォルトでは、アプリのユーザー オプションとして画面互換性モードが提供されます。 必要があります。ユーザーは、システムバーで利用可能なコントロールを使用して、ズームモードのオンとオフを切り替えることができます。
新しい画面互換性モードは、 プラットフォームでは、マニフェストを使用して、 属性です。アプリで無効にした場合、ズーム機能は利用できません。互換性 オプションとして設定できます。
注: Google Chat の設定に関する重要な情報は、 アプリで互換モードを制御する方法については、Android の大きな画面上のアプリ向けの新しいモードの記事をご覧ください。 デベロッパー ブログ。
720p テレビなどのデバイス向けの新しい画面密度
720p のテレビなどで動作するアプリケーションのニーズを満たすには、
Android 3.2 では新しい汎用密度画面が導入され、
tvdpi
、およそ 213 dpi。アプリケーションは以下をクエリできる
densityDpi
の新しい密度です。
テレビとリソースのタグ付けに使用する新しい tvdpi
修飾子
よく似たデバイスです。例:
res/drawable-tvdpi/my_icon.png # Bitmap for tv density
通常、アプリでこの密度に対応する必要はありません。720p 画面に出力する必要がある場合は、UI 要素をプラットフォームで自動的にスケーリングできます。
UI フレームワーク
- フラグメント
- 新しい
Fragment.SavedState
クラスは、saveFragmentInstanceState()
を介してフラグメント インスタンスから取得された状態情報を保持します。 - 新しいメソッド
saveFragmentInstanceState()
は、指定された Fragment の現在のインスタンス状態を保存します。この状態は、後で新しいインスタンスを作成するときに使用できます。 現在の状態に一致する Fragment の親オブジェクトが作成されます。 - 新しいメソッド
setInitialSavedState()
は、Fragment の最初の作成時に初期保存状態を設定します。 - 新しい
onViewCreated()
コールバック メソッドは、保存された状態がビューに復元される前に、onCreateView()
が返されたことをフラグメントに通知します。 isDetached()
メソッドは、フラグメントが UI から明示的にデタッチされているかどうかを判断します。- 新しい
attach()
およびdetach()
メソッドを使用すると、アプリは UI のフラグメントを再アタッチまたはデタッチできます。 - 新しい
setCustomAnimations()
オーバーロード メソッドを使用すると、開始 / 終了オペレーション、特にバックスタックをポップするときに実行する特定のアニメーション リソースを設定できます。既存の実装では、バックスタックをポップする際のフラグメントの動作の違いを考慮していません。
- 新しい
- ActivityInfo と ApplicationInfo の画面サイズ情報
ActivityInfo
さんがCONFIG_SCREEN_SIZE
さんを追加しますCONFIG_SMALLEST_SCREEN_SIZE
(ビットマスク) (configChanges
)ビットは、アクティビティが 画面サイズと最小画面サイズに対応しますApplicationInfo
さんが追加largestWidthLimitDp
、compatibleWidthLimitDp
、 およびrequiresSmallestWidthDp
フィールド 対応する<supports-screens>
属性から取得 属性を宣言します。
- WindowManager からディスプレイサイズを取得するためのヘルパー
- 新しいメソッド
getSize()
とgetRectSize()
を使用すると、アプリはディスプレイの元のサイズを取得できます。
- 新しいメソッド
- 新しい公開「ホログラフィック」スタイル
<ph type="x-smartling-placeholder">
- </ph>
- プラットフォームで、テキスト、アクションバー ウィジェット、タブなどに対するさまざまな公開「ホログラフィック」スタイルが公開されるようになりました。完全なリストについては、
R.style
をご覧ください。
- プラットフォームで、テキスト、アクションバー ウィジェット、タブなどに対するさまざまな公開「ホログラフィック」スタイルが公開されるようになりました。完全なリストについては、
LocalActivityManager
、ActivityGroup
、LocalActivityManager
のサポートが終了しました- 新しいアプリケーションでは、これらのクラスの代わりに Fragment を使用する必要があります。古いバージョンのプラットフォームで引き続き実行するには、Android SDK で入手できる v4 サポート ライブラリ(互換性ライブラリ)を使用します。v4 サポート ライブラリには、Android 1.6(API レベル 4)まで下位互換性のある Fragment API のバージョンが用意されています。
- Android 3.0(API レベル)で開発するアプリの場合
11 以降のバージョンでは、通常、タブは新しい
ActionBar.newTab()
と関連 API アクションバー領域内にタブを配置できます
メディア フレームワーク
- プラットフォームのメディア プロバイダ(
MediaStore
)を使用するアプリケーションは、 リムーバブル SD カード(デバイスでサポートされている場合)アプリは、MTP API を使用して SD カードのファイルを直接操作することもできます。
グラフィック
- Point と PointF の Parcelable ユーティリティ
<ph type="x-smartling-placeholder">
- </ph>
Point
およびPointF
クラスにParcelable
インターフェースとユーティリティ メソッドdescribeContents()
、readFromParcel()
、writeToParcel()
が含まれるようになりました。
IME フレームワーク
- 次の新しい
getModifiers()
メソッド: 修飾キーの現在の状態を取得する
USB フレームワーク
- デバイスの未加工の USB 記述子を取得する新しい
getRawDescriptors()
メソッド。このメソッドを使用すると、上位レベルの API で直接サポートされていない記述子にアクセスできます。
ネットワーク
- ネットワーク タイプの定数
ConnectivityManager
は定数TYPE_ETHERNET
とTYPE_BLUETOOTH
を追加します。
電話
- 新しい
NETWORK_TYPE_HSPAP
ネットワーク タイプの定数。
主要なユーティリティ
- Parcelable ユーティリティ
- 新しいインターフェース
Parcelable.ClassLoaderCreator
により、アプリケーションはオブジェクトが作成されている ClassLoader を受信できます。 ParcelFileDescriptor
オブジェクトを管理するための新しいadoptFd
、dup()
、fromFd()
。
- 新しいインターフェース
- Binder と IBinder
<ph type="x-smartling-placeholder">
- </ph>
Binder
とIBinder
の新しいメソッドdumpAsync()
により、アプリケーションは指定されたファイルにダンプできるようになり、ターゲットが非同期で実行されるようになります。- 新しい
IBinder
プロトコル トランザクション コードTWEET_TRANSACTION
により、アプリからツイートを送信できるようになりました 渡します。
新しい特徴定数
プラットフォームには、宣言可能な新しいハードウェア機能定数が追加されています。
使用して Google Cloud などの外部エンティティに
必要なハードウェアとソフトウェアの機能を試します。これらを
と、<uses-feature>
マニフェスト要素内のその他の機能定数。
Google Play は、<uses-feature>
属性に基づいてアプリをフィルタし、要件を満たしているデバイスでのみアプリを利用できるようにします。
- 横向きまたは縦向きの要件に対応する機能定数
Android 3.2 では、横向き、縦向き、またはその両方での表示が必要かどうかをアプリで指定できる新しい機能定数が導入されました。これらの定数を宣言すると、関連する画面の向きに対応していないデバイスにアプリをインストールできないことを示します。一方、定数の 1 つまたは両方が宣言されていない場合、宣言されていない画面の向きに対する設定がアプリにないことを示します。この場合、その画面の向きに対応していないデバイスにアプリがインストールされる可能性があります。
android.hardware.screen.landscape
- アプリケーションで表示が必要です。 横向き。android.hardware.screen.portrait
- アプリケーションで表示が必要です。 縦向きにします。
通常、横向きと縦向きの両方で適切に動作する一般的なアプリでは、向きの要件を宣言する必要はありません。むしろ、テレビ向けに設計されたアプリなど、主に 1 つの向き向けに設計されたアプリでは、いずれかの定数を宣言して、その向きをサポートしていないデバイスでは使用できないようにすることができます。
マニフェストで宣言されているアクティビティのいずれかが、特定の向きで実行するようリクエストした場合、
android:screenOrientation
属性を使用している場合、これはアプリが その向きが必要です。 - その他の特徴定数
android.hardware.faketouch.multitouch.distinct
- アプリは、2 つ以上のポイントを個別にトラッキングする、エミュレートされたマルチタッチ入力のサポートを必要とします。android.hardware.faketouch.multitouch.jazzhand
- アプリは、5 つ以上のポイントを個別にトラッキングする、エミュレートされたマルチタッチ入力のサポートを必要とします。
API の差分レポート
Android 3.2(API レベル 13)のすべての API の変更点の詳細については、API 差分レポートをご覧ください。
API レベル
Android 3.2 プラットフォームでは、 使用できます。Android 3.2 API には、システム自体に保存される整数識別子(13)が割り当てられます。「API レベル」と呼ばれるこの識別子によって、 アプリが Google Cloud とどのように互換性があるかを インストール前に確認する必要があります。
Android 3.2 で導入された API をアプリで使用するには、
提供されている Android ライブラリを使用してアプリをコンパイルする必要があります。
Android 3.2 SDK プラットフォームに統合されています。必要に応じて、アプリのマニフェストの <uses-sdk>
要素に android:minSdkVersion="13"
属性を追加する必要もあります。
詳細については、API レベルとはをご覧ください。