31

Androidサポートパッケージ/互換性ライブラリのこの説明を読みました...

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

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

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

4

6 に答える 6

35

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

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

v13が必要な特に説得力のある理由がない限り、v4に直行することをお勧めします。

于 2012-03-29T13:41:22.393 に答える
9

答えは正しいですが、少し混乱しています!現在、V4、V7、V13の3つのサポートjarがあります。残念ながら、V7は特にグリッドレイアウト専用であるため、スーパーセットではありません。

サポートライブラリから1つのjarのみに関心があります[gridlayoutも必要な場合を除きます(それが何であるかはわかりません!)]。したがって、android:minSdkVersion = "8"を調べて、jarに対してチェックしています。したがって、V4が必要です。

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

于 2013-05-07T16:45:17.713 に答える
5

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

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

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

今日(2013年11月24日)でもminsdk = XX( 7〜10)が必要です。ベストプラクティスとして、フラグメントにはsupport-v4を、actionBarにはsupport-v7を追加する必要があります。

于 2013-11-24T11:29:28.783 に答える
1

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

  • FragmentCompat
  • FragmentPagerAdapter
  • FragmentStatePagerAdapter
  • FragmentTabHost

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

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

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

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

そのため、v13の必要性はわかりませんでした。私は正しいですか?

于 2014-09-16T03:58:16.970 に答える
0

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

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

于 2014-05-12T01:28:48.883 に答える
0

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

  • 注釈
  • v4
  • v13

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

ここに画像の説明を入力してください

于 2015-05-23T23:48:16.307 に答える