1.第一步下载ndk,直接通过SDKManager下载NDK;
2.配置环境变量;
(1). pico .bash_profile
(2). export PATH=${PATH}:/Users/xxx/xxx/androidstudio/android-sdk-macosx/ndk/21.0.6113669
export NDK_ROOT=/Users/xxx/xxx/androidstudio/android-sdk-macosx/ndk/21.0.6113669
最后保存( control+X) 选 Y;
3.在命令窗口执行,ndk-build;
出现这个说明,你配置成功了,到此第一步NDK环境配置好了。
4.配置External Tools
a.配置javah,用于生成头文件(可以用Whereis javah 查看具体的命令路径)
Program:/usr/bin/javah
Arguments:-classpath . -jni -d $ModuleFileDir$/src/main/jni $FileClass$
working directory:$ModuleFileDir$/src/main/java
B.ndk-build,用于构建so包;
Program:/Users/czd/Downloads/androidstudio/android-sdk-macosx/ndk/21.0.6113669/ndk-build(ndk-build的路径)
working directory:$ModuleFileDir$/src/main
5.创建一个新的项目,新进一个JNIUtils类:
右键点击,使用javah -jni生成 .h头文件;
5.创建c文件,取名native-lib.c;
继承头文件的方法,返回一个字符串;
6.新建Android.mk和Application.mk两个文件;
a.Android.mk
LOCAL_MODULE生成so文件的名称,LOCAL_SRC_FILES c文件的名称;这里可以配置多个:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := myLib
LOCAL_SRC_FILES := jnittest.c
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := myLib2
LOCAL_SRC_FILES := jnittest2.c
include $(BUILD_SHARED_LIBRARY)
b.Application.mk
6.配置build.gradle
7.使用ndk-build,生成so文件;
最终生成的so文件:
(备注:中途可能有个错误,需要修改android-ndk-r8c/build/core/add-application.mk第128行把__ndk_warning改为__ndk_info)
8.运行程序,到此第一个NDK简单的程序就完成了。