• Android NDK开发步骤(r9)


    1. 创建Android Project

    File -> New -> Android Application Project

    2. 定义调用C函数的java类,并生成(Eclipse中是自动编译的)。

    Java代码:

    package lw.example.hellondk;

    public class HelloJni {
        public native String getStringFromJni();
        
        public static native String getStringFromJniStatic();
        
        static {
            System.loadLibrary("HelloNdk");
        }
    }

    3. 生成h文件

    在Project新建gen_h.bat文件,输入内容如下:

    javah -classpath binclasses -d jni lw.example.hellondk.HelloJni
    @pause

    运行该bat文件后,会在jni目录生成lw_example_hellondk_HelloJni.h文件。

    4. 添加Native支持

    右击Project -> Android Tools -> Add Native Support...

    5. 附加Android Native C的h文件

    右击project -> Properties,设置如下:

    6. 在cpp文件中实现函数。

    #include "lw_example_hellondk_HelloJni.h"

    jstring
    Java_lw_example_hellondk_HelloJni_getStringFromJni(JNIEnv* env, jobject thiz)
    {
        return env->NewStringUTF("Hello JNI!");
    }

    jstring
    Java_lw_example_hellondk_HelloJni_getStringFromJniStatic(JNIEnv* env, jclass thiz)
    {
        return env->NewStringUTF("Hello JNI!(static)");
    }

    7. 编译so文件

    点击工具栏,编译成功后,会生成so文件。

    8. 在Activity中添加测试代码。

    package lw.example.hellondk;

    import android.app.Activity;
    import android.widget.TextView;
    import android.os.Bundle;

    public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            /* Create a TextView and set its content.
             * the text is retrieved by calling a native
             * function.
             */
            TextView  tv = new TextView(this);
            tv.setText( HelloJni.getStringFromJniStatic() );
            setContentView(tv);
        }

    }

    9. 运行查看结果

  • 相关阅读:
    代码那些事儿之葫芦娃救爷爷
    《数学计算出题系统》功能规格说明书
    有点难
    肝不动了
    so easy, too happy
    新学期的展望
    Android Gradle插件
    重学数据结构和算法(三)之递归、二分、字符串匹配
    重学数据结构和算法(二)之二叉树、红黑树、递归树、堆排序
    重学数据结构和算法(一)之复杂度、数组、链表、栈、队列、图
  • 原文地址:https://www.cnblogs.com/cpp-graphics/p/3530502.html
Copyright © 2020-2023  润新知