1.2 Android.mk编写
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := HelloWorld
LOCAL_JNI_SHARED_LIBRARIES := libjnicall
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
include $(LOCAL_PATH)/jni/Android.mk
代码06行:声明程序所需要的JNI共享库libjnicall;
代码09行:编译JNI模块,生成libjnicall.so。
2 .so库的编译
在本例中,so库的编译分为两部分,第一部分实现核心功能:加法运行,并打包为二进制静态库(static library);第二部分将静态库及JNI代码编译为.so库libjnicall.so。这两部分代码全部存放在jni目录中,如下所示:
图3 jni目录中的内容