`
iaiai
  • 浏览: 2196938 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

无需cygwin,使用NDK进行开发

 
阅读更多
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
分享到:
评论

相关推荐

    使用NDK开发C/C++程序,无需安装Cygwin

    至此,你已经成功地配置了Eclipse来使用NDK开发C/C++代码,无需安装Cygwin。现在,每当在Eclipse中修改原生代码并保存时,配置的Builder会自动运行`ndk-build`命令,编译C/C++代码,并将生成的库文件与Java代码一起...

    ndk+cygwin的种种问题

    这篇博客“ndk+cygwin的种种问题”可能详细记录了作者在使用NDK和Cygwin进行交叉编译Android应用时遇到的挑战及解决方法。 首先,我们来了解一下NDK的核心概念。NDK的主要功能是为Android应用提供原生库支持,它...

    android NDK 安装必备 Cygwin

    总的来说,Cygwin作为Android NDK在Windows环境下的得力助手,使得开发者可以方便地进行原生代码的开发和调试工作,而无需切换到Linux系统。通过熟练掌握Cygwin和NDK的使用,开发者可以充分利用C/C++的性能优势,...

    Eclipse下配置NDK不用安装Cygwin

    - 在NDK r7之前,Windows用户需要Cygwin环境来运行NDK,但自r7版本开始,Google提供了`ndk-build.cmd`脚本,可以直接在Windows上使用,无需Cygwin。 - 在Eclipse中配置NDK Builder的步骤如下: - 新建Android工程...

    android ndk 开发环境配置,不需要cygwin,可直接生成.h文件,直接编译库

    本文将详细介绍如何在Windows 64位操作系统环境下配置Android NDK开发环境,并实现无需借助Cygwin即可快速生成`.h`文件及直接编译库的过程。 #### 二、所需工具与环境 在开始之前,请确保您的开发环境中已安装以下...

    windows编译Jni(无需Cygwin)

    本教程将详细介绍如何在Win7系统上,利用Eclipse集成开发环境和Android NDK(Native Development Kit)来编译JNI库,而无需依赖Cygwin这样的额外开发环境。 **一、安装与配置** 1. **安装Eclipse**: 首先确保已经...

    windows_NDK搭建Android开发环境

    从R7版本开始,Windows版NDK提供了ndk-build.cmd脚本,无需Cygwin也可直接使用。 9. **配置NDK编译**:在Eclipse中,为项目添加Builder,指向ndk-build.cmd,实现自动编译NDK代码。 10. **创建NDK实例**:新建...

    Android NDK 开发教程三

    在移动应用开发领域,Android NDK (Native Development Kit) 提供了一种使用 C 或 C++ 编写原生代码的方式,这对于提高应用程序性能至关重要。本文将详细介绍 Android NDK 的 Hello JNI 示例项目,通过这个例子我们...

    Windows下安装NDK开发环境及hello world程序测试详细教程

    11. 使用Cygwin的变迁:早期版本的NDK需要安装Cygwin来模拟Linux环境,但最新版本的NDK集成了Cygwin的编译环境,这意味着用户无需安装Cygwin,从而简化了配置过程。 以上是根据文件标题、描述和部分内容提取的关键...

    android-ndk-r20b-windows-x86_64.zip

    解压后的文件包括了所有必要的工具和库,如编译器、链接器和其他构建工具,为开发者提供了完整的NDK开发环境。 在视频编辑场景中,NDK常常与FFmpeg结合使用。FFmpeg是一个强大的开源多媒体处理库,包含了音频和视频...

    cygwin 64位

    Cygwin的主要目标是让开发者能够在不离开Windows平台的情况下,利用GNU工具链和其他开源软件进行开发,特别是对于那些依赖于POSIX接口的项目,如Android应用开发。 Cygwin的核心是一个动态链接库,它模拟了Linux...

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

    7. 在包选择界面,搜索并勾选NDK开发所需的包,如autoconf2.1、automake1.10、binutils、gcc-core、gcc-g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make等。 8. 确认并安装所选的包。 **三、配置和...

    NDK入门

    对于NDK开发而言,Cygwin的安装是必要的,因为它提供了make、gcc等关键的编译工具,这些都是编译C/C++代码所必需的。 - **下载Cygwin**:访问Cygwin官网(http://www.cygwin.com),下载setup.exe安装程序。 - **...

    window7+eclipse+ndk+Cocos2d-x环境配置

    本文档主要介绍了如何在Windows 7操作系统上,使用Eclipse集成开发环境配置Cocos2d-x开发环境,使得开发者可以在同一环境中进行Java和C++代码的编写,无需借助其他编辑器如Visual Studio。以下是配置过程的详细步骤...

    android及ndk配置文档

    Cygwin是一个在Windows平台上模拟Unix环境的软件,对于使用NDK进行原生开发非常重要。 - **下载与安装**:从Svn路径`A1_tools\android\cygwin`下载Cygwin安装程序。按照安装向导进行安装,选择“Devel”包进行安装...

Global site tag (gtag.js) - Google Analytics