android-support-v7-appcompatとandroid-support-v4の違い


147

android-support-v4.jarandroid-support-v7-appcompat.jarの違いを知りたいと思いました。アプリケーションにappcompatアクションバーを追加する場合は、android-support-v7-appcompat.jarandroid-support-v4.jarの両方、またはandroid-support-v7-appcompat.jarのみを追加する必要があります。

また、android-support-v13.jarにはappcompatがありますか?

回答:


170

更新

この質問に回答して以来、サポートライブラリに多くの変更が加えられています。良いことは、それも文書化されていることです。したがって、サポートライブラリの詳細と利用可能なサポートライブラリについては、サポートライブラリのドキュメントを参照する必要があります。

サポートライブラリリリース26.0.0(2017年7月)以降、ほとんどのサポートライブラリでサポートされる最小のAPIレベルは、ほとんどのライブラリパッケージでAndroid 4.0(APIレベル14)に引き上げられました。


以下はサポートライブラリパッケージとの違いです。

v4サポートライブラリ

このライブラリは、Android 1.6(APIレベル4) Android 2.3(APIレベル9) Android 4.0(APIレベル14)以降で使用するように設計されています。これには、アプリケーションコンポーネント、ユーザーインターフェイス機能、アクセシビリティ、データ処理、ネットワーク接続、プログラミングユーティリティのサポートなど、他のライブラリと比較して最大のAPIセットが含まれています。

v7ライブラリ

Android 2.1(APIレベル7) Android 2.3(APIレベル9) Android 4.0(APIレベル14)以降で使用するように設計されたライブラリがいくつかあります。これらのライブラリは特定の機能セットを提供し、互いに独立してアプリケーションに含めることができます。

v7 appcompatライブラリ

このライブラリは、アクションバーのユーザーインターフェイスデザインパターンのサポートを追加します。

注: このライブラリは、v4サポートライブラリに依存しています。AntまたはEclipseを使用している場合は、このライブラリのクラスパスの一部としてv4サポートライブラリを必ず含めてください。

したがって、v7を使用する場合は、両方のjarが必要です。


android-support-v13.jarの更新

v13サポートライブラリ

このインターフェースはAPIレベル27.1.0で廃止されました。フレームワークFragmentの代わりにFragmentを使用します。

v13サポートライブラリ

このライブラリは、Android 3.2(APIレベル13)以降で使用するように設計されています。(FragmentCompat)クラスと追加のフラグメントサポートクラスを使用して、フラグメントユーザーインターフェイスパターンのサポートを追加します。

パッケージの詳細を見ると、定義に示されているようにクラスFragmentCompatがあります。したがって、appcompatライブラリのすべてのクラスがあるわけではありません。


2
min api 19からアプリを開発している場合。これらは必要ですか?

2
v4サポートライブラリ –これらのライブラリは、 Android 2.3(APIレベル9)以降で使用するように設計されています。
Vadik、2017年

1
およびv7サポートライブラリAndroid 2.3(APIレベル9)以降で使用するように設計されたライブラリがいくつかあります。
Vadik

@ user5366495おそらくはい。良いことのほとんどはのためでAPI21 and above あり、あなたがそれを下で使用したい場合は、そのためのサポートライブラリを使用する必要があります。したがって、まだそれが必要な場合がありAPI19ます。
Mahdi-Malv

48

サポートライブラリとは何ですか?

サポートライブラリは、古いデバイスで動作するように新しく追加された機能を作成するコードライブラリ(クラスのコレクション)です。
たとえば、マテリアルデザインはAPI 21(Android 5.0-Lolipop)で導入されましたが
v7サポートライブラリにより、API 7(Android 2.1.x -Eclair)以降で使用できます。

異なるサポートライブラリとは何ですか?

主なサポートライブラリの一部は

  • V4サポートライブラリ

  • V7サポートライブラリ

  • V8サポートライブラリ

  • v13サポートライブラリ

v7サポートライブラリで7は何を表していますか?

つまり、このライブラリには、APIレベル7以降で使用するように設計された機能があります。同じことがV4(API 4以降向けの機能を含む)などにも当てはまります。

v7サポートライブラリとv7 appcompatライブラリの違いは何ですか?

私を含め、これら2つの用語に混乱する人はほとんどいません。実際、v7 appcompatライブラリはv7サポートライブラリの一部です。v7サポートライブラリは主に、API 7以降のマテリアルデザインとActionBarデザインパターンをサポートするために開発されました。
V7はより多くのサブカテゴリーに分類できます

  • v7 appcompatライブラリ

  • v7 cardViewライブラリ

  • v7 recyclerViewライブラリ

  • v7パレットライブラリなど

v7 appcompatライブラリには、ActionBar、ActionBarActivity、ShareActionProviderという主要なクラスがあります。

だから追加、

com.android.support:appcompat-v7:21.0.+

あなたのgradleファイルの依存関係は、上記のクラスをインポートします。

ボーナス

その他のサポートライブラリ

Multidex Support Library(65k以上のメソッドでアプリを作成するため)
v17 Leanbackサポートライブラリ(Android TVに重要なウィジェットを提供するサポートライブラリ)

関連リンク


6
これは受け入れられる答えである必要があり、単純な言葉ですべてを明確に説明します。
gegobyte 2018

44

サポートライブラリは、最小SDKバージョンがAPIレベル11未満の場合にのみ必要です。それ以外の場合、APIレベル11以上のプロジェクトにサポートライブラリを追加する必要はありません。

android-support-v4.jar:android.app Android APIレベル4以降のアプリケーションの開発を支援する サポートクラス。アプリケーションのバックワードに互換性を持たせるために、

android-support-v7.jar最近のサポートライブラリの更新で追加されました。ActionBarを使用すると、Android 2.1(APIレベル7)以降にアクションバーのユーザーインターフェイスデザインパターンを実装できます。このクラスを使用するには、新しいActionBarActivityクラスを拡張してアクティビティを実装する必要があります。

アプリケーションにappcompatアクションバーを追加する場合、android-support-v7-appcompat.jarとandroid-support-v4.jarの両方を追加するか、android-support-v7-appcompat.jarのみを追加する必要がありますか。

はい、使用する場合は両方のライブラリの参照を追加する必要があります。

android-support-v13.jarにはappcompatがありますか?

いいえ、FragmentCompatが含まれているため、バージョン13以降に追加されたFragment機能の一部をAPIレベル11とバックワード互換にすることができるので、API 11以降を対象とするアプリケーションが新しいバージョンで追加された機能を使用できます。


9
DrawerLayout/ NavigationDrawer現在、サポートライブラリにのみ存在します。
キラン2015年

3
com.android.support:multidex:1.0.0やcom.androidなど、11を超えるAPIにはデフォルトで含まれていないサポートライブラリの1つに基づくAndroidアプリで使用できる他のコンポーネントがあります。サポート:デザイン:23.1.0。詳細については、こちらを
ご覧

グーグルがdeveloper.android.com/topic/libraries/support-library/で言うように…v4サポートとv7サポートの間で違いはありません。どちらもapi 9以降用です。これは本当ですか?!
Mahdi

ケンジ、そうだね。Googleの最小シフトサポートが4から9および7から9にシフトし、両方のライブラリが互いに複製するようになりました。
Yaroslav Havrylovych 2017年

min api 19からアプリを開発している場合。これらは必要ですか?

10

まず、Androidサポートライブラリとは何かを理解する必要があります。ですか?

Android Support Libraryは、もともと2011年にリリースされました。Android互換ライブラリとして、Android Support Libraryは古いリリースに新しいAPIを提供しますが、それだけでは十分ではありません。

これは、バージョン番号の大きいサポートライブラリに以前のライブラリの機能が含まれていることを少し混乱させる可能性があります(v7-appcompatが改良され、v4のすべての機能が含まれていると思うかもしれません)。ほとんどの場合、これは正しくありませんが、ライブラリ自体にリビジョン番号があります。たとえば、「AppCompat v21」は実際にはサポートライブラリv7-appcompat、リビジョン21を指します。

Androidサポートライブラリは単一のライブラリではありませんが、互換性ライブラリとコンポーネントライブラリの2つのグループに大別できます。

1互換性ライブラリは、以前のリリースを実行しているデバイスが新しいAPIを利用できるように、新しいフレームワークリリースからの機能のバックポートに重点を置いています。主要な互換性ライブラリはv4とv7-appcompatです。

v4ライブラリ:多くの機能が含まれており、その名前が示すように、API 4をサポートしています。さらに、フラグメントやローダー(どちらもAPI 11のフレームワークで導入されました)などの主要なクラスの実装をサポートするために、 ViewPagerやDrawerLayoutなど、フレームワークにまったく存在しない、いくつかの広く使用されているクラスを見つけます。

v7-appcompat:v7-appcompatライブラリは、API 7にリリースするためのActionBar(API 11で導入)およびToolbar(API 21で導入)のサポート実装を提供します。v4ライブラリが必要ですが、含まれていません。したがって、v7-appcompatに依存する機能は、v4にも依存します。

2コンポーネントライブラリ Android Support Libraryは、開発者が標準のフレームワークの一部ではない機能を追加できるようにする、より小さくモジュール化されたコンポーネントライブラリも提供します。これらの自己完結型ライブラリは、依存関係を気にすることなく、プロジェクトに簡単に追加または削除できます。考慮すべきいくつかの貴重なコンポーネントライブラリがあります。

v7-recyclerview:大量のデータを効率的に表示およびアニメーション化するRecyclerViewコンポーネントを提供し、ListViewを置き換えるように設計されています

v7-cardview:CardViewコンポーネントを提供し、カードのUIデザインパターンを有効にします

v7グリッドレイアウト:UI要素を長方形グリッドに編成できるようにするGridLayoutクラスを提供します。等..

その他の図書館 Androidサポートライブラリには、使用頻度は少ないが、言及する価値のある他のいくつかのライブラリも含まれています。

v8: API 8に戻るRenderScript(API 11で導入)のサポートを提供します

v13:Fragment UIパターンの追加の互換性サポートを提供し、v4 librarをバンドルします

v17:TV UIの構築をサポートします

いつAndroidサポートライブラリを使用すればよいですか?

アプリのminSdkVersionより新しい特定のフレームワーク機能が必要な場合、または標準フレームワークでは利用できない場合は、サポートライブラリのいずれかを使用する必要があります。

そして私はこのチュートリアルを参照します


5

この回答は、バージョンが26.0.0以上のサポートライブラリのクライアントに関連しています。

注意:サポートライブラリリリース26.0.0(2017年7月)以降、ほとんどのライブラリパッケージでサポートされる最小APIレベルは、ほとんどのライブラリパッケージでAndroid 4.0(APIレベル14)に増えました。

たとえば、サポートライブラリのリリースが26.0.0以降の場合、support-v4およびsupport-v7パッケージはどちらも、最小APIレベル14をサポートします。

詳細については、サポートライブラリ-バージョンサポートとパッケージ名を参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.