目录
1、建工程
2、建java类
3、生成头文件
4、CPP实现
5、配置及编译
6、验证
1、建工程
先创建一个android标准工程:
2、建java类
在com.phuket.tour.studio包下,建立一个Java文件Mp3Encoder.java,并且在文件中新增一个方法encode(),如下图:
3、生成头文件
打开终端,进入到android工程目录下面的bin\classes目录,
执行下面的命令生成JNI接口文件:
javah -jni com.phuket.tour.studio.Mp3Encoder
4、CPP实现
把生成的头文件复制到android工程的jni目录下,编写一个Mp3Encoder.cpp来实现该接口文件:
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
JNIEXPORT void JNICALL Java_com_phuket_tour_studio_Mp3Encoder_encode(
JNIEnv * env,jobject obj){
LOGI("encoder encode");
};
5、配置及编译
在jni目录下新建一个Android.mk文件,并键入以下内容:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES = ./Mp3Encoder.cpp
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
LOCAL_MODULE := libaudioencoder
include $(BUILD_SHARED_LIBRARY)
然后执行如下命令生成.so文件:
ndk-build
生成的文件如下图:
6、验证
在MainActivity中写入一个静态代码块,如下:
static {
System.loadLibrary("audioencoder");
}
在onCreate()方法中调用Mp3Encoder类的encode()方法。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Mp3Encoder mMp3Encoder = new Mp3Encoder();
mMp3Encoder.encode();
}
最后在Logcat中查看打印的日志~~~~ end.