ndk-build生成so库备忘

使用ndk-build命令生成so库,需要4个文件:

  • 头文件(例如test.h)
  • c文件(例如test.c或test.cpp)
  • Android.mk
  • Application.mk

1. 头文件模板

/* DO NOT EDIT THIS FILE - it is machine generated */
#include 
/* Header for class com_aiden_jnitest_MyJNITest */

#ifndef _Included_com_aiden_jnitest_MyJNITest
#define _Included_com_aiden_jnitest_MyJNITest
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_aiden_jnitest_MyJNITest
 * Method:    getString
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_aiden_jnitest_MyJNITest_getString
  (JNIEnv *, jclass);

#ifdef __cplusplus
}
#endif
#endif

2. c文件模板

#include "jni.h"
#include "com_aiden_jnitest_MyJNITest.h"

JNIEXPORT jstring JNICALL Java_com_aiden_jnitest_MyJNITest_getString
  (JNIEnv *env, jclass jz){

  return (*env)->NewStringUTF(env, "JNI is powerful and fun");

  }

3. Android.mk文件模板

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := MyTest
LOCAL_SRC_FILES := Test.c
include $(BUILD_SHARED_LIBRARY)

执行ndk-build后会生成libMyTest.so的库文件。

4. Application.mk文件模板

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_PLATFORM := android-14
APP_ABI := armeabi-v7a arm64-v8a

表示会按这2个平台生成2组相应的so库。可以按需添加。

你可能感兴趣的:(ndk-build生成so库备忘)