关闭

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

标签: androidJNIdemo模板NDK程序第一个应用
463人阅读 评论(0) 收藏 举报
分类:

这是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;
	
	@Override
	protected 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() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				
				
				Toast.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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:189291次
    • 积分:3504
    • 等级:
    • 排名:第9824名
    • 原创:116篇
    • 转载:280篇
    • 译文:2篇
    • 评论:26条
    博客专栏
    最新评论