我的第一个NDKDmeo

来源:互联网 发布:java软件如何下载? 编辑:程序博客网 时间:2024/06/05 18:31

我的第一个NDKDmeo

由于业务的需要,最近打算研究一下NDK的开发,首先写一个简单的demo测试一下环境

搭建环境

  • 下载ndk包
    下载地址:http://developer.android.com/intl/zh-cn/tools/sdk/ndk/index.html
  • eclipse–>windows–>preferences–>android–>NDK 在NDK Location中加入下载sdk路径

    这里写图片描述

写一个demo

  • 新建的android 应用程序
  • 在项目上–>右键–>Android Tools –>Add SuportLibrary… 填入jar包名称
  • 在工程中会自动生成jni文件夹,有**.cpp和Android.mk文件
  • 编写cpp文件
#include <jni.h>#include <stdio.h>#include <string.h>extern "C" {JNIEXPORT jstring JNICALL Java_com_example_testndk_MainActivity_getString(JNIEnv* env, jobject obj)    {        return env->NewStringUTF("hello");    }}
  • 应用入口Activity中加入加载ndk代码
package com.example.testndk;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.TextView;public class MainActivity extends Activity {    public static native String getString();    static{        System.loadLibrary("TestNdk");    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        TextView tv = (TextView) findViewById(R.id.text);        String str = getString();        tv.setText("ndk"+str);          }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }}
  • 运行程序
0 0
原创粉丝点击