NDK
NDK(native development kit) 原生开发套件。一款将c,c++与Android应用结合到一起的开发工具,Android应用使用jni调用原生c++开发的模块,使性能得到大大的提升。
Ndk-build 编译
NDK开发套件提供了一系列开发工具,其中的ndk-build用来快速生成原生应用程序。
ndk-builer使用application.mk,和android.mk作为脚本文件。
application.mk是可选的,用来说明生成的文件的二进制格式等特性。
android.mk是ndk-builer的编译脚本,描述了项目的编译选项,将要编译的文件,依赖库等。
LOCAL_PATH := $(call my-dir)
//定义本地源码的路径
include $(CLEAR_VARS)
//清除掉一些已经定义的宏
LOCAL_CFLAGS += -pie -fPIE
LOCAL_LDFLAGS += -pie -fPIE
//在5.0以上Android系统上使用必须指定项
LOCAL_ARM_MODE := arm
//arm指令模式
LOCAL_MODULE := Hello
//模块名称
LOCAL_SRC_FILES := Hello.c
//c或者c++源文件列表
include $(BUILD_EXECUTABLE)
//指定生成文件的类型,BUILD_EXECUTABLE生成可执行文件,BUILD_SHARED_动态库,BUILD_STATIC_LIBRARY静态库
Hello World例子
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
-
把源代码保存为Hello.c,复制到到jni目录下与android.mk,application.mk文件放在一起。
-
运行ndk-build命令,在lib/armeabi-v7a目录下生成Hello文件,并把Hello文件复制到jni目录下。
-
运行模拟器,执行adb push Hello /data/local/tmp。
-
运行cd /data/local/tmp,再运行chomod 777 Hello 命令,增加权限。
-
运行./Hello , 输出Hello World.
网友评论