android ndk开发hello world入门

来源:互联网 发布:淘宝怎么提升信誉 编辑:程序博客网 时间:2024/05/17 01:48

不知道为什么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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); TextView tv = (TextView) findViewById(R.id.textview);tv.setText(GetString.getStr());}}
7.运行




1 0