步骤
1. 在项目根目录新建jni文件夹
2. 新建C文件
3. 新建Android.mk配置文件
4. 新建Application.mk配置文件
5. 生成*.so库文件
6. java文件中调用
7. 调试到手机
在项目根目录新建jni文件夹
回到目录
新建C文件
结果如下:
C文件代码如下
此处为了以后方便管理jni目录下的库项目,所以把此处代码文件放到hello目录下
#include <jni.h>
#include <string.h>
jstring
Java_com_example_testjni_MainActivity_stringFromJni(JNIEnv* env, jobject thiz)
{
return (*env)->NewStringUTF(env, "Hello from jni!");
}
回到目录
新建Android.mk配置文件
结构如下
Android.mk内代码如下
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := ./hello/hello-jni.c
include $(BUILD_SHARED_LIBRARY)
回到目录
新建Application.mk配置文件
结构如下
Application.mk代码如下
#构建适合全支持的cpu架构的.so库
APP_API := all
回到目录
生成*.so库文件
进入项目根目录使用ndk-build命令
回到目录
Java文件中调用
package com.example.testjni;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
((TextView)findViewById(R.id.tv)).setText(stringFromJni());
}
public native String stringFromJni();
static {
System.loadLibrary("hello-jni");
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
回到目录
调试到手机
回到目录