4

ndk-build を使用するときに API レベルの選択がどのように機能するかをよりよく理解しようとしています。

Application.mkAPP_PLATFORMで明示的に設定できることはわかっています。それ以外の場合、ndk-build はマニフェストで示されている api をターゲットにしますが、アプリケーションのマニフェストに と の両方があり、これが minSdkVersion より高い場合はどうなりますか?android:minSdkVersionandroid:minSdkVersionandroid:targetSdkVersion

ndk-build はtargetSdkVersionをターゲットにしますか? そして、どうすればそれを確認できますか?

より高い API レベルを対象とする場合、そのレベルでのみ使用可能なネイティブ API を使用してビルドできると思いますが、より低い API レベルのデバイスでアプリケーションを実行すると、惨めに失敗するはずなので、その場合は私がある種の API レベル チェックを実装する必要がありますが、それは正しいですか?

4

3 に答える 3

6

Android.mkTARGET_PLATFORMとLOCAL_CFLAGSを定義した直後に、このコードを挿入します

ifeq ($(TARGET_PLATFORM),android-7)
    LOCAL_CFLAGS   += -DANDROID7
else
ifeq ($(TARGET_PLATFORM),android-8)
    LOCAL_CFLAGS   += -DANDROID8
else
ifeq ($(TARGET_PLATFORM),android-9)
    LOCAL_CFLAGS   += -DANDROID9
endif
endif
endif

これで、C /C++コードでこの定義を確認できます。

#if defined( ANDROID9 )
   // do stuff for API Level 9
#endif
于 2012-07-26T08:48:01.833 に答える
1
  • Android:minSdkVersion

アプリケーションが実行される Android プラットフォームの最小バージョン。

  • Android:targetSdkversion

アプリケーションが実行するように設計されている API レベルを指定します。

  • Android:maxSdkVersion

アプリケーションが実行されるように設計されている Android プラットフォーム の最大バージョン。

于 2012-07-26T03:01:05.710 に答える