NDK从7开始自带编译器,在windows上无需配置cygwin的环境。
在eclips中配置NDK路径
在eclipse中点击菜单栏window-Perferences,配置NDK的路径。
在工程中添加native lib
新建一个空白的Android工程,在根目录上点击右键Adnroid Tools - Add Native Support...
在弹出的对话框中输入要新建的lib的名称,点击Finish,在工程目录下会多出一个jni文件夹,里面有一个空白的cpp文件和一个Android.mk文件
Android.mk文件的内容是
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TestJni
LOCAL_SRC_FILES := TestJni.cpp
include $(BUILD_SHARED_LIBRARY)
TestJni就是要加载的lib的名称,LOCAL_SRC_FILES 是资源文件的路径。
hello jni
MainActivity.java代码如下:
package com.example.testjni;
import android.os.Bundle;
import android.app.Activity;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
textView.setText(helloFromJni());
setContentView(textView);
}
public native String helloFromJni();
static {
System.loadLibrary("TestJni");
}
}
TestJni.cpp代码如下:
#include <jni.h>
extern "C" jstring Java_com_example_testjni_MainActivity_helloFromJni(JNIEnv *env, jobject thiz) {
return env->NewStringUTF("Hello From Jni");
}
直接运行程序,可以在Console窗口中看到NDK build的输出
有一点要注意:由于我使用的是x86的Android虚拟机来运行,所有使用的是x86的编译器。制定编译器的方法是在jni目录新建一个Application.mk的文件,输入以下内容
#APP_ABI := armeabi
APP_ABI := x86
#APP_ABI := armeabi armeabi-v7a x86 mips mips-r2 mips-r2-sf
#APP_ABI := all
APP_STL := stlport_static
如果是普通arm处理器的Android手机,使用APP_ABI := armeabi,如果是x86处理器的,使用APP_ABI := x86,等等。
如果APP_ABI := all,会编译所有指令的so。
运行结果如下:
至于C/C++的编译是怎么实现的,我们可以查看一下工程的Properties
在Builders里面有多了两项,一个是CDT Builder,一个是Scanner Configuration Builder。
现有的工程添加Builder
如果工程里面已经有jni目录了,但是没有配置C/C++的编译器,高手们可以自己添加Builder,对于我这种爱投机取巧的小菜鸟,工程右键菜单,新添加一个空白的so,然后再删除,CDT Builder和Scanner Configuration Builder就出来了。
- 大小: 35.8 KB
- 大小: 43 KB
- 大小: 20.4 KB
- 大小: 35.7 KB
- 大小: 8.8 KB
- 大小: 59.7 KB
分享到:
相关推荐
至此,你已经成功地配置了Eclipse来使用NDK开发C/C++代码,无需安装Cygwin。现在,每当在Eclipse中修改原生代码并保存时,配置的Builder会自动运行`ndk-build`命令,编译C/C++代码,并将生成的库文件与Java代码一起...
这篇博客“ndk+cygwin的种种问题”可能详细记录了作者在使用NDK和Cygwin进行交叉编译Android应用时遇到的挑战及解决方法。 首先,我们来了解一下NDK的核心概念。NDK的主要功能是为Android应用提供原生库支持,它...
总的来说,Cygwin作为Android NDK在Windows环境下的得力助手,使得开发者可以方便地进行原生代码的开发和调试工作,而无需切换到Linux系统。通过熟练掌握Cygwin和NDK的使用,开发者可以充分利用C/C++的性能优势,...
- 在NDK r7之前,Windows用户需要Cygwin环境来运行NDK,但自r7版本开始,Google提供了`ndk-build.cmd`脚本,可以直接在Windows上使用,无需Cygwin。 - 在Eclipse中配置NDK Builder的步骤如下: - 新建Android工程...
本文将详细介绍如何在Windows 64位操作系统环境下配置Android NDK开发环境,并实现无需借助Cygwin即可快速生成`.h`文件及直接编译库的过程。 #### 二、所需工具与环境 在开始之前,请确保您的开发环境中已安装以下...
本教程将详细介绍如何在Win7系统上,利用Eclipse集成开发环境和Android NDK(Native Development Kit)来编译JNI库,而无需依赖Cygwin这样的额外开发环境。 **一、安装与配置** 1. **安装Eclipse**: 首先确保已经...
从R7版本开始,Windows版NDK提供了ndk-build.cmd脚本,无需Cygwin也可直接使用。 9. **配置NDK编译**:在Eclipse中,为项目添加Builder,指向ndk-build.cmd,实现自动编译NDK代码。 10. **创建NDK实例**:新建...
在移动应用开发领域,Android NDK (Native Development Kit) 提供了一种使用 C 或 C++ 编写原生代码的方式,这对于提高应用程序性能至关重要。本文将详细介绍 Android NDK 的 Hello JNI 示例项目,通过这个例子我们...
11. 使用Cygwin的变迁:早期版本的NDK需要安装Cygwin来模拟Linux环境,但最新版本的NDK集成了Cygwin的编译环境,这意味着用户无需安装Cygwin,从而简化了配置过程。 以上是根据文件标题、描述和部分内容提取的关键...
解压后的文件包括了所有必要的工具和库,如编译器、链接器和其他构建工具,为开发者提供了完整的NDK开发环境。 在视频编辑场景中,NDK常常与FFmpeg结合使用。FFmpeg是一个强大的开源多媒体处理库,包含了音频和视频...
Cygwin的主要目标是让开发者能够在不离开Windows平台的情况下,利用GNU工具链和其他开源软件进行开发,特别是对于那些依赖于POSIX接口的项目,如Android应用开发。 Cygwin的核心是一个动态链接库,它模拟了Linux...
7. 在包选择界面,搜索并勾选NDK开发所需的包,如autoconf2.1、automake1.10、binutils、gcc-core、gcc-g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make等。 8. 确认并安装所选的包。 **三、配置和...
对于NDK开发而言,Cygwin的安装是必要的,因为它提供了make、gcc等关键的编译工具,这些都是编译C/C++代码所必需的。 - **下载Cygwin**:访问Cygwin官网(http://www.cygwin.com),下载setup.exe安装程序。 - **...
本文档主要介绍了如何在Windows 7操作系统上,使用Eclipse集成开发环境配置Cocos2d-x开发环境,使得开发者可以在同一环境中进行Java和C++代码的编写,无需借助其他编辑器如Visual Studio。以下是配置过程的详细步骤...
Cygwin是一个在Windows平台上模拟Unix环境的软件,对于使用NDK进行原生开发非常重要。 - **下载与安装**:从Svn路径`A1_tools\android\cygwin`下载Cygwin安装程序。按照安装向导进行安装,选择“Devel”包进行安装...