web-dev-qa-db-ja.com

Androidサポートパッケージ/互換性ライブラリ-v4またはv13を使用しますか?

Androidサポートパッケージ/互換性ライブラリ...)の説明を読んだところです...

http://developer.Android.com/sdk/compatibility-library.html

...そして、私は少し混乱しました!それはv13ライブラリがv4のスーパーセットであると言いますが、私はそれが逆だったと思いましたか?

実用化:互換性ライブラリを使用して、Android 2.2(API 8)〜4.0(API 14)以降を実行する電話でアプリが正常にビルドおよび機能するようにしたい場合は、v4で十分です。私のために?

31
Adil Hussain

API 8(v2.2)をターゲットにするには、v4バージョンを使用する必要があります。

V13の大部分は機能しますが、プラットフォーム13 APIに依存する機能のいずれかを使用すると、アプリは古いデバイスで動作しなくなります。

V13を必要とする特に説得力のある理由がない限り、私はv4にまっすぐ進むことをお勧めします。

35
Ollie C

答えは正しいですが、少し混乱しています!現在、3つのサポートjarがあります:V4、V7、およびV13。残念ながらV7は特にgridlayout専用であり、したがってスーパーセットではありません。

[gridlayoutも必要でない限り(私はそれが何であるかわかりません!)]、サポートライブラリの1つのjarのみに関心があります。したがって、Android:minSdkVersion = "8"を調べて、jarと照合します。したがって、V4が必要です。

V13は、V4メソッドを複製するという意味では単なるスーパーセットであり、コードではありません。つまりこの例では、V13の使用は正しくありません。

9
loser114491

これらの3つのライブラリ(v4、v7、v13)を記述するためにスーパーセット(またはサブセット)を使用する必要はないと思いますが、最も単純な意味は下位互換性のあるバージョン4、7、および13のようです。

Googleは最初にv4でフラグメントを追加し、その後、すべての新しいバージョンが公開されたときにそれを更新します。つまり、アプリが最新バージョンのみをサポートしている場合を除き(これは強くお勧めしません)、ほぼいつでもsupport-v4が必要です.minsdkが14であり、すでにフラグメントがあるが、「埋め込みフラグメント」は17以降にしかサポートされないため、v4が引き続き必要であり、その状況ではv4フラグメントを使用します。

今年(2013)Googleはv7を公開し、その中にappcompat-libraryを追加しました。11の前の3番目のサポートActionbar(ActionbarSherlock)に加えて、正式なサポートの方が良いかもしれません 1つ ??そして、すべての新しいバージョンがv7で将来公開されるときに、すべてのアクションバー機能が更新されると思います。

それでもminsdk = XX(7と10の間) today (Nov.24,2013)が必要です。add-supportfor v4 for fragmentとsupport-v7 for actionBar両方ともベストプラクティス。

5
ruidge

私はv13のソースコードを確認しましたが、追加されるクラスは4つだけです。

  • FragmentCompat
  • FragmentPagerAdapter
  • FragmentStatePagerAdapter
  • FragmentTabHost

FragmentCompatは、v4 Fragmentにすでに含まれている2つの静的utilメソッドを追加します。

FragmentPagerAdapter、FragmentStatePagerAdapter、およびFragmentTabHost。これら3つのクラスはすべて、v4で対応する同じ名前のクラスを持ち、同じ動作をします。

V13で提供される追加のAPIは必要ありません。

したがって、v4を追加することで、v13と同じ動作でv13よりも多くのプラットフォームをサポートできるので、なぜv4を使用しないのですか?

そのため、v13の必要性を確認できませんでした。私は正しいですか?

1
lucas

少し遅れますが、下の写真をよく見てください。 JARファイルAndroid-support-v13.jarには、3つのパッケージがあります。

  • 注釈
  • v4
  • v13

つまり、このjarを1つ追加するだけでよく、v4とv13の両方がサポートされます。 v7はコンパイルされていないため、そのJARを自分で追加する必要があります。

enter image description here

0
Khanh Hua

v13にはFragmentに関する関数があります。主に、minVersionが13を超えていて、次のような関数を使用していない場合:FragmentPagerAdapter、FragmentStatePagerAdapter、FragmentTabHost、およびネストされたフラグメント。サポートv13は必要ありません。

したがって、「v4はv13のサブセットです」は正しくありません。

0
panwy