上一次说到写native方法,调用cpp里面的方法。
接下来说的是生成so包。
生成so包需要编写一个Android.mk。mk可以让你写的c代码变成so包。
先看下最简单的结构:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := testjni LOCAL_SRC_FILES := qj_hellojni_TestJni.cpp include $(BUILD_SHARED_LIBRARY)
LOCAL_PATH变量。它用于在开发树中查找源文件。在这个例子中,宏函数’my-dir’, 由编译系统提供,用于返回当前路径(即包含Android.mk file文件的目录)。
include $( CLEAR_VARS)
CLEAR_VARS 由编译系统提供,指定让GNU MAKEFILE为你清除许多LOCAL_XXX变量(,除LOCAL_PATH 。这是必要的。
LOCAL_MODULE 是你要编译成的so包的名称,可以有多个modul
LOCAL_SRC_FILES 是生成这个库的源文件。
include $(BUILD_SHARED_LIBRARY) 这个指令是说生成so。
写了这些之后,直接编译,就可以生成so包了。
我使用的是Android Studio,所以生成的so包存放目录在
HelloJNI\app\build\intermediates\ndk\debug\lib