前言
在Android工程里通过Java调C,需要JNI,而JNI生成so库只能在同包名下的同名Java中使用,故创建Library来生成并加载so,且生成aar提供给第三方应用使用。如有错误,望不吝指正。
一、生成so
1,创建工程,新建module作为jni的库工程,里面是Java和C之间的互调。
2,JNIUtils.java加载指定so名称,并且定义了c中要实现的方法供Java来调用
3,javac JNIUtils.java生成.class文件
4,javah -jni com.cpp.jnitest.JNIUtils来生成头文件供c或者cpp文件调用,头文件内容为:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_cpp_jnitest_JNIUtils */
#ifndef _Included_com_cpp_jnitest_JNIUtils
#define _Included_com_cpp_jnitest_JNIUtils
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_cpp_jnites