最新版Android NDK开发环境搭建以及第一个Android NDK程序(在eclipse中演示)(超简单实用)

来源:互联网 发布:学编程要下载什么软件 编辑:程序博客网 时间:2024/06/07 20:31

这是Android NDK 开发系列篇 之第四篇,重点讲述 在windows 平台下NDK开发环境搭建,以及第一个NDK工程搭建。

一、开发工具准备

1、PC机电脑一台,Windows 7 64位以上操作系统 ;

2、Android SDK开发工具包,eclipse;

3、Android NDK开发工具包;


二、NDK开发环境搭建

1、下载最新版本的Android   NDK安装包(下载地址在前面的博客中有说明),解压到指定目录即可。如下图所示解压到D:\  ,我这里使用两个版本的NDK10、11。实际只使用一个就可以

 


2、搭建Android APP开发环境,也就是 安装Android SDK-java,eclipse集成开发环境,一般读者能看到这篇博客,说明已经能够熟练运用eclipse新建Android APP。

3、到这里 Android NDK开发环境已经搭建好了,其实不需要太多工具。也就是一个NDK开发工具包,一个能够新建Android APP的eclipse集成开发环境。


三、第一个NDK工程

1、首先建立一个Android APP工程,工程,项目名字都可以随便命名,我们这里命名为AndroidHelloJNI,请用eclipse新建Android APP 工程、


2、从刚刚安装好的NDK开发工具目录中找到 samples -> hello-jni  例子。将jni目录拷贝到我们刚刚建好的工程目录下面。

3.关联jni 新建ndk-builder  让ndk-build 自动编译AndroidHelloJNI 工程下面的jni 目录

(a)Project->Properties->Builders->New,新建一个Builder。
(b)在弹出的【Choose configuration type】对话框,选择【Program】,点击【OK】:
(c)在弹出的【Edit Configuration】对话框中,配置选项卡【Main】。
在“Name“中输入新builders的名称(这个名字可以任意取)。

在“Location”中输入nkd-build.cmd的路径(这个是下载完ndk8后解压后的路径,这个建议放在根目录下面,路径不能有空格和中文)。根据各自的ndk路径设置,也可以点击“Browser File System…”来选取这个路径。
在“Working Diretcoty”中输入TestNdk位置(也可以点击“Browse Workspace”来选取TestNdk目录)

   

 4. 参数配置

4.1 Main

①Name:NDK_Builder

②Location为ndk-build.cmd的路径,可以如图所示绝对路径,也可以以环境变量的形式,即 ${ANDROID_NDK}\ndk-build.cmd,其中ANDROID_NDK为配置的NDK路径

③Working Directory,为当前的工程下。

这里的${}的表达是使用了EC的环境变量,可以使用Variables...按钮找到一些3 EC的环境变量。 

对于Linux上的配置,和这里的配置一样,只是把Location的地址改为ndk-build即可(下图中的workspace Directory为工作空间下的工程目录本例中为${workspace_loc:/AndroidHelloJNI}

   

4.2 Refresh

   

4.3 Build Options

    

    

注:Linux环境下只需修改ndk-build.cmdndk-build即可


5、经过以上步骤设置,即完成自动ndk-自动编译JNI目录下面的C/C++程序。 设置project  -> clean 即可在lib目录下生成各个不同cpu类型下使用的.so库。如下图所示 



6、在上层java应用程序中完成调用使用,

需要两步,单独新建类HelloJni.java 代码如下

package com.example.androidhellojni;public class HelloJni{public  native String stringFromJNI();}

再在MainActivity.java 中静态调用类库,即可使用这个JNI接口

package com.example.androidhellojni;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {private TextView test;private HelloJni helloJni;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);    helloJni = new HelloJni();    test = (TextView)findViewById(R.id.text);    test.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, helloJni.stringFromJNI(), 3000).show();;}});}static {System.loadLibrary("hello-jni");}}

7、运行 看到效果如下: 



8、欢迎就Android JNI NDK开发问题进行交流

我已经将测试demo 传到git上 请自行下载。

https://github.com/Guofengpu/AndroidHelloJNI

0 0
原创粉丝点击