windows 8 (注:其实 Linux 开发可能更方便)
Android Studio 2.1;
一 . 下载 安装android-ndk开发包
地址:链接: 密码:h7gr;
下载完成后最好解决到一个根目录,中间不要有空格,中文;
二.
1、新建项目MyJNIDemo,选择空Activity就可以;
2. 新建 com.jcdh.jcli.MyJNI 类
public class MyJNI { static { System.loadLibrary("hello_jni"); } public native String getDataFromJni();}
3、工程app New->Folder->JNI Folder;
4. MainActivity 实现:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView show = (TextView)findViewById(R.id.show);
MyJNI myJni = new MyJNI(); show.setText(myJni.getDataFromJni());}}
5.Gradle scripts gradle ->build-gradle 在defaultConfig中添加(注意是添加原来的不变)
defaultConfig { ndk { moduleName "hello_jni" } sourceSets.main { jni.srcDirs = [] jniLibs.srcDir "src/main/libs" }
Gradle scripts gradle.properties 增加
android.useDeprecatedNdk=true
6. 点击File->Setting->Tools->External Tools 点击“+”,添加如下以下三项(非必须,也可以用命令行实现)
(1)javah
(2) ndk-build
(3)ndk-build-clean
7.jni 文件夹上右键 NDK->java.h,可以看到控制台编译 ,有了菜单以后都会比较方便
同时jni文件夹下生成了文件 com_jcdh_jcli_myndk_MyJNIDemo.h
8.jni目录下新建hello_jni.cpp文件
#include "com_jcdh_jcli_myjnidemo_MainActivity.h"JNIEXPORT jstring JNICALL Java_com_jcdh_jcli_myjnidemo_MainActivity_getDataFromJni (JNIEnv * env, jobject obj){ return env->NewStringUTF("hello world!");}
9.jni目录下分别新建Android.mk与Application.mk
Android.mk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hello_jni LOCAL_SRC_FILES := hello_jni.cpp include $(BUILD_SHARED_LIBRARY)
Application.mk
APP_MODULES := hello_jni APP_ABI := all 10. 右键 jni文件夹, ndk->ndk-build,编译成功后,运行即可在手机上输出 hello world!
DEMO 下载: