电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

NDK应用及扩展介绍VIP专享VIP免费

NDK应用及扩展介绍_第1页
NDK应用及扩展介绍_第2页
NDK应用及扩展介绍_第3页
NDK 应用及扩展 Android NDK 作用主要用来编译本地库(由C,C++文件编译后运行于目标CPU 的库)给Android java 调用,同时,可以用来打包编译动态库和静态库,但不能将本地库和java 文件打包成APK(这是别的范畴,后面有简单实现这功能的方法). 本例子主要介绍如何使用NDK 编译出动态库(.so)和静态库(.a),并且在编译它们的时候又调用其他的动态库或静态库,并且将其他的库打包成最终的一个库文件.so 给java 调用. 最后简单说明其他实现编译so 文件的方法,打包so 到apk 里的方法. NDK 内部变量说明请参考<【eoe 特刊】第七期:NDK>.pdf 文件. 本例子是在ubuntu9.04 上使用android-ndk-1.6_r1-linux-x86 和android-sdk-linux_x86_16. 1. 安装. a) Tar –jxvf android-ndk-1.6_r1-linux-x86.tar.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_PATH 下 jni 文件夹下的c,c++文件) b) 进入 jni 文件夹,创建 add.c,add.h,Android.mk 内容分别如下: i. add.h: #ifndef ADD_H #define ADD_H extern int add(int x, int y); #endif /* ADD_H */ ii. add.c #include "add.h" int add(int x, int y){ return x + y; } iii. Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := testapi LOCAL_SRC_FILES := add.c LOCAL_PRELINK_MODULE := false include $(BUILD_SHARED_LIBRARY) iv. 回到$NDK_ROOT 目录,命令行输入 make APP=api 编译成功, 在$NDK_ROOT/apps/api/libs/armeabi 得到动态库 libtestapi.so, 3147Btye v. 将Android.mk 最后一样修改成 include $(BUILD_STATIC_LIBRARY) 在$NDK_ROOT 目录,命令行输入 make APP=api 编译成功,在$NDK_ROOT/out/apps/api/得到静态库 libtestapi.a, ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部