`
absolute
  • 浏览: 190646 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

windows下的Android-ndk-r5b 环境搭建

阅读更多

由于Android系统是搭建在Linux之上的,所以想调用jni的话必须把c++动态链接库编译为so。

 

第一步,windows下的linux环境准备,先装一个cygwin。

 

安装步骤我就不多说了,网上有很多参考例子。这里我给大家介绍个国内比较快的镜像地址:

 

http://mirrors.sohu.com/cygwin/

 

安装cygwin需要很久,这个镜像地址我是花了半天装完的。值得注意的是中途如果网络出了问题

 

或者其他原因导致安装中断了。把那个devel-default改为devel-reinstall这样就会续装而不是重

 

装,可以节省很多时间。总的来说cygwin的安装还是比较容易的,只是要花不少时间而已。

 

第二步,下载android ndk。

 

我这里用的是目前最新的版本android-ndk-r5b。从r4以后就跟原来的

 

不一样了。安装方法也不一样。下载这个需要翻(和谐)墙大家都懂的。下载完以后把压缩文件随便解压到一个

 

目录。解压就行了不需要像之前的版本还要安装一下。

 

第三步,配置ndk和cygwin。

 

假如我的cygwin安装目录是C:\cygwin-install。找到C:\cygwin-install\home\alex.ren下的.bash_profile文件。

 

打开并添加一行:NDK=/cygdrive/f/android-ndk-r5b。我的android-ndk-r5b安装在f盘下面。(F:\android-ndk-

r5b,注意这个是ndk的根目录)。

 

第四步,写个jni调用的小例子。

 

打开eclipse新建一个android的工程。没什么特别的默认填写工程名,activity名字,包名。

 

我的包名为:com.hello.jni。在这个包下面创建一个JniTest类。

 

 

 写道
package com.hello.jni;

public class JniTest {
    public native String get();

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

第五步,生存Jni头文件。

 

首先生存jni的头文件。通过命令 javah -jni com.hello.jni.JniTest。在执行这个命令之前要先准备下面这些步骤。

 

1.由于eclipse默认把java class编译文件放在bin目录下,源文件在src目录下。所以需要把JniTest.class拷到

 

工程目录/src/com/hello/jni下面。如果JniTest类引用到了其他的class那么把其他所有引用到的class都拷到下面去。

 

2.最容易忽视掉的一点是上面那个javah命令需要在你的工程目录/src下面执行。不然会报找不到文件的错误。

 

第六步,准备Jni源文件

 

其实上面那个jni头文件要不要都无所谓,我们需要的是生存的那个JniTest类里面get方法在jni下面的格式。

 

在你的android工程目录下面建立一个jni目录。添加如下两个文件:

 

Android.mk

 

 写道
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := jnitest
LOCAL_SRC_FILES := jnitest.c

include $(BUILD_SHARED_LIBRARY)

 

jnitest就是生成的so模块名,jnitest.c就是c源文件。 

 

jnitest.c

 

 写道
#include <string.h>
#include <jni.h>

/* This is a trivial JNI example where we use a native method
* to return a new VM String. See the corresponding Java source
* file located at:
*
*/
jstring
Java_com_hello_jni_JniTest_get( JNIEnv* env, jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello from my JNI test!");
}
 

Java_com_hello_jni_JniTest_get,注意下这个函数的命名格式,我是直接从头文件里面copy过来的。别搞错了不然

没法调用的。(这个c文件写好后我把头文件删除掉了反正也没用到)

 

第七步,生成so库

 

在你的工程目录/jni下执行命令:$NDK/ndk-build。这个命令执行成功后会在你的工程目录下生成libs/armeabi/libjnitest.so文件。这个就是要在android下调用的jni库。

 

第八步,在android里面调用这个jni库函数

 

 

 写道
package com.hello.jni;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloJni extends Activity {
private JniTest jni;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
jni = new JniTest();
/* Create a TextView and set its content.
* the text is retrieved by calling a native
* function.
*/
TextView tv = new TextView(this);
tv.setText( jni.get() );
setContentView(tv);
}
}

 

大功告成

分享到:
评论
2 楼 absolute 2011-09-07  
www_JE 写道
顶楼主 看了好多就楼主的给力

那可不是
1 楼 www_JE 2011-09-07  
顶楼主 看了好多就楼主的给力

相关推荐

    windows下android NDK环境的搭建

    Windows环境下搭建Android NDK环境是为了在Android应用开发中使用C和C++代码,生成.so动态库。这个过程涉及到多个步骤,包括安装和配置SDK、NDK、Eclipse、Cygwin等工具。 1. **SDK、NDK、Eclipse的安装** - ...

    NDK环境搭建

    - 在`D:\android-ndk-r5c-windows\android-ndk-r5c\samples\hello-jni\jni`目录下找到`hello-jni.c`文件并进行编辑。 - 编辑完成后,在Cygwin终端中执行以下命令: ``` cd $NDK/samples/hello-jni/jni $NDK/ndk...

    非常强大的eclipse中android ndk开发环境的配置说明

    ANDROID_NDK_ROOT=/cygdrive/d/android-ndk-r5b export ANDROID_NDK_ROOT ``` 3. **保存并退出**。 **第二步:配置Eclipse自动编译C文件** 1. **右键项目**-&gt;Properties-&gt;Builder-&gt;New-&gt;Program。 2. **Main标签...

    Android平台Qt开发入门教程.pdf

    要编译android-lighthouse,需要克隆android-lighthouse项目的源代码,修改环境变量,包括ANDROID_NDK_ROOT、ANDROID_NDK_HOST、ANDROID_NDK_TOOLCHAIN_PREFIX等,然后编译android-lighthouse。 环境变量设置 在...

    androidndk环境搭建和入门教程

    “Android NDK(r5b)环境搭建及JNI实现.docx”可能提供了关于早期NDK版本的详细步骤,虽然版本不同,但基本流程是一致的。NDK版本的更新主要关注性能优化和新功能引入,但核心概念并未改变。 “Android NDK开发环境...

    androidndk开发实战

    接着,“Android NDK(r5b)环境搭建及JNI实现.docx”文件着重于JNI(Java Native Interface)的使用,这是Android应用与NDK之间通信的关键桥梁。JNI允许Java代码调用C/C++函数,反之亦然。开发者需要理解JNI的接口...

    windows系统上安装与使用Android NDK r5 .doc

    总的来说,Windows系统上安装和使用Android NDK r5涉及到了Cygwin环境的搭建、NDK工具的配置和使用,以及JNI接口的编写。虽然过程相对复杂,但通过NDK,开发者可以充分利用C/C++的优势,提升Android应用的性能和功能...

    Android平台搭建杂记

    安装NDK时,你可能需要安装Cygwin,这是一个提供Linux命令行环境的工具,对于在Windows下运行NDK命令很有帮助。下载cygwinsetup.zip并安装,选择所有软件包进行安装。安装完成后,打开Cygwin终端,并通过vi编辑器...

Global site tag (gtag.js) - Google Analytics