アプリにフラグメントを実装しています。Honeycombよりも低いAndroidバージョンとの互換性を保つために、私はサポートライブラリを使用しています。しかし、私は疑問に思っていました。Androidは非常にスマートなので、アプリがHoneycomb以降で実行されているときに、サポートライブラリメソッドを適切なフレームワークメソッドに変更しますか?いいえの場合、下位バージョンのサポートライブラリメソッドと上位バージョンのフレームワークメソッドを使用する方法はありますか?
質問する
104 次
1 に答える
1
サポートライブラリは、古いバージョンのAndroidとの下位互換性が確保された元のフレームワークに他なりません。古いフレームワークで利用できる新しいAPIはないため、アプリが実行されている現在のAndroidバージョンを常に比較し、それに応じて、カスタム実装またはネイティブ実装を使用します。サポートライブラリの例:
final int version = android.os.Build.VERSION.SDK_INT;
if (version >= 17) {
IMPL = new JbMr1ViewCompatImpl();
} else if (version >= 16) {
IMPL = new JBViewCompatImpl();
} else if (version >= 14) {
IMPL = new ICSViewCompatImpl();
} else if (version >= 11) {
IMPL = new HCViewCompatImpl();
} else if (version >= 9) {
IMPL = new GBViewCompatImpl();
} else {
IMPL = new BaseViewCompatImpl();
}
次のスクリーンショットに示すように、サポートライブラリは、Androidのバージョンごとに不足しているAPIを補うようにカスタマイズされています。
Githubにミラーリングされたサポートライブラリのソースコードを見つけることができます: https ://github.com/android/platform_frameworks_support
于 2012-12-13T18:53:40.247 に答える