Android NDK 多个 API 级别

Posted

技术标签:

【中文标题】Android NDK 多个 API 级别【英文标题】:Android NDK multiple API Levels 【发布时间】:2013-01-27 19:11:21 【问题描述】:

是否可以在 NDK 中定义最低 API 级别和目标 API 级别,就像在 java 清单中一样?

我只知道我可以使用 APP_PLATFORM 来指定目标,但是如果我还想设置最小 API 怎么办?

【问题讨论】:

【参考方案1】:

没有。您无法在 NDK 构建系统中指定此类信息,因为每个版本的 android 系统映像都不同。

对于本机代码,可移植性方面与应用程序的可移植性不同。 仅用 Java 编写。

如果您想用原生代码支持不同版本的 Android,您很可能必须针对不同的 APP_PLATFORM 编译代码。

如您所说,您只能在 Application.mk 文件中使用 APP_PLATFORM 指令,该文件记录为:

APP_PLATFORM = 命名目标 Android 平台。例如'android-3'对应 到 Android 1.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 与 android-5 相同 NDK,即它们提供完全相同的原生 ABI!

重要提示: 与给定 API 级别对应的标头现在位于 在 $NDK/platforms/android-/arch-arm/usr/include 下

【讨论】:

以上是关于Android NDK 多个 API 级别的主要内容,如果未能解决你的问题,请参考以下文章

如何将 API 级别添加到 NDK?

我的Android进阶之旅持续更新:Android开发时需要了解的平台代号,版本,API级别和NDK版本等

我的Android进阶之旅持续更新:Android开发时需要了解的平台代号,版本,API级别和NDK版本等

反应本机推送通知在 Android 8.1(API 级别 27)中不起作用

Android NDK 从入门到精通

Android NDK“ndk-build”被识别为内部或外部命令批处理文件