dd

Android NDK 开发教程一:安装NDK

jerry Android 2015年08月24日 收藏

Android OS 的基本框架为Linux-Java ,在介绍Android开发时用到的Android结构图:

android 体系底层为Linux内核,之上提供一些C/C++函数库,因此Android 应用开发也可以使用C /C++开发,这就是Android NDK开发包,但Android提供NDK开发包的主要目的并不是推荐开发人员使用C(Native 代码)来编写一般的Android应用,而是要使用Java代码来编写Android应用来更好的处理Android应用生命周期(Life-cycle)相关的事件以避免出现“应用程序不响应(ANR)”的对话框。

使用NDK主要是通过JNI 使用从Java代码调用C代码,也就是使用Native编程主要是为上层Java代码提供库函数(动态库或是静态库的形式)而不是全部使用Native C代码编写整个Android应用(尽管借助于少量Java代码也是可以大部分使用C代码来实现的)。使用NDK大部分情况是需要将一些已有的C函数库移植到Android平台的所选择的快捷方法,而不是作为提高代码效率的手段。

安装Android NDK的方法非常简单:打开网页http://developer.android.com/sdk/ndk/index.html

选择合适的NDK开发包,下载解压即可。注:安装NDK之前需先安装SDK开发包,参见Android简明开发教程二:安装开发环境。

Android NDK 的前两级目录如下:

.
├── build
│   ├── awk
│   ├── core
│   ├── gmsl
│   └── tools
├── docs
│   ├── ANDROID-ATOMICS.html
│   ├── ANDROID-MK.html
│   ├── APPLICATION-MK.html
│   ├── CHANGES.html
│   ├── CPLUSPLUS-SUPPORT.html
│   ├── CPU-ARCH-ABIS.html
│   ├── CPU-ARM-NEON.html
│   ├── CPU-FEATURES.html
│   ├── CPU-X86.html
│   ├── DEVELOPMENT.html
│   ├── HOWTO.html
│   ├── IMPORT-MODULE.html
│   ├── INSTALL.html
│   ├── LICENSES.html
│   ├── NATIVE-ACTIVITY.HTML
│   ├── NDK-BUILD.html
│   ├── NDK-GDB.html
│   ├── NDK-STACK.html
│   ├── openmaxal
│   ├── opensles
│   ├── OVERVIEW.html
│   ├── PREBUILTS.html
│   ├── sidenav.html
│   ├── STABLE-APIS.html
│   ├── STANDALONE-TOOLCHAIN.html
│   ├── system
│   └── SYSTEM-ISSUES.html
├── documentation.html
├── GNUmakefile
├── ndk-build
├── ndk-build.cmd
├── ndk-gdb
├── ndk-stack
├── ndk.txt
├── platforms
│   ├── android-14
│   ├── android-3
│   ├── android-4
│   ├── android-5
│   ├── android-8
│   └── android-9
├── prebuilt
│   └── linux-x86
├── README.TXT
├── RELEASE.TXT
├── samples
│   ├── bitmap-plasma
│   ├── hello-gl2
│   ├── hello-jni
│   ├── hello-neon
│   ├── module-exports
│   ├── native-activity
│   ├── native-audio
│   ├── native-media
│   ├── native-plasma
│   ├── san-angeles
│   ├── test-libstdc++
│   └── two-libs
├── sources
│   ├── android
│   ├── cpufeatures
│   └── cxx-stl
├── tests
│   ├── awk
│   ├── build
│   ├── device
│   ├── README
│   ├── run-standalone-tests.sh
│   ├── run-tests.sh
│   └── standalone
└── toolchains
    ├── arm-linux-androideabi-4.4.3
    └── x86-4.4.3

在开发NDK之前,建议先看一下doc 子目录下的文档,后面的博客也会有所介绍。

dd