*.mk文件中#开头的语句为注释语句 【sample】 文件目录结构 C:\hello-jni ?????????????|–jni ???????????????????|–Android.mk ???????????????????|–Application.mk ???????????????????|–hello.c 1. hello.c文件
#include <stdio.h>
int main(void)
{
printf("%hello-jni\d");
return 0;
}
2. Android.mk文件
LOCAL_PATH:=$(call my-dir) # 固定格式
include$(CLEAR_VARS) # 固定格式
LOCAL_MODULE:=hello # 生成模块名称为hello,模块名称可任意修改
LOCAL_SRC_FILES:=hello.c # 包括的源码文件,与Android.mk文件同级目录
include$(BUILD_EXECUTABLE) # 生成可执行的程序,生成的文件名为hello
# include$(BUILD_SHARED_LIBRARY) # 生成共享库,生成的文件名为libhello.so
3. Application.mk文件
APP_ABI:=all # all表示生成所以类型的目标文件:arm64-v8a、armeabi-v7a、x86、x86_64
# 可指定只生成某种类型的目标文件
# APP_ABI:=arm64-v8a
# APP_PLATFORM:=android-28 # 指定SDK API的版本
4.NDK编译 (1) cmd窗口目录切换到C:\hello-jni\jni (2) cmd窗口执行NDK目录下的ndk-build.cmd(不需要输入参数) 最终目录结构如下 文件目录结构 C:\hello-jni ?????????????|–jni ???????????????????|–Android.mk ???????????????????|–Application.mk ???????????????????|–hello.c ?????????????|–libs ?????????????|–obj 最终生成的文件存放于libs文件夹中
【注】最终生成的libs和obj文件夹与Android.mk文件所在的目录jni文件夹同级,并不与Android.mk同级
|