サポート ライブラリ変更内容のアーカイブ

このページでは、以前のサポート ライブラリ パッケージのリリースについて詳しく説明します。サポート ライブラリの最新リリースについては、サポート ライブラリの最新リビジョンをご覧ください。

リビジョン 26.0.0 Beta 2

(2017 年 6 月)

26.0.0-beta2 はプレリリース版である点にご注意ください。API サーフェスは変更される可能性があります。また、サポート ライブラリの最新の安定版の機能やバグ修正が含まれているとは限りません。

重要: サポート ライブラリは Google の Maven リポジトリから利用できるようになりました。SDK Manager からサポート リポジトリをダウンロードする必要はありません。詳細については、サポート ライブラリのセットアップをご覧ください。

新しい API

API 差分

バグの修正

  • Android O SDK の削除により、TextViews で斜体が失われる
  • MediaBrowserServiceCompat に接続するときに null ポインタ例外が発生する
  • TextInputLayout で onProvideAutofillStructure() にヒントを設定する必要がある
  • O で TextView の自動サイズ調整を使用すると、スタック オーバーフローが発生する

リビジョン 26.0.0 Beta 1

(2017 年 5 月)

26.0.0-beta1 はプレリリース版である点にご注意ください。API サーフェスは変更される可能性があります。また、サポート ライブラリの最新の安定版の機能やバグ修正が含まれているとは限りません。

重要: サポート ライブラリは Google の Maven リポジトリから利用できるようになりました。SDK Manager からサポート リポジトリをダウンロードする必要はありません。詳細については、サポート ライブラリのセットアップをご覧ください。

重要な変更点

  • FragmentActivity.setSupportMediaController()FragmentActivity.getSupportMediaController() が削除されました。新しい静的な MediaControllerCompat.setMediaController() メソッドと MediaControllerCompat.getMediaController() メソッドを使用してください。
  • BottomNavigationView は、すでに選択されているアイテムが選択されたときに、onNavigationItemSelected() を呼び出すのではなく、onNavigationItemReselected() を呼び出すようになりました。
  • findViewById() メソッドのすべてのインスタンスが、View ではなく <T extends View> T を返すようになりました。この変更による影響は次のとおりです。
    • これにより、既存のコードの戻り値の型が不明瞭になる可能性があります。たとえば、findViewById() の呼び出し結果を受け取る someMethod(View)someMethod(TextView) の両方がある場合などです。
    • Java 8 ソース言語を使用する場合、戻り値の型に制約がない場合(例: assertNotNull(findViewById(...)).someViewMethod()))は、View への明示的なキャストが必要です。
    • 非 final の findViewById() メソッドをオーバーライドする(Activity.findViewById() など)場合、戻り値の型を更新する必要があります。

新しい API

  • FragmentManagerFragment には isStateSaved() メソッドがあり、状態を失うことなくトランザクションが許可されるかどうかを照会できます。特に、トランザクションの実行前に onClick() イベントを処理する場合にチェックできます。
  • パスモーションは AnimatedVectorDrawableCompat でサポートされています。パス モーションを使用すると、1 つのオブジェクト アニメーターが 1 つのパスに基づいて 2 つのプロパティを同時に変更できます。パスは、アニメーターの XML で android:pathData として指定されます。
  • 物理ベースのアニメーション:
    • 新しい FlingAnimation は、初期速度でのアニメーションをサポートし、速度を滑らかに下げます。
    • DynamicAnimation のサブクラスは、あらゆるオブジェクトのカスタム プロパティのアニメーション化をサポートします。
    • SpringAnimationFlingAnimation の両方で、View または Object を関連付けることなく、浮動小数点値をアニメーション化できるようになりました。

    詳細については、スプリング アニメーションフリング アニメーションのプレビュー ページをご覧ください。

  • XML でのフォント サポート:
    • ResourcesCompat.getFont により、TextView.setTypeface() で使用できるフォント リソース(フォント ファミリー XML を含む)を読み込むことができます。
    • AppCompat を使用する場合、TextView は android:fontFamily XML 属性を使用して、フォント リソースまたはフォント ファミリー XML を指定できます。
    • XML フォント ファミリーを使用して、スタイルと太さのバリエーションを持つフォント ファミリーを作成できます。(サポート ライブラリ クラスを使用してこれを行う場合は、app: 属性と android: 属性を使用します)。
  • ダウンロード可能フォント:
    • 新しい FontsContractCompat を使用すると、フォントをアプリにバンドルする代わりに、フォント プロバイダにフォントをリクエストできます。
    • フォントを XML でリクエストして、レイアウトで使用することもできます。
  • 絵文字互換性ライブラリ:
    • EmojiCompat は指定された CharSequence を処理して EmojiSpans を追加できます。
    • EmojiTextView とその他のウィジェット。絵文字を表示します。
    • FontRequestEmojiCompatConfig: フォント プロバイダに絵文字フォントをリクエストします。
  • TextView の自動サイズ設定:
    • TextView で自動サイズ設定を制御する TextViewCompat の新しいメソッドと XML 属性。
  • シークをサポートするリーンバック再生コントロール:
    • SeekBar を使用して再生コントロールをレンダリングする新しい PlaybackTransportRowPresenter
    • PlaybackTransportRowPresenter と連携し、シークをサポートする新しい PlaybackTransportControlGlue
    • アプリが PlaybackTransportControlGlue にシーク サムネイルを提供するための新しい基本クラス PlaybackSeekDataProvider
  • Preferences Data Store:
    • PreferenceDataStore を使用して、PreferencePreferenceManager の新しいメソッドで設定した独自の設定ストレージを実装できるようになりました。

既知の問題

  • ダウンロード可能なフォントと絵文字の Google Play 開発者サービスとの統合は、Google Play 開発者サービス v11 以降でのみ動作します。このバージョンは、現在 Google Play 開発者サービスのベータ版プログラムを通じてご利用いただけます。

バグの修正

  • MediaBrowserCompat.search() API が機能しない(AOSP 問題 262170
  • ViewCompat.postInvalidateOnAnimation() が例外をスローする(AOSP 問題 80146
  • onActivityCreated() が破棄された Activity のフラグメントを呼び出す
  • RecyclerView.isComputingLayout() はプリフェッチ中に true を返す
  • Fade 遷移が中断および反転すると、View はアニメーションを最初から開始します。(Android フレームワークから修正済みです)。
  • Transition.FadeView の初期アルファ版を無視する(AOSP 問題 221820

リビジョン 26.0.0 Alpha 1

(2017 年 3 月)

26.0.0-alpha1 はプレリリース版である点にご注意ください。API サーフェスは変更される可能性があります。また、サポート ライブラリの最新の安定版の機能やバグ修正が含まれているとは限りません。

重要な変更点

注: 最小 SDK バージョンが 14 に引き上げられました。その結果、14 より前の API との互換性のためにのみ存在していた API の多くが非推奨になりました。これらの API のクライアントは、サポートが終了した各 API のリファレンス ページに記載されている同等のフレームワークに移行する必要があります。

  • Support-Percent モジュールはサポートが終了になりました。このモジュールのクライアントは、SDK Manager で個別のアーティファクトとして提供されている新しい ConstraintLayout ウィジェットに移行する必要があります。
  • support-fragment モジュールと、support-media-compat モジュールへの依存関係がなくなりました。

新しい API

O プレビューで追加されたプラットフォーム API の下位互換性をサポートするため、多くの新しいクラス、メソッド、定数が追加されています。

  • IME_FLAG_NO_PERSONALIZED_LEARNING: IME は、ブラウザなどのプライベート モードがあるアプリの「学習なし」フラグをリッスンできます。この機能により、IME はアプリがプライベート モードかどうかを把握して、アプリがプライベート モードのときに学習機能やアダプティブ機能を無効にできます。

25.2.0 と 26.0.0-alpha1 における API の変更点をすべて網羅したリストについては、サポート ライブラリ API の相違点レポートをご覧ください。

バグの修正

  • 単純な AutoTransition アニメーションが、ビューの「ジャンプ」によって中断されることがあります。(AOSP 問題 221816

リビジョン 25.4.0

(2017 年 6 月)

重要: サポート ライブラリは Google の Maven リポジトリから利用できるようになりました。SDK Manager からサポート リポジトリをダウンロードする必要はありません。詳細については、サポート ライブラリのセットアップをご覧ください。

重要な変更点

  • FragmentManager 状態の変化中は、executePendingTransactions()commitNow()popBackStackImmediate() などのトランザクションの呼び出しは許可されません。トランザクションのリエントラント実行は安全ではないため、FragmentManager は状態の変化中にこれを適用するようになりました。
  • このサポート ライブラリ リリースと並行して、multidex バージョン 1.0.2 もリリースします。このバージョンには、次の重要な変更が含まれています。
    • インストルメンテーション APK の Multidex 変換を許可します。
    • MultiDexTestRunner が非推奨になりました(代わりに AndroidJUnitRunner を使用してください)。
    • アプリの不適切なアーカイブ抽出管理に対する保護を強化します。
    • 一時ファイルが破棄される原因となるバグを修正しました。
    • 同時実行プロセスでインストールすることで、短時間でインストールできます。
    • API 19 と 20 でのインストールのバグを修正しました。

新しい API と変更された API

AnimatedVectorDrawableCompat でパスのモーフィングとパス補完がサポートされました。パスのモーフィングを使用すると、あるパス(android:valueFrom で指定)から別のパス(android:valueTo で指定)にシェイプを変化させることで、複雑で魅力的な視覚効果を提供できます。パス補間を使用すると、AnimatedVectorDrawableCompat の interpolator をパスとして指定できます(interpolator の XML で android:pathData として指定されます)。

API 差分

修正された問題

  • MediaBrowserServiceCompat に接続するときに null ポインタ例外が発生する
  • MediaBrowserCompat.search() API が機能しない(AOSP 問題 262170
  • BrowseFragment onItemClicked コールバックが 25.3.0 で破損する
  • 25.3.1 の VerticalGridView で上下にスクロールするときに NullPointerException が発生する
  • SimpleArrayMap.allocArrays() で ClassCastException が発生する

リビジョン 25.3.1

(2017 年 3 月)

修正された問題

  • SwitchCompat には、最小 SDK バージョン 14 以降が必要です。(AOSP 問題 251302
  • 物理ベースのアニメーション updateListener は、最初のフレームをスキップします。
  • BottomNavigationView ラベルのアニメーションが破損する。

リビジョン 25.3.0

(2017 年 3 月)

重要な変更点

Gradle からビルドするときに、サポート ライブラリのバージョン メタデータが AndroidManifest.xml に自動的に追加されます。これにより、公開ビルドのバージョンのトラッキングが簡単になります。次に例を示します。

<meta-data android:name="android.support.VERSION" android:value="25.3.0" />

サポートの終了

このリリースでは、いくつかのメソッドとクラスが非推奨になりました。これらの非推奨の API は今後のバージョンで削除される予定です。デベロッパーはこの API から移行する必要があります。特定の API から移行する方法について詳しくは、その API のドキュメントをご覧ください。

ExifInterface
ブール値メソッド getLatLong(float[]) は非推奨になりました。代わりに、新しいメソッド getLatLong() を使用してください。このメソッドは引数を取らずに double[] を返します。
mediacompat
PlaybackStateCompat.Builder.setErrorMessage(CharSequence) のサポートが終了しました。代わりに、新しいメソッド setErrorMessage(int, CharSequence) を使用します。このメソッドにはエラーコードとオプションの説明が渡されます。
EXTRA_SUGGESTION_KEYWORDS のサポートが終了しました。代わりに、MediaBrowserCompat 検索機能を使用してください。
v7.recyclerview
LinearLayoutManager.getInitialItemPrefetchCount() の名前が LinearLayoutManager.getInitialPrefetchItemCount() に変更されました。以前の名前は引き続きサポートされますが、今後のリリースで削除される予定です。

新しい API と変更された API

appcompat-v7
ActionBarDrawerToggle.setDrawerSlideAnimationEnabled(boolean) の新しいメソッドを使用すると、ナビゲーション ドロワーの切り替えアイコンのアニメーションを簡単に無効にできます。
customtabs
メッセージ チャネルのサポートを追加しました。詳細については、CustomTabsService.requestPostMessageChannel() および CustomTabsService.postMessage() のリファレンスをご覧ください。
dynamic-animation
新しい物理ベースのアニメーション ライブラリは、ユーザー入力に動的に反応するアニメーションを作成するための API セットを提供します。
leanback-v17
パララックスの背景のサポートを追加しました。詳しくは、Parallax のリファレンスをご覧ください。
TV インターフェースで時刻を選択するための TimePicker ウィジェットを追加しました。
mediacompat
検索機能を追加しました。詳細については、MediaBrowserCompat.search() および MediaBrowserServiceCompat.onSearch() のリファレンスをご覧ください。
シャッフル モードと繰り返しモードのサポートを追加しました。詳細については、MediaSessionCompat.setRepeatMode() および setShuffleModeEnabled() のリファレンスをご覧ください。

修正された問題

リビジョン 25.2.0

(2017 年 2 月)

重要な変更点

修正された問題

  • このリリースでは、A2DP デバイスとメディア ルーティング API を使用するとデバイスが応答しなくなり、再起動が必要になる場合がある MediaRouter の重大な問題が修正されています。
  • FragmentManager.FragmentLifecycleCallbacks クラスは静的になりました。

修正された問題

  • 画面ミラーリングでスライド プレゼンテーションを表示すると、デバイスが Wi-Fi から切断される
  • setMediaButtonReceiver() に登録されていないメディアアプリがメディアボタンで適切に処理されませんでした。
  • 文字列リソースでの VectorDrawable エラー(AOSP 問題 232407
  • TextInputLayout が、テキストが XML によって設定される場合のヒントとテキストをオーバーレイします。(AOSP 問題 230171
  • MediaControllerCompat のメモリリーク(AOSP 問題 231441
  • RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback() がクラッシュする
  • ビューホルダーをリサイクルすると RecyclerView がクラッシュする(AOSP 問題 225762
  • WearableExtender 内のアクションに対して getAllowGeneratedReplies() が誤って false を返す

リビジョン 25.1.1

(2017 年 1 月)

重要: サポート ライブラリのリビジョン 25.1.1 と 25.1.0 の android.support.v7.media.MediaRouter クラスには既知のバグがあります。アプリで v7 MediaRouter を使用している場合は、サポート ライブラリ リビジョン 25.2.0 に更新して、このバグを修正してください。

重要な変更点

  • フラグメント トランザクションを、トランザクション内およびトランザクション間で最適化できるようになりました。フラグメント トランザクションのオペレーションを最適化すると、キャンセルされるオペレーションを削除できます。たとえば、2 つのトランザクションが同時に実行され、1 つ目のトランザクションはフラグメント A を追加し、2 つ目のトランザクションはフラグメント A をフラグメント B に置き換えるとします。この場合、最初のオペレーションがキャンセルされ、フラグメント B のみが追加される可能性があります。これは、フラグメント A が作成または破棄のライフサイクルを通過しない可能性があることを意味します。

    この最適化の副作用は、フラグメントが想定した順序と異なる状態変化を引き起こす可能性があることです。たとえば、あるトランザクションがフラグメント A を追加し、2 件目のトランザクションがフラグメント B を追加し、3 件目のトランザクションがフラグメント A を削除するとします。最適化を行わなければ、フラグメント B の作成中にフラグメント A も存在することが予測される可能性があります。これは、フラグメント B が追加された後にフラグメント A が削除されるためです。最適化を行うと、フラグメント B の作成中にフラグメント A が存在することを、フラグメント B は確認できなくなります。これは、最適化によってフラグメント A の作成と破棄が削除される可能性があるためです。

    この最適化はデフォルトで無効になっています。最適化を有効にするには、FragmentTransaction.setAllowOptimization(true) を呼び出します。

  • Fragment は、Fragment.postponeEnterTransition()Fragment.startPostponedEnterTransition() を使用する準備ができるまで遷移とアニメーションを延期できるようになりました。この API は、アクティビティ遷移で使用される Activity.postponeEnterTransition() および Activity.startPostponedEnterTransition() に類似しています。

修正された問題

  • MediaSessionCompatTestIllegalArgumentException で失敗する
  • 25.1.0 では DetailsFragment.installTitleView() は呼び出されません。
  • フラグメント トランザクションにより終了時にゴーストビューが維持される(AOSP 問題 230679
  • BottomNavigationView にはアイテム アイコンとテキストの間にスペースが必要(AOSP 問題 230653
  • 選択したリスナーが、新しい PlaybackFragmentPlaybackSupportFragment にありません。
  • サポート ライブラリ バージョン 25.1.0 のエミュレータで、TextInputLayout フォーカスが正しく変更されない(AOSP 問題 230461
  • BottomNavigationView のメニューを置き換えられない(AOSP 問題 230343
  • RecyclerViewStaggeredGridLayoutManager がフルスパン アイテムでクラッシュする(AOSP 問題 230295
  • setCallback(null) の使用時に MediaSessionCompat でクラッシュする
  • 再生行が変更されたときに PlaybackGlueHostOldPlaybackSupportGlueHostOld がコールバックを通知しない
  • PlaybackOverlayFragment の例 /test が再生を開始できない
  • API 15 で RecyclerViewFocusRecoveryTest が失敗する
  • [スクリーンショット] 行が画面の上部にフォーカスされました
  • API 15 で RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback() がクラッシュする
  • onSubactionClicked()setActions() が壊れる
  • 一部のビューホルダーをリサイクルすると RecyclerView がクラッシュする

リビジョン 25.1.0

(2016 年 12 月)

重要: サポート ライブラリのリビジョン 25.1.1 と 25.1.0 の android.support.v7.media.MediaRouter クラスには既知のバグがあります。アプリで v7 MediaRouter を使用している場合は、サポート ライブラリ リビジョン 25.2.0 に更新して、このバグを修正してください。

重要な変更点

  • ネストされた RecyclerView ウィジェットのクライアント(水平スクロール リストの垂直スクロール リストなど)は、内部 RecyclerView ウィジェットのレイアウト マネージャーに、画面上でスクロールされる前に準備するアイテム数のヒントを示すことで、パフォーマンスを大幅に向上させることができます。LinearLayoutManager.setInitialPrefetchItemCount(N) を呼び出します。ここで、N は内部アイテムごとに表示されるビューの数です。たとえば、内側と横方向のリストに一度に少なくとも 3.5 個のアイテムビューが表示される場合は、LinearLayoutManager.setInitialPrefetchItemCount(4) を呼び出すことでパフォーマンスを改善できます。それにより、外側の RecyclerView をスクロールしながら、RecyclerView が関連するすべてのビューを早期に作成できるようになり、スクロール中のスタッタリングの量が大幅に削減されます。
  • FragmentActivity.setSupportMediaController()FragmentActivity.getSupportMediaController() が非推奨になりました。新しい静的な MediaControllerCompat.setMediaController() メソッドと MediaControllerCompat.getMediaController() メソッドを使用してください。
  • クライアントが appcompat の色合い(appcompat:buttonTint など)を介してウィジェットの色合いを指定する場合、クライアントは必要なすべての状態(「disabled」、「pressed」など)を提供する必要があります。これは、フレームワークの色合い調整を使用する際にウィジェットの色合いを指定する方法と一貫性があります。

新しい API と変更された API

修正された問題

  • パスワードの表示 / 非表示の切り替えは、ユーザー補助機能のテストが失敗する。
  • Appcompat が、L より前のデバイスで state_enabled を遵守しない。
  • RecyclerView にフォーカス回復メカニズムを追加しました。また、Android TV デバイスなどで D-pad ナビゲーションを使用する場合にサポート設定フラグメントでフォーカスが壊れる問題を修正しました。
  • Leanback: ヘッダーを無効にして空のアダプターを指定すると、BrowseFragment がクラッシュする。
  • Appcompat: AlertDialog の幅が広すぎます。
  • InputContentInfoCompat は、releasePermission() を呼び出す必要があるときに requestPermission() を呼び出します。
  • MediaBrowserCompat がクラッシュする。
  • CoordinatorLayout は、可視性が GONE に設定されている場合に、ビューを測定して配置します。
  • API レベル 24 未満で AnimatedVectorDrawableCompat の色合い調整ができませんでした
  • Leanback ライブラリが誤った lint エラーをトリガーする
  • パレット ライブラリがすべての API レベルでテストが失敗する
  • RecyclerView が Leanback でテストに失敗する
  • ビューホルダーをリサイクルすると RecyclerView がクラッシュする(AOSP 問題 225762
  • バックスタック内のフラグメントに対して Fragment.onDestroy() が呼び出されない
  • 閉じたときに CollapsingToolbarLayout のスクリムが描画されない
  • CoordinatorLayout.offsetChildByInset()IllegalArgumentException をスローする
  • RecyclerView アイテムをアニメーション化すると、内部 RecyclerView がデタッチされ、今後のプリフェッチを防止できます。
  • 接続された RecyclerView アイテムはネスト プリフェッチできません。
  • プリフェッチされたネストされた RecyclerView アイテムのデータは最初のレイアウト中に破棄される
  • 2 つのドラッグ イベントが同じ位置に到達すると、RecyclerView のプリフェッチが失敗する
  • RecyclerView は、RenderThread のレンダリング中に投機的にレイアウトする必要がある
  • 夜間に設定されたカラーリソースがドローアブルに変換されると、リソース キャッシュから正しくパージされないことがある。
  • FloatingActionButton: プログラムによる BackgroundTintList の設定が正しく機能しない(AOSP 問題 227428
  • TextInputLayout: ErrorView に書体が設定されません(AOSP 問題 227803
  • TextInputLayout が常に API 23 未満で明るいエラーカラーにフォールバックする(AOSP 問題 221992
  • ポインタが離れると FloatingActionButton が押されたと表示される

公開されているバグ修正の完全なリストは、 AOSP Issue Tracker で入手できます。

サポートの終了

このリリースでは、いくつかのメソッドとクラスのサポートが終了しています。これらの非推奨の API は今後のバージョンで削除される予定です。デベロッパーはこの API から移行する必要があります。特定の API から移行する方法について詳しくは、その API のドキュメントをご覧ください。

リビジョン 25.0.1

(2016 年 11 月)

修正された問題

  • TextInputLayout のパスワード切り替えがデフォルトで無効になり、デベロッパーが指定した終了ドローアブルが不必要に上書きされるのを防げるようになりました。これは、passwordToggleEnabled XML 属性を使用して手動で有効にすることもできます。
  • マテリアル仕様に合わせて BottomNavigationView 項目が 1 行になりました。
  • レイアウト マネージャーが null の場合、プリフェッチ中に RecyclerView がクラッシュします。
  • BottomNavigationView 高度が正しく設定されました。(AOSP 問題 226182
  • プログラムでメニュー項目を追加すると、BottomNavigationView がクラッシュしていました。(AOSP 問題 225731
  • TextInputLayout の左右の複合ドローアブルを修正しました。(AOSP 問題 225836
  • ビューホルダーをリサイクルすると、RecyclerView がクラッシュしていました。(AOSP 問題 225762
  • Leanback: 分割画面ビューで TalkBack が「null」という単語を頻繁に発話します。
  • RecyclerView: Android Studio でのレンダリングに関する問題。(AOSP 問題 225753
  • onNavigationItemSelected() が false を返した後も、BottomNavigationView はメニュー項目を選択した状態で表示します。(AOSP 問題 225898
  • ForwardingListener が NoSuchMethodError をスローする。(AOSP 問題 225647
  • TextInputEditText は IME 抽出モードでヒントを表示しません。(AOSP 問題 221880

公開されているバグ修正の完全なリストは、 AOSP Issue Tracker で入手できます。

リビジョン 25.0.0

(2016 年 10 月)

重要な変更点

  • ContextCompat コンストラクタが保護されました。このクラスは一般公開でインスタンス化できませんが、新しい API レベルをターゲットとするサポート ライブラリによって拡張される場合があります。
  • ActivityCompat コンストラクタが保護されました。このクラスは一般公開でインスタンス化できませんが、新しい API レベルをターゲットとするサポート ライブラリによって拡張される場合があります。
  • getReferrer(Activity) が静的になりました。
  • android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V) を削除しました。このメソッドのクライアント実装をすべて削除する必要があります。
  • android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object) を削除しました。代わりに、より適切な名前の fromMediaSession() メソッドを使用してください。
  • android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object) が削除されました。代わりに、より適切な名前の MediaSessionCompat.QueueItem#fromQueueItem メソッドを使用してください。
  • android.support.v7.widget.Space を削除しました。使用量は android.support.v4.widget.Space に置き換える必要があります。

新しい API

  • android.support.design.widget.BottomNavigationView クラスは、マテリアル デザイン仕様のボトム ナビゲーション パターンを実装します。
  • 新しい android.support.v13.view.inputmethod パッケージには、API レベル 13 より後に導入された android.view.inputmethod.InputConnection 機能にアクセスするためのクラスが含まれています。
  • android.v7.widget.RecyclerView.DividerItemDecoration クラスは、アイテム間の垂直方向または水平方向の分割線の基本実装を提供します。
  • android.support.v7.app.NotificationCompatDecoratedCustomViewStyleDecoratedMediaCustomViewStyle に新しい装飾スタイルを追加し、プラットフォーム API 24 でミラークラスを追加しました。

修正された問題

公開されているバグ修正の完全なリストは、 AOSP Issue Tracker で入手できます。

リビジョン 24.2.1

2016 年 9 月

修正された問題:

公開されているバグ修正の完全なリストは、 AOSP Issue Tracker で入手できます。

リビジョン 24.2.0

2016 年 8 月

リリース 24.2.0 には次の変更が含まれています。

注: リリース 24.2.0 では、Android 2.2(API レベル 8)以前のサポートが削除されました。これらのシステム バージョンを提供するためだけに存在するクラスとメソッドは非推奨としてマークされ、使用できなくなりました。非推奨になったクラスとメソッドは、今後のリリースで削除される可能性があります。

v4 サポート ライブラリの分割

このリリースでは、v4 サポート ライブラリが複数の小さなモジュールに分割されました。

support-compat
Context.getDrawable()View.performAccessibilityAction() など、新しいフレームワーク API の互換性ラッパーを提供します。
support-core-utils
AsyncTaskLoaderPermissionChecker など、いくつかのユーティリティ クラスを提供します。
support-core-ui
UI 関連のさまざまなコンポーネント(ViewPagerNestedScrollViewExploreByTouchHelper など)を実装します。
support-media-compat
MediaBrowserMediaSession など、メディア フレームワークの一部をバックポートします。
support-fragment
フラグメント フレームワークをバックポートします。このモジュールには、support-compatsupport-core-utilssupport-core-uisupport-media-compat との依存関係があります。

下位互換性を確保するため、Gradle スクリプトで support-v4 を指定すると、APK にはこれらのモジュールがすべて含まれます。ただし、APK サイズを縮小するには、アプリが必要とする特定のモジュールのみをリストすることをおすすめします。

API の更新

  • カスタムタブを使用しているクライアントは、Instant Apps を開くかどうかを制御できます。(Instant Apps はまだ一般提供されていません)。Instant Apps を有効または無効にするには、 CustomTabsIntent.Builder.setInstantAppsEnabled() を呼び出すか、 EXTRA_ENABLE_INSTANT_APPS を指定します。デフォルトでは、Instant Apps 機能が利用可能になると、カスタムタブはデフォルトで有効になります。
  • TextInputLayout では、マテリアル デザイン仕様の パスワードの公開設定の切り替えのサポートが追加されています。
  • 新しい android.support.transition パッケージは、Transitions フレームワークを API レベル 14 以降にバックポートします。詳細については、android.support.transition のリファレンスをご覧ください。
  • カスタムタブ サポート ライブラリにより、セカンダリ ツールバーでの RemoteViews の使用に対するサポートが追加されました。既存の setToolbarItem() メソッドのサポートが終了しました。
  • AppCompatResources では、新しい getDrawable() メソッドを使用してリソース ID から <vector>(API レベル 9 以降)または <animated-vector>(API レベル 11 以降)を読み込む機能が追加されています。
  • CoordinatorLayout で、インセット ビューの定義と、他のビューがインセット ビューを無視するように指定できるようになりました。これにより、アプリは FloatingActionButtonSnackbar の処理を妨げるのと同様の動作パターンを、任意のビューの子に対して複製できるようになります。詳細については、 LayoutParams.insetEdge および LayoutParams.dodgeInsetEdges のリファレンス ドキュメントをご覧ください。
  • 新しい DiffUtil クラスは、2 つのコレクションの差を計算し、RecyclerView.Adapter で使用するのに適した更新オペレーションのリストをディスパッチできます。
  • フリングに対するカスタム動作をサポートするために RecyclerView.OnFlingListener が追加されました。SnapHelper クラスは、子ビューのスナップに特化した実装を提供します。LinearSnapHelper クラスはこの実装を拡張して、ViewPager と同様の中央揃えのスナップ動作を提供します。
  • カスタムタブ ライブラリで CustomTabsIntent.setAlwaysUseBrowserUI() を呼び出すことで、クライアントがカスタムタブ UI ではなく標準のブラウザ UI をリクエストできるようになりました。この動作は、ブラウザがデフォルトでカスタムタブ UI に設定されていて、ユーザーが標準のブラウザ UI を優先するよう指定している場合に役立ちます。

動作の変更

  • appcompat ライブラリの昼夜機能を使用する場合、時間帯または AppCompatDelegate.setLocalNightMode() の呼び出しによって日中モードと夜間モードが変更されるたびに、システムが自動的にアクティビティを再作成するようになりました。
  • Snackbar は、ステータスバーが半透明の場合にナビゲーション バーの背後に描画するようになりました。

mediarouter ライブラリ

Bluetooth デバイスはメディアルートとして表示されなくなりました。Bluetooth デバイスへのオーディオのルーティングは、Android システムレベルでのみ制御されるようになりました。

サポートの終了

非推奨になったクラスとメソッドは、将来のリリースで削除される可能性があります。これらの API からできるだけ早く移行する必要があります。

  • 次のクラスのメソッドのいくつかは、API 8 以前でのみ必要だったため、使用できなくなりました。代わりに、フレームワーク実装を使用してください。
    • android.support.v4.view.KeyEventCompat: KeyEvent に置き換えます。
    • android.support.v4.view.MotionEventCompat: MotionEvent を使用します。
    • android.support.v4.view.ViewCompat: View を使用します。
    • android.support.v4.view.ViewConfigurationCompat: ViewConfiguration を使用します。
  • AccessibilityServiceInfoCompat.getDescription() のサポートが終了し、正しくローカライズされた説明を返す AccessibilityServiceInfoCompat.loadDescription() に置き換えられました。
  • ActivityCompat クラスを直接インスタンス化しないでください。非静的 getReferrer(Activity) メソッドは、今後のリリースで静的になる予定です。
  • CoordinatorLayout.Behavior.isDirty() は非推奨になり、CoordinatorLayout によって呼び出されなくなりました。実装とこのメソッドの呼び出しはすべて削除する必要があります。
  • MediaSessionCompat.obtain() が非推奨になり、より適切な名前のメソッド fromMediaSession() に置き換えられました。
  • MediaSessionCompat.QueueItem.obtain() が非推奨になり、より適切な名前のメソッド fromQueueItem() に置き換えられました。
  • いくつかの抽象クラスが非推奨になり、フレームワークの同等性をより正確に反映したインターフェースに置き換えられました。
  • CustomTabsSession.setToolbarItem() が非推奨になり、RemoteViews ベースの setSecondaryToolbarViews() に置き換えられました。

バグの修正

次の既知の問題がリリース 24.2.0 で修正されています。

  • 最初の測定パスの前に setRefreshing(true) が呼び出されたときに SwipeRefreshLayout インジケーターが表示されることを確認(AOSP 問題 77712
  • ページ変更時に TabLayout のちらつきを防止しました(AOSP 問題 180454
  • API レベル 11 以下で SavedState のマーシャリングを解除する際に ClassNotFoundException を回避する(AOSP 問題 196430

公開されているバグ修正の完全なリストは、 AOSP Issue Tracker で入手できます。

リビジョン 24.1.1

2016 年 7 月

修正された問題:

  • サポート ライブラリ間で共有されるリソース ID に影響する、24.1.0 リリースの問題を修正しました。この問題により、リソース(Design や appcompat など)を含むサポート ライブラリに依存するアプリで、リソース ID の不一致による問題が発生しました。

リビジョン 24.1.0

2016 年 7 月

v4 サポート ライブラリの変更点:
  • NotificationCompat.Action.WearableExtender には、Android Wear 2.0 プレビューとの互換性を確保するために、新しい getHintDisplayActionInline() メソッドと setHintDisplayActionInline() メソッドが用意されています。これらのメソッドを使用すると、アプリは、通知とともにアクションを表示するよう指定できます。
  • Fragment.setUserVisbileHint() を呼び出しても、まだ commit されていない FragmentTransaction にヒントが追加されている場合に、フラグメントが開始されなくなりました。これは、setUserVisbileHint() をオーバーライドし、super.setUserVisibleHint() を呼び出した後にフラグメントの特定のライフサイクル状態を想定する FragmentPagerAdapter のユーザーに影響します。詳細については、Fragment.setUserVisbileHint() のドキュメントのリファレンス ページをご覧ください。

修正された問題:

  • TabLayout.setCustomView(null) により NullPointerException が発生する(AOSP 問題 214753
  • TabLayout でカスタムタブが誤ってハイライト表示される(AOSP 問題 214316
  • AppCompatTextHelper が不正確に並べ替えられた属性配列を使用する(AOSP 問題 214366
  • カスタムの ContextWrapper を使用している場合、ドローアブル コンテナ XML から VectorDrawable を参照できない(AOSP 問題 214055
  • ViewDragHelper.saveLastMotion() が ArrayIndexOutOfBoundsException をスローする(AOSP 問題 212945
  • setState(STATE_EXPANDED) を使用すると BottomSheetBehavior が古いコンテンツの高さに拡張する(AOSP 問題 213660
  • CollapsingToolbarLayout が上部または下部のマージンがある固定可能な子を処理しない(AOSP 問題 213001
  • Leanback ブラウズ タイトルが RTL 配置をサポートしない(AOSP 問題 213461
  • 継承されたアノテーションがないために PagerTabStrip が表示されなくなる(AOSP 問題 213359
  • ブール値を使用して条件フラグを設定すると、データ バインディングが NullPointerException をスローする(AOSP 問題 191841
  • CoordinatorLayout が setFitsSystemWindows() に応答しない(AOSP 問題 212720
  • 初期状態の設定時に BottomSheetBehavior がクラッシュする(AOSP 問題 203114
  • ページ インデックスが大きい値の場合、ViewPager がページをスキップする(AOSP 問題 211734
  • BottomSheetBehavior が動的レイアウトで機能しない(AOSP 問題 205226

リビジョン 24.0.0

2016 年 6 月

v4 サポート ライブラリの変更点:
  • 同期 commit 用に Fragment.commitNow() を追加しました。
  • マルチパーティの会話用に NotificationCompat.MessagingStyle を追加しました
  • NotificationManagerCompat.areNotificationsEnabled()getImportance() を追加しました。
  • MediaSessionCompatMediaSession の機能を反映するようになり、setMediaButtonReceiver() の自動呼び出しを行わなくなりました。

注: API 24 以降の Android の将来のバージョンと上位互換性があるのは、バージョン 24.0.0 の MediaBrowserServiceCompat のみです。以前のバージョンを使用している場合は、互換性を確保するためにこのバージョンに更新してください。

v7 appcompat ライブラリの変更点:
  • XML からテーマ別 ColorStateList オブジェクトを参照するためのサポートを追加しました。
Design サポート ライブラリの変更点:
v17 Leanback ライブラリの変更点:
  • 初回実行時のウェルカム フローと設定フローを提供する OnboardingFragment を追加しました
カスタムタブの変更点:
  • セカンダリ ツールバーに RemoteViews 階層を指定するためのサポートを追加しました。
  • 1 行のウォームアップ用に CustomTabsClient.connectAndInitialize() を追加しました

リビジョン 23.4.0

2016 年 5 月

v4 サポート ライブラリの変更点:
  • フラグメントが間違った順序で追加される問題を修正しました。 (問題 206901
  • 画面外にスクロールした後にアプリバーが描画されない問題を修正しました。(問題 178037
v7 appcompat ライブラリの変更点:
Design サポート ライブラリの変更点:
Vector Drawable ライブラリの変更点:

リビジョン 23.3.0

2016 年 4 月

v4 サポート ライブラリの変更点:
  • AppLaunchChecker を追加しました。これは、過去にユーザーがアプリをどのように起動したかを追跡するのに役立ちます。 hasStartedFromLauncher() は、ユーザーが以前にホーム画面からアプリを起動したのか、他の手段(特定のウェブ URL を表示するためなど)で起動されただけなのかを示します。
  • MediaBrowserServiceCompat.mConnections でのメモリリークを修正しました。(問題 205220
  • ViewPager がページをめくるときにページの余白が考慮されない問題を修正しました。(問題 203816
  • Fragment.onRequestPermissionsResult() が子フラグメントに配信されるようになりました。
v7 appcompat ライブラリの変更点:
v7 mediarouter ライブラリの変更点:
v7 Preference ライブラリの変更点:
v7 recyclerview ライブラリの変更点:
  • 表示されるアイテムの範囲が縮小した場合に RecyclerView がスクロール コールバックを呼び出さないバグを修正しました。(問題 200987
  • RecyclerView が線形レイアウトにあり、重み付けされ、画像が含まれている場合にフリーズするバグを修正しました。(問題 203276
  • OrientationHelper.getStartAfterPadding() で発生するクラッシュを解決しました。(問題 180521
  • android:nestedScrollingEnabled の使用で発生するクラッシュを修正しました。(問題 197932
Design サポート ライブラリの変更点:
  • 非表示のボトムシートでタッチイベントを処理するバグを修正しました。(問題 203654
  • fitsSystemWindows が true の場合の BottomSheetBehavior に関するレイアウトの問題を修正しました。(問題 203057
  • Snackbar のユーザー補助に関する問題を修正しました。(問題 182145
  • Snackbar スワイプ時のクラッシュを修正しました。(問題 203924
  • enterAlways に関する AppBarLayout のバグを修正しました。(問題 203661
  • TextInputLayoutEditText オブジェクトの背景色フィルタを不必要にクリアするバグを修正しました。 (問題 203357

リビジョン 23.2.1

2016 年 3 月

v4 サポート ライブラリの変更点:
v7 appcompat ライブラリの変更点:
  • ベクター アセットへの依存関係を元に戻しました。これにより、appcompat ライブラリを使用するデベロッパーが VectorDrawable および関連するビルドフラグを使用する必要がなくなります。
  • 夜間モードと API レベル 23 との互換性の問題を修正しました。 (問題 201910
  • SwitchCompat と API レベル 7 の互換性に関する問題を修正しました。(問題 201942
  • リソース オブジェクトで構成値の伝播に関する問題を修正しました(問題 201928
  • API レベル 21 以下で android.support.v7.app.NotificationCompat.MediaStyle キャンセル ボタンが表示されなくなる互換性の問題を修正しました。(Issue 202156)。
  • API レベル 21 以下での AppCompatSpinner との互換性クラッシュを修正しました。(Issue 202246)。
  • app:textAllCaps = "false" スタイルが機能しない問題を修正しました。(Issue 202117)。
  • SearchView の復元時に発生するクラッシュを修正しました。(問題 201836
  • AppCompat を使用してドローアブル リソースの色合いを調整するときに発生するメモリリークを修正しました。(Issue 202379)。
  • API レベル 11 以下での KeyEvent に関する問題を修正しました。(Issue 202939)。
v7 cardview ライブラリの変更点:
v7 recyclerview ライブラリの変更点:
  • 複数の measure-spec メソッドに関連するバグを修正しました。(問題 201856
  • レイアウトまたはスクロールの計算中に RecyclerView でアダプターの変更が許可されないロックダウン期間を短縮しました。(問題 202046
  • 非表示になっているアイテムの notifyItemChanged() を呼び出した場合に発生するクラッシュを修正しました。(問題 202136
  • RecyclerView.LayoutManager が同じ測定パスでビューを追加または削除したときに発生するクラッシュを修正しました。(問題 193958
v7 mediarouter ライブラリの変更点:
v17 Leanback ライブラリの変更点:
  • 誤ったアイテムが選択される原因となっていた GridLayout.onAddFocusables() の問題を修正しました。
  • アクションを閉じた後に GuidedStepFragment アクションが表示されなくなる問題を修正しました。
Design サポート ライブラリの変更点:
  • タブプーリングによって発生する TabLayout のクラッシュを修正しました。(問題 201827
  • 間違った色が選択される原因となっていた NavigationView のバグを修正しました。(問題 201951
  • setBackgroundTintList() が背景色を変更できなくなるバグを修正しました。(問題 201873
  • android:fitsSystemWindows = “true” と併用したときに AppBarLayout が表示から完全にスクロール アウトしない問題を修正しました。 (問題 201822
  • BottomSheetDialog で短いコンテンツのビューが正しく表示されない問題を修正しました。(問題 201793
  • 内部のコンテンツが変更されたときに BottomSheetDialogFragment が散発的に移動する問題を修正しました。(問題 202125
  • TextInputLayout カウンタのクラッシュを修正しました。リンク
  • TextInputLayout.getCounterMaxLength() が保存済み状態を復元したときに発生するクラッシュを修正しました。(問題 202375
  • CoordinatorLayout ではないビューの保存済み状態を使用して CoordinatorLayout を復元するときに発生する ClassCastException を修正しました。
VectorDrawableCompat の変更点:
  • android:tintMode の代わりに誤った変数が読み取られるバグを修正しました。(問題 201907

リビジョン 23.2.0

2016 年 2 月

v4 サポート ライブラリの変更点:
  • MediaBrowser のサポートのために MediaBrowserCompat を、MediaBrowserService のサポートのために MediaBrowserServiceCompat を追加しました。これは、メディアアプリのバックグラウンド サービスを UI コンポーネントに接続し、API レベル 21 以上を必要とせずに Android Auto および Android Wear と統合する場合に有用です。
  • ネストされた FragmentActivity に対して onActivityResult() が呼び出されるようになりました。
v7 AppCompat ライブラリの変更点:
  • 夜間モード機能を API レベル 14 以上に追加しました。時間帯またはアプリ固有の設定に基づいて、マテリアル ライトのテーマとマテリアル ダークのテーマを切り替えることができます。
    • 日中と夜間のテーマは <sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml にあります。
    • AppCompatDelegate.setDefaultNightMode(): 次のいずれかの定数を渡して、アプリのデフォルト モードを設定します。
      • MODE_NIGHT_AUTO
      • MODE_NIGHT_NO
      • MODE_NIGHT_YES
      • MODE_NIGHT_FOLLOW_SYSTEM
    • AppCompatDelegate.setLocalNightMode(): ローカルアプリ コンポーネントの夜間モード設定をオーバーライドします。
    • AppCompatDelegate.getDefaultNightMode(): デフォルトの夜間モードを返します。
v7 mediarouter ライブラリの変更点:
Design サポート ライブラリの変更点:
  • ボトムシートのサポートを追加しました。インタラクション プラグイン BottomSheetBehavior を使用すると、CoordinatorLayout の子ビューをボトムシートとして機能させることができます。基本クラスである BottomSheetCallback は、ボトムシート イベントをモニタリングするコールバックを提供します。
CustomTabs サポート ライブラリの変更点:
  • Chrome カスタムタブでは、既存のトップ アクション ボタンに加えて、アクション ボタンを備えたボトムバーをアプリに含めることができるようになりました。
  • CustomTabsIntent.Builder.addToolBarItem(): カスタムタブにアクション ボタンを追加します。これを使用して複数のボタンを追加できます。
  • CustomTabsSession.setToolBarItem(): ツールバー アイテムのビジュアルを更新します。このメソッドは、有効な ID が指定され、ブラウザ セッションがフォアグラウンドにある場合にのみ成功します。
VectorDrawable サポート ライブラリを追加しました。
  • 追加されたクラス:
    • VectorDrawableCompat
    • AnimatedVectorDrawableCompat
  • API レベル 7 以降で動作するアプリに VectorDrawable アセットのサポートが追加されました。AnimatedVectorDrawable アセットは API レベル 11 以上でもサポートされています。ベクター アセットは画像アセットよりもかなり小さくできます。また、複数のデバイス画面をサポートするのに必要なアセットの量を減らすことで、アプリのサイズを縮小できます。
  • このライブラリは v7 AppCompat ライブラリの依存関係になり、デベロッパーと AppCompat は簡単にベクター型ドローアブルを使用できるようになりました。ImageButton 内または ImageView 内で VectorDrawableCompat を使用するには、app:srcCompat XML 属性または setImageResource() メソッドを使用します。
  • API レベル 20 以前で属性 ID の参照を続けるには、build,gradle ファイルに次の appt フラグを追加します。
    • Android Plugin for Gradle 1.5.0 以前を使用してビルドする場合は、build.gradle ファイルに次の行を追加します。
    • android {
        defaultConfig {
          // Stops the Gradle’s automatic rasterization of vectors
          generatedDensities = []
        }
         // Flag that tells aapt to keep the attribute ids
        aaptOptions {
          additionalParameters "--no-version-vectors"
        }
      }
      
    • Android Plugin for Gradle 2.0.0 以上を使用してビルドする場合は、build.gradle ファイルに次の行を追加します。
    • android {
        defaultConfig {
          vectorDrawables.useSupportLibrary = true
        }
      }
      
v17 Leanback ライブラリの変更点:
  • GuidedStepFragment に新しい機能を追加しました。機能の決定や一連の決定をユーザーにガイドするコンポーネントです。
    • GuidedAction にボタン アクションを追加しました。
      • GuidedStepFragment.setButtonActions(): ユーザーが [アクション] ビューで選択できる GuidedAction ボタンのリストを設定します。
    • 説明のフィールドが編集可能になりました。
      • GuidedAction.Builder.descriptionEditable(): true を渡すと、アクションの説明を編集可能に設定します。
      • GuidedAction.getEditDescription(): 編集可能な説明を CharSequence として返します。
    • サブアクションのプルダウン リストを追加しました。
      • GuidedAction.setSubActions(): GuidedAction リストをサブアクションのプルダウン メニューとして設定します。
  • DatePicker 機能用の GuidedDatePickerAction ウィジェットを追加しました。
    • 日付は、年、月、日の列を使用して選択し、範囲はカスタマイズできます。
    • GuidedDatePickerAction.Builder: GuidedDatePickerAction オブジェクトのビルダークラス。
    • GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat): 適切な 3 文字の String(例: “YMD”“MDY”)を渡して、目的の日付形式を設定します。または、datePickerFormat XML 属性を使用します。
v7 RecyclerView ライブラリの変更点:
  • RecyclerViewAutoMeasure というオプトイン機能が追加され、RecyclerView.LayoutManager でコンテンツを簡単にラップしたり、RecyclerView の親から提供されるさまざまな測定仕様を処理したりできるようになりました。RecyclerView の既存のアニメーション機能をすべてサポートしています。
    • カスタムの RecyclerView.LayoutManager がある場合は、setAutoMeasureEnabled(true) を呼び出して新しい AutoMeasure API の使用を開始します。組み込みの RecyclerView.LayoutManager オブジェクトはすべて、デフォルトで自動測定が有効になっています。
    • RecyclerView.LayoutManager が一部の RecyclerView.LayoutParams 設定(スクロール方向の MATCH_PARENT など)を無視しなくなりました。

      注: これらの制限が解除された際に、レイアウトで予期しない動作が発生する可能性があります。正しいレイアウト パラメータを指定してください。

  • ペイロード情報で RecyclerView.ViewHolder を更新するとき、DefaultItemAnimator は変更アニメーションを無効にするようになりました。
  • ItemTouchHelper のエスケープ速度を変更して、スワイプの感度を制御できるようになりました。スワイプを簡単にしたり、難しくしたりするには、getSwipeEscapeVelocity(float defaultValue) をオーバーライドして defaultValue を変更します。

リビジョン 23.1.1

2015 年 11 月

v7 recyclerview ライブラリの変更点:
  • ItemTouchHelper ユーティリティ クラスが提供する「スワイプして閉じる」アクションを実行してからアイテムを追加した際に発生するクラッシュを修正しました。 (問題 190500
v7 preference ライブラリの変更点:
  • ProGuard の使用に関する問題を修正しました。 (問題 183261
v17 Leanback サポート ライブラリの変更点:
  • ライブラリの内部的な問題をいくつか修正しました。
Design サポート ライブラリの変更点:
  • NavigationView クラスに getHeaderView メソッドを追加しました。
  • Android 4.0(API レベル 15)以下を搭載しているデバイスにおける、FloatingActionButton オブジェクトの透明な背景の問題を修正しました。 (問題 183315

リビジョン 23.1.0

2015 年 10 月

v4 サポート ライブラリの変更点:
  • NestedScrollView ウィジェットに OnScrollChangedListener インターフェースのサポートを追加しました。これにより、スクロールの X 位置または Y 位置が変更されたときにコールバックを受信できます。
  • 受信した再生コントロールを、MediaSessionCompat クラスを管理するサービスに転送する MediaButtonReceiver クラスを追加しました。MediaSessionCompat クラスには、マニフェストでメディアボタン レシーバを自動的に検索できるコンストラクタがあります。メディアボタン レシーバーは、ハードウェアまたは Bluetooth のコントロールから再生コントロールを処理するうえで重要な部分です。
v7 appcompat ライブラリの変更点:
  • マテリアル デザインの SeekbarImageButton のウィジェットを追加しました。
  • 色合いを調整する機能をサポートするように ImageView ウィジェットを更新しました。
  • SwitchCompat ウィジェットの外観を更新しました。
v7 mediarouter ライブラリの変更点:
  • MediaRouteChooserDialog クラスに次の機能を追加しました。
    • メディアルート プロバイダの検出中に読み込みページを表示します。
    • デバイスの識別に便利なデバイスタイプのアイコンが用意されています。
    • 現在のアプリでの使用頻度に応じてルートを並べ替えます。
    • 横表示に対応します。
  • MediaRouteControllerDialog クラスに次の機能を追加しました。
    • 画面のキャストを認識し、適切な説明を表示します。
    • さまざまなアルバムアートのサイズとアスペクト比をサポートし、アートを非同期で読み込みます。
    • アプリの原色に基づいてコンテンツの色を自動的に選択します。
    • デバイス上の使用可能な画面スペースに基づいてダイアログのレイアウトを調整します。
    • 横表示に対応します。
v7 palette ライブラリの変更点:
  • Bitmap オブジェクトの特定の領域からの色抽出をサポートするため、setRegion() メソッドを追加しました。
v7 recyclerview ライブラリの変更点:
  • カスタマイズ性を向上させるため、改善されたアニメーション API を ItemAnimator クラスに追加しました。
    • アニメーションを変更しても、ViewHolder オブジェクトの 2 つのコピーが適用されず、アイテム コンテンツのアニメーションが有効になります。また、ItemAnimator オブジェクトは、同じ ViewHolder オブジェクトを再利用するか、新しいオブジェクトを作成するかを決定します。
    • 新しい情報レコード API を使用すると、ItemAnimator クラスはレイアウトのライフサイクルの適切な時点で柔軟にデータを収集できるようになります。この情報は、後で animate コールバックに渡されます。
  • 下位互換性のないこの API の変更に対して、次のように容易に実行できる移行計画をご用意しました。
    • 以前に ItemAnimator クラスを拡張したことがある場合は、基本クラスを SimpleItemAnimator に変更でき、コードは以前と同様に動作します。SimpleItemAnimator クラスは、新しい API をラップすることで以前の API を提供します。
    • 一部のメソッドを ItemAnimator クラスから削除しました。次のコードはコンパイルされなくなります。
    • Kotlin

      recyclerView.itemAnimator.supportsChangeAnimations = false
      

      Java

      recyclerView.getItemAnimator().setSupportsChangeAnimations(false)
      

      次のように置き換えることができます。

      Kotlin

      val animator: SimpleItemAnimator? = recyclerView.itemAnimator as? SimpleItemAnimator
      animator?.supportsChangeAnimations = false
      

      Java

      ItemAnimator animator = recyclerView.getItemAnimator();
      if (animator instanceof SimpleItemAnimator) {
         ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
      }
      
v7v14v17 の設定サポート ライブラリの変更点:
  • EditText ダイアログのコントロール用 API を削除しました。
v17 Leanback サポート ライブラリの変更点:
  • サポート ライブラリ用の GuidedStepFragment クラスのバージョン(android.support.v4.app.Fragment を拡張)を追加し、アニメーションと遷移を改善しました。
  • 既存のコンテンツ上に配置できるように GuidedStepFragment クラスを更新しました。
  • SearchFragment クラスに、さまざまなタイプの検索補完にアノテーションを付ける機能を追加しました。
  • VerticalGridFragment クラスに段階的なスライド遷移のサポートを追加しました。
Design サポート ライブラリの変更点:
  • TextInputLayout ウィジェットに 文字数カウントのサポートが追加されました。
  • SCROLL_FLAG_SNAP 定数を追加することで、AppBarLayout クラスにエッジスナップのサポートを追加しました。スクロールが終了すると、ビューが部分的にしか表示されていない場合、ビューはスナップされ、最も近い端にスクロールされます。
  • app:actionLayout 属性または MenuItemCompat.setActionView() メソッドを使用して、カスタムビューのサポートを NavigationView クラスに追加しました。
Custom Tabs サポート ライブラリの変更点:
  • enableUrlBarHiding() メソッドを CustomTabsIntent クラスに追加しました。これにより、下にスクロールして URL バーを自動的に非表示にするかどうかをクライアントでカスタマイズできます。
  • setActionButton() メソッドを CustomTabsSession クラスに追加しました。これにより、クライアントは起動済みのカスタムタブのカスタム アクション ボタンのアイコンを変更できます。
  • CustomTabsCallback クラスの onNavigationEvent メソッドの新しいイベントとして、TAB_SHOWN 定数と TAB_HIDDEN 定数を追加しました。

リビジョン 23.0.1

2015 年 9 月

v7v14 の Preference サポート ライブラリの変更点:
  • マテリアル デザインのレイアウト ファイルとスタイル ファイルを追加しました。 (問題 183376
v7 appcompat ライブラリの変更点:
  • ハードウェア レイヤの使用を Android 4.1(API レベル 16)以降に制限することで、Fragment クラスのクラッシュの問題を修正しました。 (問題 183896
  • アクティビティが setSupportActionBar() メソッドを使用して ActionBar として機能するように Toolbar クラスを設定した場合に、ハードウェア ボタンが機能しない問題を修正しました。 (問題 183334
  • Windows feature must be requested before adding content エラーをスローしないように AppCompatDialogFragment クラスを更新しました。(問題 183186
Design サポート ライブラリの変更点:
  • 回転後に正しく描画されるように AppBarLayout クラスを修正しました。(問題 183109
  • ユーザーがスワイプした後にクリックしたときに正しく動作するように TabLayout クラスを修正しました。 (問題 183123
Custom Tabs サポート ライブラリの変更点:
  • バージョンをサポートするため、minSdkVersion の値を 16 から 15 に引き下げました。
  • インテントから CustomTabsSessionToken を生成する方法を追加しました。

リビジョン 23

2015 年 8 月

新しいサポート ライブラリを追加しました。

サポート ライブラリの変更点の完全なリストについては、サポート ライブラリ API の相違点レポートをご覧ください。

リビジョン 22.2.1

2015 年 7 月

Design サポート ライブラリの変更点:
  • FloatingActionButton クラスに hide() メソッドと show() メソッドを追加し、プログラムでアニメーションをトリガーできるようにしました。
  • スナックバーを閉じるか別のスナックバーが表示されるまでスナックバーを表示するため、LENGTH_INDEFINITE 定数を Snackbar クラスに追加しました。また、setActionTextColor(int) メソッドと setActionTextColor(ColorStateList) メソッドも追加しました。
  • 現在選択されているタブを取得するために、getSelectedTabPosition() メソッドを TabLayout クラスに追加しました。
  • メソッド チェーン用の android.support.v7.app.NotificationCompat.MediaStyle クラス用の完全な Fluent API を提供しました。
  • アイテムのバッチ挿入用に便利なメソッドを RecyclerView に追加しました。

サポート ライブラリの変更点の完全なリストについては、サポート ライブラリ API の相違点レポートをご覧ください。

リビジョン 22.2.0

2015 年 5 月

Design サポート ライブラリを追加:
  • EditText のヒントとエラーテキストをフローティング ラベルとして表示するための TextInputLayout を追加しました。
  • デフォルト サイズまたはミニサイズをサポートするメイン アクションをフローティング アクション ボタンとしてインターフェースに実装するための FloatingActionButton を追加しました。
  • アニメーション化されたスナックバーにオプションのアクションとともに軽量のフィードバックを提供する Snackbar を追加しました。
  • 固定でスクロール可能なタブを実装し、ViewPager とも簡単に統合できるように TabLayout を追加しました。
  • メニュー リソースを介してメニュー アイテムをインフレートする機能など、ナビゲーション ドロワーのコンテンツを実装するための NavigationView を追加しました。
  • CoordinatorLayout を追加しました。これは汎用レイアウトであり、兄弟ビュー間の依存関係を構築し、CoordinatorLayout.Behavior を介してコンポーネント間の簡単なスクロール操作を可能にするために使用します。Design Library のコンポーネントの多くは、CoordinatorLayout の子であることに依存しています。
  • AppBarLayout を追加しました。これは、Toolbar やその他のビュー(TabLayout など)のコンテナで、画面外にスクロールする、下方向のスクロールに反応して表示される、画面をオフ/スクロールする前に折りたたみ/折りたたみ解除することで、スクロール イベントに反応します。
  • Toolbar の折りたたみ方法を制御する CollapsingToolbarLayout を追加しました。ツールバーを折りたたむには、折りたたみ時にコンポーネントを画面上部に固定する、ImageView などのコンポーネントの視差スクロールを導入する、ビューが部分的に折りたたまれたときにコンテンツ スクリムの色を追加する、などの方法があります。
v4 サポート ライブラリの変更点:
v7 appcompat ライブラリの変更点:

サポート ライブラリの変更点の完全なリストについては、サポート ライブラリ API の相違点レポートをご覧ください。

リビジョン 22.1.0

2015 年 4 月

annotations ライブラリの変更点:
  • コード インスペクションの拡張をサポートする Annotations ライブラリを追加しました。アノテーションはメタデータタグとして追加されます。これを変数、パラメータ、戻り値に付加することで、メソッドの戻り値、渡されたパラメータ、ローカル変数とフィールドを検査できます。
v4 サポート ライブラリの変更点:
v7 appcompat ライブラリの変更点:
v17 Leanback ライブラリの変更点:
v7 recyclerview ライブラリの変更点:
  • リストの順序でアイテムを表示し、リストの変更の通知を提供する SortedList クラスを追加しました。
  • 並べ替えられたリストを RecyclerView.Adapter クラスにバインドできる SortedListAdapterCallback クラスを追加しました。
v8 renderscript ライブラリの変更点:
  • ヒストグラム フィルタとして使用する ScriptIntrinsicHistogram クラスを追加しました。
  • 2D 割り当てのサイズ変更を実行するための ScriptIntrinsicResize クラスを追加しました。

リビジョン 22

2015 年 3 月

v4 サポート ライブラリの変更点:
  • 指定されたリソース ID、画面密度、テーマについてドローアブル オブジェクトを返すように getDrawable() メソッドを更新しました。
  • setImportantForAccessibility() メソッドを追加しました。これにより、ビューがユーザー補助イベントをトリガーする必要があるかどうかを指定できます。
  • ステータスバーの背景ドローアブルを取得できるように getStatusBarBackgroundDrawable() メソッドを追加しました。
  • NotificationCompat.CarExtender.UnreadConversation クラスにメソッドを追加して、Android Auto メッセージ アプリが追加の通知データを取得できるようにしました。
  • 円レイアウトの直径を返す getProgressCircleDiameter() メソッドを追加しました。
  • DrawerLayout のデフォルトのステータスバーの色を colorPrimaryDark に変更しました。
v7 appcompat ライブラリの変更点:
v17 Leanback ライブラリの変更点:
  • getRecycledPoolSize() メソッドと setRecycledPoolSize() メソッドを追加して、リサイクル プールのサイズをカスタマイズできるようにしました。
  • タイトル アイコンでラップされたコンテンツをサポートするため、レイアウト幅の設定に WRAP_CONTENT 属性を追加しました。
  • 遷移の更新を改善するために XML で R.transition を定義しました。
  • 右から左の方向へのレイアウトに対するサポートを有効にしました。
  • 再生と一時停止のメディア キーイベントのサポートを PlaybackOverlayFragment クラスに追加しました。
  • BrowseFragment クラスと DetailsFragment クラスに開始遷移と戻り遷移を追加しました。
  • オブジェクトのアダプター配列内のアイテムを置換するために replace() メソッドを追加しました。
v7 mediarouter ライブラリの変更点:
v7 recyclerview ライブラリの変更点:

リビジョン 21.0.3

2014 年 12 月

v4 サポート ライブラリの変更点:

リビジョン 21.0.2

2014 年 11 月

v4 サポート ライブラリの変更点:
v7 appcompat ライブラリの変更点:
  • 新しいポップアップ メニューをサポートするため PopupMenu コンストラクタを追加しました。
  • Toolbar クラスに折りたたみアイコンの説明のサポートを追加しました。
  • commitIcon の表示をサポートするように SearchView ウィジェットを更新しました。
  • Toolbar クラスから buttonGravity 属性を削除しました。
v7 cardview ライブラリの変更点:
v7 recyclerview ライブラリの変更点:
v17 Leanback ライブラリの変更点:
  • v4 コード フラグメントを生成するためのサポートを追加しました。
  • CardView のセカンダリ テキストの色を変更しました。

リビジョン 21.0.1

2014 年 11 月

Android 5.0 より前の Multi-dex ファイルをサポートするために、複数の Dalvik Executable(DEX)ファイルをサポートする multidex サポート ライブラリを追加しました。

リビジョン 21

2014 年 10 月

v4 サポート ライブラリの変更点:
  • Android 5.0(API レベル 21)を搭載するデバイス向けの Fragment 遷移のサポートを追加しました。 Android 4.4 以前を搭載しているデバイスでは、画面遷移の影響を受けることはありません。
  • ドキュメント ツリーの操作中に File から簡単に移行できるように、DocumentFile を追加しました。ただし、このクラスでは、Android 4.4(API レベル 19)で追加されたプラットフォームの DocumentsContract API に比べ、より多くの処理オーバーヘッドが必要になります。そのため、Android 4.4 以降で実行する場合は、DocumentsContract を使用するように切り替える必要があります。
v7 appcompat ライブラリの変更点:
  • マテリアル デザインのユーザー インターフェースのサポートを追加しました。
  • アプリ レイアウト内で使用するために ActionBar の機能を一般化する Toolbar を追加しました。
  • メニューから矢印へのアニメーションを含む ActionBarDrawerToggle を更新しました。
  • 一般的なユーザー インターフェース ウィジェットを更新し、Android 5.0 より前のデバイスで実行する場合に、テーマ属性を使用して色合いを調整できるようにしました
  • Android 4.0(API レベル 14)で追加された Switch ウィジェットのバックポートである SwitchCompat を追加しました。
新しい v7 cardview ライブラリ:
  • CardView ウィジェットを追加しました。このツールは、データアイテムを表示するためのマテリアル デザインと互換性のある実装を提供します。
新しい v7 recyclerview ライブラリ:
  • RecyclerView ウィジェットを追加しました。このウィジェットは、大規模なデータセットに限られたウィンドウを表示するための柔軟なリスト表示を提供します。
新しい v7 palette ライブラリ:
  • 画像から代表色を抽出できる Palette クラスを追加しました。
新しい v17 Leanback ライブラリ:

リビジョン 20

2014 年 7 月

v4 サポート ライブラリの変更点:
  • NotificationCompat.WearableExtender に Android Wear の通知の拡張サポートを追加しました。これにより、通知にウェアラブル固有の機能を指定できます。
  • NotificationCompat.Action.WearableExtender を追加しました。これにより、ウェアラブル通知にアクションを追加できます。
  • NotificationManagerCompat を追加しました。これにより、ウェアラブル機能を適切にサポートする通知を発行できます。
  • RemoteInput を追加しました。これにより、ハンドヘルド デバイスは、ウェアラブル デバイスに表示される通知から音声入力を受信できます。
  • SwipeRefreshLayout でのタッチ フィードバックの処理を改善しました。

リビジョン 19.1.0

2014 年 3 月

v4 サポート ライブラリの変更点:
  • SwipeRefreshLayout クラスを追加しました。このクラスを使用すると、ユーザーは垂直スワイプ操作でビューのコンテンツを更新できます。
  • ナビゲーション ドロワーに関するユーザー補助の問題を修正しました。
v7 appcompat ライブラリの変更点:
  • アクションバーの背景の問題を修正しました。

リビジョン 19.0.1

2013 年 12 月

v4 サポート ライブラリの変更点:
  • 印刷の非同期処理を追加することで PrintHelper を改善しました。
  • DrawerLayout クラスの addChildrenForAccessibility() メソッドの近似を修正しました。
  • ActionBarDrawerToggle でのスライド ドローアブルのミラーリングを修正しました。
  • コレクション イテレータからアイテムを削除する際の off-by-one の問題を修正しました。
v7 mediarouter ライブラリの変更点:
v8 renderscript ライブラリの変更点
  • RenderScript サンクレイヤにエラー伝播を追加しました。

リビジョン 19

2013 年 10 月

v4 サポート ライブラリの変更点:
  • getObbDirs()getExternalFilesDirs()getExternalCacheDirs()getStorageState() での External Storage API のサポートを追加しました。 Android 4.3(API レベル 18)以前を搭載しているデバイスでは、これらのヘルパー メソッドは常に単一のファイル オブジェクトを返します。Android 4.4(API レベル 19)以降で実行する場合、これらのメソッドは複数のファイル オブジェクトを返すことがあります。
  • Print API に対応し、最小限のコードで画像を出力する PrintHelper クラスを追加しました。
  • ポップアップ メニューに drag-to-open ユーザー インターフェースのサポートを追加しました。詳細については、PopupMenuCompatListPopupWindowCompat をご覧ください。
  • AccessibilityNodeProviderCompatfindFocus() メソッドを追加し、AccessibilityNodeInfoCompatgetLiveRegion() メソッドを追加することにより、ユーザー補助サポートを改善しました。
  • 新しいスケーリング操作メソッドにアクセスするためのヘルパークラス ScaleGestureDetectorCompat を追加しました。
  • 右から左に記述する言語表示における ActionBarDrawerToggle の問題を修正しました。
  • AutoScrollHelper オプションを変更して、タッチイベントを使用したり、他のビューに渡したりできるようにしました。
v7 mediarouter ライブラリの変更点:
  • メディア再生キューイングのサポート、HTTP ヘッダー値とメディア再生時間の設定のサポートを追加しました。
  • メディア ルーターでメディア再生セッションを明示的に管理するための明示的な開始、取得、終了のセッション アクションを追加しました。

リビジョン 18

2013 年 7 月

v4 サポート ライブラリの変更点:
  • ユーザー インターフェース
    • 右から左、左から右にフォーマットされたテキストが結合されるテキスト文字列を処理するための BidiFormatter を追加しました。
    • 最初のレイアウト処理でページャーの測定幅が 0 の場合を適切に処理するように ViewPager を変更しました。
    • プロジェクト コードの編集中に測定の例外をスローしないように DrawerLayoutSlidingPaneLayout を変更しました。
  • ユーザー補助
  • メディア
    • 再生、一時停止、スキップ、その他のメディア アクションなどのメディア トランスポート コントロールを管理するため、TransportMediator ヘルパークラスを追加しました。
    • 1 つ以上のデバイス ディスプレイへのディスプレイ出力を管理するための DisplayManagerCompat を追加しました。
  • その他の変更
    • デバイスのウェイクアップ イベントを検出して Service に処理を渡す一般的なパターンを実装し、ハンドオフの完了前にデバイスがスリープ状態に戻らないようにする WakefulBroadcastReceiver ヘルパークラスを追加しました。
    • 後でキャンセルされたデータ変更のバックグラウンド更新に対処できるように、commitContentChanged()rollbackContentChanged() という 2 つの新しい API を AsyncTaskLoader に追加しました。
新しい v7 appcompat ライブラリ:
  • ActionBar が追加され、Android 2.1(API レベル 7)以降にアクションバー ユーザー インターフェースのデザイン パターンを実装できるようになりました。このクラスを使用するには、新しい ActionBarActivity クラスを拡張してアクティビティを実装する必要があります。
新しい v7 mediarouter ライブラリ:

Google Cast デベロッパー プレビューをサポートする新しい Mediarouter ライブラリを追加しました。 v7 Mediarouter ライブラリ API は、現在のデバイスから外部画面、スピーカー、その他の送信先デバイスへのメディア チャンネルとストリームのルーティングを制御する手段を提供し、Android 2.1(API レベル 7)と互換性があります。詳しくは、V7 mediarouter ライブラリをご覧ください。

サポート ライブラリ r18 で導入された v7 MediaRouter ライブラリ API は、サポート ライブラリの今後のリビジョンで変更される可能性があります。現時点では、Google Cast デベロッパー プレビューに関連してのみライブラリを使用することをおすすめします。

リビジョン 13

2013 年 5 月

v4 サポート ライブラリの変更点:
新しい v7 gridlayout ライブラリ:
  • GridLayout レイアウト オブジェクトをサポートする GridLayout を追加しました。
  • GridLayout レイアウト オブジェクト内に空白の領域を作成するために使用できる android.support.v7.widget.Space を追加しました。

リビジョン 12

2013 年 2 月

v4 サポート ライブラリの変更点:
  • ViewPager のインタラクションを改善しました。
  • ViewPager が誤ったページを選択する可能性があるバグを修正しました。
  • ViewPager のレイアウト中の removeView() メソッドの使用を修正しました。
  • 戻るボタンを使用して閉じると検索テキストがクリアされない SearchViewCompat の問題を修正しました。この修正は、ホスト API レベル 14 以降にのみ適用されます。

リビジョン 11

2012 年 11 月

v4 サポート ライブラリの変更点:
  • ユーザー インターフェース
    • ネストされた Fragment クラスのサポートを追加しました。
    • FragmentManager デバッグに改善を追加しました。
    • フラグメントとタブの操作によって ListView の状態が失われる可能性がある FragmentTabHost の問題を修正しました。
    • FragmentStatePagerAdapter でユーザーに表示されるヒントに関する問題を修正しました。
    • ViewPagerPageTransformer インターフェースを追加し、アプリがスクロールのカスタム遷移動作を提供できるようにしました。
    • 現在のリリースから TaskStackBuilder に新機能と修正を追加しました。
    • 現在使用中の PagerAdapter を正しくトラッキングするように PagerTitleStrip を修正しました。
    • PagerTitleStrip でのディスプレイのちらつき、配置、テキスト クリッピングの問題を修正しました。
    • 下線を描画するときにパディングを適切に考慮するように PagerTabStrip を修正しました。
  • ユーザー補助
  • GestureDetectorCompat による操作のサポートを追加しました。
  • 新しい AtomicFile クラスを使用してファイルに対してアトミック オペレーションを実行するためのサポートを追加しました。
  • IntentCompatmake メソッドの全セットのサポートを追加しました。
  • LruCache ユーティリティ クラスに trimToSize() メソッドを追加しました。
  • CONNECTIVITY_ACTION ブロードキャストから NetworkInfo を取得するように ConnectivityManagerCompat を更新しました。

リビジョン 10

2012 年 8 月

v4 サポート ライブラリの変更点:
  • NotificationCompat に加えて、Android 4.1(API レベル 16)で導入された通知機能のサポートを追加しました。

リビジョン 9

2012 年 6 月

v4 サポート ライブラリの変更点:
  • ユーザー インターフェースのサポート
    • PagerTabStrip サポートを追加し、PagerTitleStrip を超える拡張機能を提供します。
    • setAllCaps オプション、タイトルの配置、外観の改善、最小幅の制約、タップ ナビゲーションの問題など、PagerTitleStripPagerTabStrip のさまざまなバグを修正しました。
    • ViewPager ページガターのサポートを追加しました。これにより、ViewPager クラスは、地図など、水平方向のスクロール範囲が大きいコンテンツのページングをサポートできるようになります。
    • サイズやデータセットの変更に関する問題、ページの位置、ユーザー操作、スクロール トラッキング、キーボード ナビゲーションに関する問題など、ViewPager の多数のバグを修正しました。
    • ターゲット フラグメントが存在しない場合の onActivityResult() の適切な処理、非表示フラグメントへの選択イベントのディスパッチ、FragmentTransaction.replace() の動作の改善、ビューから移動されるフラグメントの状態処理の改善など、Fragment の多くのバグを修正しました。
    • postOnAnimation() メソッドのサポートを ViewCompat に追加しました。
    • Android 4.1(API レベル 16)の「上へ」ナビゲーション機能が利用可能な場合に使用できるよう、NavUtils を更新しました。
  • ユーザー補助
    • Android 4.1(API レベル 16)で行われた修正に従うよう、AccessibilityNodeInfoCompat などのユーザー補助サポートクラスを更新しました。
    • ユーザー補助のスクロール操作のサポートを ViewPager に追加しました。
  • 全般的な改善

リビジョン 8

2012 年 4 月

v4 サポート ライブラリの変更点:
  • TaskStackBuilder によって生成された PendingIntent オブジェクトのインテント フラグを修正しました。
  • API レベル 7 以上でライブラリをビルドできるように、gridlayout ライブラリ プロジェクトから未使用の属性を削除しました。
  • gridlayout ライブラリ プロジェクト用の .classpath ファイルと .project ファイルを追加しました。

リビジョン 7

2012 年 3 月

v4 サポート ライブラリの変更点:
  • ShareCompat を追加しました。このクラスは、共有データをソースアプリに関連付けるための新しいメタデータなど、ソーシャル共有アプリのコンテンツを送受信するためのヘルパークラスを提供します。また、このクラスは Android 4.0 の新しい ShareActionProvider とも互換性のある統合を提供します。
  • ナビゲーションに関する Android 設計ガイドラインの実装をサポートするため、NavUtilsTaskStackBuilder を追加しました。これらの追加には、アクションバーの「上へ」ボタンをバージョン間で実装する方法も用意されています。このパターンの実装例については、(<em><sdk></em>/samples/<em><platform></em>/AppNavigation)の AppNavigation サンプルをご覧ください。
  • 標準化されたシステム通知を作成するための Android 3.0 の Notification.Builder ヘルパークラスの互換性実装を提供する NotificationCompat.Builder を追加しました。

リビジョン 6

2011 年 12 月

注: サポート ライブラリ API のリファレンスは、フレームワーク リファレンスで利用可能になりました(例: android.support.v4.app)。

v4 サポート ライブラリの変更点:
  • ViewPager の変更点:
    • ViewPager の装飾ビューのサポートを追加しました。 装飾ビューは、XML レイアウトのページャーの子ビューとして指定できます。
    • ページのタイトル文字列を指定する PagerAdapter.getPageTitle() を追加しました。デフォルトでは、各ページのタイトルは指定されません。
    • PagerTitleStrip を追加しました。これは非対話型のタイトル ストリップであり、ViewPager の子として追加できます。デベロッパーは、テキストの外観と色、レイアウトのサイズ、グラビティの情報を指定できます。
    • アダプターの実装でクラスキャストを回避するために、View ではなく ViewGroup オブジェクトを受け取るように PagerAdapter メソッドを更新しました。
    • ランチャー スタイルのフリング動作を使用するように ViewPager を更新しました。
    • ユーザー インターフェースの操作とテストの自動化に関するバグを修正しました。
  • Fragment のサポート:
    • setStartDeferred() メソッドを setUserVisibleHint(boolean) に変更しました。
    • オフスクリーン ページの遅延開始を追加してパフォーマンスを改善しました。
  • Accessibility API のサポート:
    • null ではなく空のリストを返すように AccessibilityDelegateCompat メソッドを更新しました。
    • v4 サンプルで必要な新しい API を追加しました。

リビジョン 5

2011 年 12 月

v4 サポート ライブラリの変更点:

リビジョン 4

2011 年 10 月

v4 サポート ライブラリの変更点:
  • EdgeEffect をサポートするため EdgeEffectCompat を追加しました。
  • LocalBroadcastManager を追加しました。これにより、アプリをグローバルにブロードキャストすることなく、1 つのアプリ内でインテントを簡単に登録して受信できるようになりました。
  • Android 2.3 以降で View のオーバースクロール モードを確認して設定する ViewCompat のサポートを追加しました。
  • Fragment API の変更点:
    • 新しいメニューの表示を制御するための新しい API を追加しました。
    • カスタム アニメーション API を追加しました。
    • 構成以外のカスタム インスタンス データを保持するための API を FragmentActivity に追加しました。
    • 各種バグを修正しました。
  • Froyo 以前のバージョンのプラットフォームで実行している場合に AsyncTask をキャンセルする際に発生する問題を引き起こしていた Loader のバグを修正しました。サポートコードは独自のバージョンの AsyncTask を使用して、すべてのプラットフォーム バージョンで同じ動作を維持するようになりました。

リビジョン 3

2011 年 7 月

v4 サポート ライブラリの変更点:
  • Fragment.SavedState のサポートを追加しました。
  • 新しい MotionEvent API をサポートするため MotionEventCompat を追加しました。
  • 新しい VelocityTracker API をサポートするため VelocityTrackerCompat を追加しました。
  • 新しい ViewConfiguration API をサポートするため ViewConfigurationCompat を追加しました。
  • すべての新しい API(サポート ライブラリでのみ利用可能)。これにより、水平方向のページ設定を使用する UI を作成し、ユーザーはコンテンツ ビュー間を左右にスワイプできます。これをサポートするクラスは次のとおりです。
    • ViewPager: ユーザーがスワイプできる子ビューのレイアウトを管理する ViewGroup
    • PagerAdapter: 各ページを表すビューで ViewPager にデータを入力するアダプター。
    • FragmentPagerAdapter: フラグメント間をフリップするための PagerAdapter の拡張。
    • FragmentStatePagerAdapter: ライブラリの Fragment.SavedState サポートを使用してフラグメント間を切り替えるための PagerAdapter の拡張機能。
新しい v13 サポート ライブラリ:
  • 水平方向のページ設定をサポートする FragmentPagerAdapterFragmentStatePagerAdapter が含まれています。

    これらは v4 サポート ライブラリに追加された API とまったく同じですが、Android 3.2 の他のプラットフォーム コンポーネントに依存します。Android 3.2 以降向けに開発している場合は、v4 ではなくこのライブラリを使用します(v4 ライブラリの他のすべての API は、API レベル 13 ですでに使用可能です)。

リビジョン 2

2011 年 5 月

v4 ライブラリの変更点:

リビジョン 1

2011 年 3 月

v4 ライブラリの初回リリース。