码迷,mamicode.com
首页 > 移动开发 > 详细

android ndk开发hello world入门

时间:2015-07-22 00:06:40      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

不知道为什么android的ndk开发资料在网上很少,还有的资料基本上无法完成入门学习demo,根本无法运行,小弟用了三天三夜的时间来弄helloworld,极尽失眠的程度。

一开始是在android studio上配置ndk开发幻镜,然后是进行hello world的开发,但是android studio支持ndk开发相对较晚,没有elipse成熟,在编译的时候遇到很多问题,最终放弃(我知道这不是一个好习惯,但是等以后我还会回来的)

注:ndk在gradle上的配置

http://gradle.org/getting-started-android/#buildauthor

http://ph0b.com/android-studio-gradle-and-ndk-integration/

在这里唠叨一句,使用android studio,那么有必要加强下对gradle的理解。

开始在eclipse上进行ndk开发:

简述1.创建空android项目

  2. 书写一个本地类,定义一个空的本地方法。如 public static native String getStr();

  3. 切换到项目src目录下,我的是home/dlzh/workspace/HelloNDK/src,然后执行javah -jni com.example.hellondk.GetString,之后在该目录下生成一个.h文件

  4.HelloNdk.c文件写实现native方法

  5.加载so文件,运行。

详细步骤如下:

1.创建一个空的android项目

2.编写一个本地GetString.class

public class GetString {
	//本地代码实现
	public  static native String getStr(); //定义本地方法,由c语言实现
}
 3.鼠标右键点击项目名称,然后选择“build project”;在项目的下面会自动生成jni和libs文件夹,然后右键项目,选择Android tools--》add native support。

 4.然后ubuntu切换到项目的src目录下,执行javah -jni com.example.hellondk.GetString命令,回车。将生成的com_example_hellondk_GetString.h,拷贝到jni文件加下

 5.打开jni文件夹下的HelloNdk.c文件,实现头文件生命的方法

#include <jni.h>
#include<com_example_hellondk_GetString.h>
/*
 * 实现头文件方法
 */
JNIEXPORT jstring JNICALL Java_com_example_hellondk_GetString_getStr
  (JNIEnv *env, jclass){
	return env->NewStringUTF("static method call hello Ndk !");
}


 然后在GetString.java下添加如下代码,加载so文件

  	static{
		System.loadLibrary("HelloNDK");
	}

6.然后
public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		 TextView tv = (TextView) findViewById(R.id.textview);
		tv.setText(GetString.getStr());
	}
	

}
7.运行




版权声明:本文为博主原创文章,未经博主允许不得转载。

android ndk开发hello world入门

标签:

原文地址:http://blog.csdn.net/dulizhi1991/article/details/46993603

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!