2

より高いSDKターゲット(3.0としましょう)でAndroid APKをビルドできることがわかりましたが、それでも下位デバイス(2.1としましょう)でアプリを実行できます。理由がわかりますか?特定の番号に設定した場合にのみandroid:minSdkVersion、実行が停止します。

Fragment のような最新の機能をアプリで使用し、それを下位プラットフォームのデバイスで実行すると、アプリはどうなるでしょうか? アプリはクラッシュしますか?

Android 4.1でコンパイルしましたが、デバイス2.1で実行できるため、admobを扱うときにこれに気づきました。これには本当に驚かされます。

4

4 に答える 4

2

SDK が 3.0 未満のデバイスで Fragment を使用するには、Android サポート v4 ライブラリを参照ライブラリとして含める必要があります。これにより、Android がリリースした最新の SDK で導入された Fragment やその他の機能を使用できます。古い Android デバイスが普及しすぎているため、古い Android デバイスとのレトロな互換性を維持することは非常に重要です。

Android サポート v4 ライブラリに関するいくつかの参照については、以下を確認できます。

http://developer.android.com/reference/android/support/v4/app/package-summary.html

この:

http://developer.android.com/tools/extras/support-library.html

そうしないと、3.0 ( API レベル 11 ) 未満の SDK で Fragment を使用できません。

于 2012-07-05T07:35:29.407 に答える
1

AndroidManifest.xmlを使用し、宣言を使用して最小およびターゲット SDK バージョンを宣言すると、apk は最小 SDK バージョンに従って実行されます。

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="14">
于 2012-07-05T07:35:47.670 に答える
0

より高いsdkターゲット(たとえば3.0)でandroid apkをビルドしましたが、それでもより低いデバイス(たとえば2.1)でアプリを実行できます。理由を教えてもらえますか?

それがAndroidSDKの仕組みです。ただし、デフォルトでは、EclipseでAndroidプロジェクトを作成し、SDKバージョンを3.0に選択すると、ADTは自動的にandroid:minSdkVersionを11に設定します。3.0未満のバージョンでアプリを実行したくない場合は、この値を変更しないでください。 。

アプリでフラグメントなどの最新機能を使用しているが、それをより低いプラットフォームデバイスで実行した場合、それが好きな場合、アプリはどうなりますか?アプリがクラッシュしますか?

間違いなくクラッシュします。メソッドが見つからないという例外が発生します。代わりに、すべてのフラグメントのようなAndroidの下位バージョンと上位バージョンの両方でサポートされているライブラリを使用できます

于 2012-07-05T07:37:51.103 に答える
0

理由を教えてもらえますか?

それはandroid:minSdkVersion

使用する

<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="11" />

アプリでフラグメントなどの最新機能を使用しているが、それをより低いプラットフォームデバイスで実行した場合、それが好きな場合、アプリはどうなりますか?アプリがクラッシュしますか?

古いプラットフォームにはない新しいSDK機能を使用するとクラッシュします。

于 2012-07-05T07:36:16.330 に答える