Java マニフェストと同じように、NDK で最小 API レベルとターゲット API レベルを定義することは可能ですか?
APP_PLATFORM を使用してターゲットを指定できることだけは知っていますが、最小 API も設定したい場合はどうすればよいでしょうか?
Java マニフェストと同じように、NDK で最小 API レベルとターゲット API レベルを定義することは可能ですか?
APP_PLATFORM を使用してターゲットを指定できることだけは知っていますが、最小 API も設定したい場合はどうすればよいでしょうか?
いいえ。Androidシステムイメージのバージョンはそれぞれ異なるため、NDKビルドシステム内でそのような情報を指定することはできません。
また、ネイティブコードの場合、移植性の側面は、アプリケーションがJavaのみで記述されている場合とは異なります。
ネイティブコードでさまざまなバージョンのAndroidをサポートする場合は、おそらくさまざまなAPP_PLATFORMに対してコードをコンパイルする必要があります。
あなたが言ったように、あなたはApplication.mkファイル内でのみAPP_PLATFORMディレクティブを使用することができます。そしてそれは次のように文書化されています:
APP_PLATFORM=ターゲットのAndroidプラットフォームに名前を付けます。たとえば、「android-3」はAndroid1.5システムイメージに対応します。プラットフォーム名と対応するAndroidシステムイメージの完全なリストについては、docs/STABLE-APIS.htmlをご覧ください。
docs / STABLE-APIS.html(android-ndk-r8d)のパーツ:
いくつかの「APIレベル」が定義されています。各APIレベルは、特定のAndroidシステムプラットフォームのリリースに対応しています。現在、次のレベルがサポートされています。
android-3 -> Official Android 1.5 system images android-4 -> Official Android 1.6 system images android-5 -> Official Android 2.0 system images android-6 -> Official Android 2.0.1 system images android-7 -> Official Android 2.1 system images android-8 -> Official Android 2.2 system images android-9 -> Official Android 2.3 system images android-14 -> Official Android 4.0 system images
android-6とandroid-7はNDKのandroid-5と同じであることに注意してください。つまり、まったく同じネイティブABIを提供します。
重要:特定のAPIレベルに対応するヘッダーは、$ NDK / platform / android- / arch-arm / usr/includeの下に配置されるようになりました。