NDK 应用及扩展 Android NDK 作用主要用来编译本地库(由C,C++文件编译后运行于目标CPU 的库)给Android java 调用,同时,可以用来打包编译动态库和静态库,但不能将本地库和java 文件打包成APK(这是别的范畴,后面有简单实现这功能的方法)
本例子主要介绍如何使用NDK 编译出动态库(
so)和静态库(
a),并且在编译它们的时候又调用其他的动态库或静态库,并且将其他的库打包成最终的一个库文件
so 给java 调用
最后简单说明其他实现编译so 文件的方法,打包so 到apk 里的方法
NDK 内部变量说明请参考
pdf 文件
本例子是在ubuntu9
04 上使用android-ndk-1
6_r1-linux-x86 和android-sdk-linux_x86_16
a) Tar –jxvf android-ndk-1
6_r1-linux-x86
bz2 得到android-ndk-1
6_r1 文件夹 b) 将android-ndk-1
6_r1 文件夹放到你要的位置,进入 android-ndk-1
6_r1 文件夹,此时的pwd 就是NDK 的根目录,我定义为$NDK_ROOT, c) 在$NDK_ROOT 执行命令
/build/host-setup
sh ,能成功安装 DNK 环境
(如果有问题,请按提示添加系统缺失文件) 2. 编译一个动态库和一个静态库
a) 在$NDK_ROOT 目录下进入 apps 文件夹,创建 jni 文件夹和Application
mk 文件,其内容如下 APP_PROJECT_PATH := $(call my-dir) APP_MODULES := testapi testapi 是生产模块的主要名字, ( 此版本系统默认编译$ APP_PROJECT_P