NDK学习(1)

来源:互联网 发布:python 数组类型转换 编辑:程序博客网 时间:2024/05/22 02:22

我的第一个NDK


工具:Android studio 2.1.2


第一步、创建一个Android project


第二步、在local.properties中配置ndk路径

ndk.dir=D\:\\SDK\\ndk-bundlesdk.dir=D\:\\SDK 
第三步、创建一个jni.java文件

public class jni {    public static native String getStringFromNative();}
第四步、Build->Make Module 'app'

成功后会在D:\project\book\NDK\app\build\intermediates\classes\debug\cn\ac\hdz\ndk下生成jni.class文件(这是我的路径,不同的项目路径也不同)。

这一步其实就是把.java编译成.class文件,实现方式有很多,用哪种都行。


第五步、在命令提示符中执行javah -d jni -classpath ../../build/intermediates/classes/debug cn.ac.hdz.ndk.jni

成功后会在D:\project\book\NDK\app\src\main\jni文件夹下生成一个.h文件


第六步、在上一步创建的jni文件夹中创建一个.c文件,文件中写入:

#include "cn_ac_hdz_ndk_jni.h"JNIEXPORT jstring JNICALL java_cn_ac_hdz_ndk_jni_getStringFromNative(JNIEnv *enc, jclass jclass){    return (*enc)->NewStringUTF(enc,"hello c");}

第七步、Build->Make Module 'app'

在jni.java中写入

public class jni {    static {        System.loadLibrary("app");    }    public static native String getStringFromNative();}
在 Mainactivity.java中写入

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        TextView viewById = (TextView)findViewById(R.id.tv_jni);        viewById.setText(jni.getStringFromNative());    }}

第八步、运行程序