zoukankan      html  css  js  c++  java
  • 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. 运行查看结果

  • 相关阅读:
    9. MySQL
    python第四课
    python第三课pycharm的使用
    python第二课
    python第一课
    Python3基础-网络编程(8)
    Python3基础-异常处理(7)
    Python3基础-面向对象(6)
    Python3基础-模块和包(5)
    Python3基础-文件处理(4)
  • 原文地址:https://www.cnblogs.com/cpp-graphics/p/3530502.html
Copyright © 2011-2022 走看看