1 系统和软件需求(System and SoftwareRequirements)
以下各节描述了使用Android NDK的系统和软件需求,以及平台兼容性的Android应用的影响。
1.1 Android SDK
l 一个完整的Android SDK(包括所有依赖)
l Android SDK 1.5版本及以上
1.2 支持的操作系统
l Windows XP (32-bit) or Vista (32- or 64-bit)
l Mac OS X 10.4.8 or later (x86 only)
l Linux (32 or 64-bit; Ubuntu 8.04, or other Linux distributions usingGLibc 2.7 or later)
1.3 开发工具
l GNU Make 3.81以上
l 最近版本的awk(GNU Awk或Nawk)
l Windows平台上,需要Cygwin 1.7以上版本。在Cygwin 1.5版本中,NDK不能使用。
1.4 Android平台兼容性
l 使用Android NDK创建的本地库只能运行在Android 1.5及以上版本的设备中。这是由于工具链和ABI的变化导致1.0和1.1的系统印象上不兼容。
l 出于这个原因,开发人员应在Android 1.5版本及以上版本的设备中发布使用了NDK创建的本地库的应用。
l 为了确保兼容性,使用了本地库的应用必须在manifest文件中声明<uses-sdk>节点,其中android:minSdkVersion属性的值需要设置为”3”或更高。例如:
<manifest>
<uses-sdkandroid:minSdkVersion="3" />
...
</manifest>
l 如果开发人员使用了OpenGL ES APIs,那么Android应用需要做如下设置:
OpenGL ES Version Used | Compatible Android Platform(s) | Required uses-sdk Attribute |
---|---|---|
OpenGL ES 1.1 | Android 1.6 and higher | android:minSdkVersion="4" |
OpenGL ES 2.0 | Android 2.0 and higher | android:minSdkVersion="5" |
l 此外,使用了OpenGL ES APIs的应用必须在Manifest中声明<uses-feature>节点,使用android:glEsVersion属性指定应用所需要的最小OpenGl ES版本。这样做确保Android市场只在支持该应用的用户设备上显示这些应用。例如:
<manifest>
<uses-feature android:glEsVersion="0x00020000" />
...
</manifest>
l 如果本地库使用了访问Android Bitmap pixelbuffers or utilizes native activities的API,那么包含这些本地库的应用只能发布在Android2.2(API level 8)及以上版本中。为了确保兼容性,需要在manifest中作如此声明: <uses-sdkandroid:minSdkVersion="8" />