android ndk开发hello world入门

不知道为什么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.运行

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

时间: 2024-10-10 10:25:46

android ndk开发hello world入门的相关文章

Android NDK开发篇(五):Java与原生代码通信(数据操作)

尽管说使用NDK能够提高Android程序的运行效率,可是调用起来还是略微有点麻烦.NDK能够直接使用Java的原生数据类型,而引用类型,由于Java的引用类型的实如今NDK被屏蔽了,所以在NDK使用Java的引用类型则要做对应的处理. 一.对引用数据类型的操作 尽管Java的引用类型的实如今NDK被屏蔽了,JNI还是提供了一组API,通过JNIEnv接口指针提供原生方法改动和使用Java的引用类型. 1.字符串操作 JNI把Java的字符串当作引用来处理,在NDK中使用Java的字符串,须要相

Android NDK 开发(三)--常见错误锦集合Log的使用【转】

转载请注明出处:http://blog.csdn.net/allen315410/article/details/41826511  Android NDK开发经常因某些因素会出现一些意想不到的错误,很多时候调试这些错误的时候,显得比调试Java代码要复杂,一方面是导致错误的原因很多很杂,另一方面NDK开发涉及到C/C++代码的编写,很多程序员对此不熟悉.那么这篇博客就总结一下,在NDK开发中经常出现的一些问题,并且尝试提供一些正确的解决方案,方便在开发时能够快速定位到错误,更改错误,当然了,错

Android NDK 开发

NDK全称:Native Development Kit. 1.NDK是一系列工具的集合. * NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk.这些工具对开发者的帮助是巨大的. * NDK集成了交叉编译器,并提供了相应的mk文件隔离平台.CPU.API等差异,开发人员只需要简单修改mk文件(指出"哪些文件需要编译"."编译特性要求"等),就可以创建出so. * NDK可以自动地将so和Java应用一起

C++开发安卓、windows下搭建Android NDK开发环境

1. NDK(Native Development Kit) 1.1 NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP功能开发的工具,通过这个工具,我们可以把用C/C++代码编译成可以直接运行在Android平台上的本地代码,这些本地代码以动态链接库( *.so )的形式存在,也正因为这样,我们可以通过复用这些动态链接库从而复用本地代码. 那么,通过NDK这个开发工具包,那么我们是否可以将一个APK完全使用C/C++来编写呢? 答案是不可

Android NDK 开发(四)java传递数据到C【转】

转载请注明出处:http://blog.csdn.net/allen315410/article/details/41845701 前面几篇文章介绍了Android NDK开发的简单概念.常见错误及处理和从第一个Hello World开始实际做一个简单的JNI开发示例,相信看完之后,大家对NDK开发有了一个概念上的认识了,那么接下来我们需要再深入一下NDK的开发,我们知道NDK开发就是使用JNI这层“协议”在Java和C之间起个“桥梁”的作用,将Java和Native C之间联立起来,让Java

跟我学Android NDK开发(一)

Android NDK 开发跟其它开发一样,首先需要配置好开发环境,本文以 Ubuntu系统为例介绍如何进行 Android NDK 开发环境的配置. 1. 简介 什么是 Android NDK 呢? NDK(Native Development Kit) 是一个允许开发者用一些本地语言(C/C++)编写 Android App 的部分功能的工具集.对于一些特定的 App,NDK 非常有利于我们直接使用现成的用 C/C++ 编写的代码库(但对于大多数 App 来说,NDK 是没有必要的).使用

Android NDK开发(八)——应用监听自身卸载,弹出用户反馈调查

转载请注明出处:http://blog.csdn.net/allen315410/article/details/42521251 监听卸载情景和原理分析 1,情景分析 在上上篇博客中我写了一下NDK开发实践项目,使用开源的LAME库转码MP3,作为前面几篇基础博客的加深理解使用的,但是这样的项目用处不大,除了练练NDK功底.这篇博客,我将讲述一下一个各大应用中很常见的一个功能,同样也是基于JNI开发的Android应用小Demo,看完这个之后,不仅可以加深对NDK开发的理解,而且该Demo也可

Android NDK开发常见错误

错误一: make: *** No rule to make target `/cygdrive/d/1-workspace/showmap-android-opengles/jni/showmap_opengles_OpenGLESRenderer.c', needed by `/cygdrive/d/1-workspace/showmap-android-opengles/obj/local/armeabi/objs/OpenGLESMap/showmap_opengles_OpenGLES

Android NDK开发(二)——从Hello World学起

转载请注明出处:http://blog.csdn.net/allen315410/article/details/41805719  上篇文章讲述了Android NDK开发的一些基本概念,以及NDK的环境搭建,相信看过的朋友NDK开发环境搭建应该是没有问题了,还没有搭建或者不知道怎么搭建的朋友请点击这里.那么这篇文章,我们跟刚学Java编程语言一样,从世界知名程序"Hello World!"开始,开发出我们的第一个NDK程序. NDK目录简单介绍 在进行NDK开发之前,我们有必须熟悉