首页 > 移动平台 > 详细

Android NDK开发步骤(r9)

时间:2014-01-23 07:38:51      阅读:452      评论:0      收藏:0      [点我收藏+]

1. 创建Android Project

File -> New -> Android Application Project

bubuko.com,布布扣

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

bubuko.com,布布扣

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 bin\classes -d jni lw.example.hellondk.HelloJni
@pause

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

4. 添加Native支持

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

bubuko.com,布布扣

5. 附加Android Native C的h文件

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

bubuko.com,布布扣

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文件

点击工具栏bubuko.com,布布扣,编译成功后,会生成so文件。

bubuko.com,布布扣

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. 运行查看结果

bubuko.com,布布扣

Android NDK开发步骤(r9)

原文:http://www.cnblogs.com/cpp-graphics/p/3530502.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!