android开发实践之ndk编译命令简单示例
前言
Android提供了NDK工具,用来编译native代码(c/c++),该工具配置好了相关的交叉编译环境和工具链,只需要你简单地编写几个.mk文件即可将你的c/c++代码编译为Android的java工程/Android手机可以识别、加载和运行的库或者应用程序。
默认情况下,使用NDK编译c/c++代码,需要将该代码放置到任一个Android应用工程的jni目录下,然后编写相应的Android.mk文件,并执行ndk-build命令完成编译。其实你也是可以在任意目录下去编译native代码的,只需要在ndk-build命令后面添加相应的命令行参数即可,这里给出一些常用的ndk-build命令行参数,方便大家灵活地使用NDK编译自己的native代码,具体的示例我将会在后续的文章中给出。
ndk-build命令行参数
1、ndk-buildNDK_LOG=1
用于配置LOG级别,打印ndk编译时的详细输出信息
2、ndk-buildNDK_PROJECT_PATH=.
指定NDK编译的代码路径为当前目录,如果不配置,则必须把工程代码放到Android工程的jni目录下
3、ndk-buildAPP_BUILD_SCRIPT=./Android.mk
指定NDK编译使用的Android.mk文件
4、ndk-buildNDK_APPLICATION_MK=./Application.mk
指定NDK编译使用的application.mk文件
5、ndk-buildclean
清除所有编译出来的临时文件和目标文件
6、ndk-build-B
强制重新编译已经编译完成的代码
7、ndk-buildNDK_DEBUG=1
执行debugbuild
8、ndk-buildNDK_DEBUG=0
执行releasebuild
9、ndk-buildNDK_OUT=./mydir
指定编译生成的文件的存放位置
10、ndk-build-C/opt/myTest/
到指定目录编译native代码
例:
编写.c文件
假设你在~/math目录下编写了一个math.c文件,内容如下:
#includeintadd(inta,intb){ returna+b; }
编写Android.mk文件,内容如下:
LOCAL_PATH:=$(callmy-dir) include$(CLEAR_VARS) LOCAL_MODULE:=dmath LOCAL_SRC_FILES:=math.c include$(BUILD_SHARED_LIBRARY)
在~/math目录下,执行ndk-build命令,参数如下:
$ndk-buildNDK_PROJECT_PATH=.APP_BUILD_SCRIPT=./Android.mk
或:
ndk-buildNDK_PROJECT_PATH=.APP_BUILD_SCRIPT=./Android.mkNDK_APPLICATION_MK=./Application.mk
NDK_PROJECT_PATH指定了需要编译的代码的工程目录,这里给出的是当前目录,APP_BUILD_SCRIPT给出的是Androidmakefile文件的路径,当然,如果你还有Application.mk文件的话,则可以添加NDK_APP_APPLICATION_MK=./Application.mk
执行完ndk-build命令后,你会发现当前目录下,生成了obj和libs文件夹,这样,你的libdmath.so动态库就已经制作完成了,在libs/armeabi目录下。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。