Android NDK R9环境配置,开发教程

最近,在学习android ndk开发,配置环境的时候遇到了些问题,总算不负有心人……在这里记录哈过程,与筒子们分享哈……想学NDK的筒子们有福啦……

教程本人亲测,非copy的……

如有什么不明白的地方,可以留言

大神也可以进来瞧瞧有什么不对的地方,请指教两招

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

NDK是一个工具集,可让您实现您的应用程序使用本机代码的语言,如C和C + +。Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”。

在此之前,Android平台的第三方应用程序均是依靠基于Java的Dalvik特制虚拟机进行开发的。原生SDK的公布可以让开发者更加直接的接触Android系统资源,并使用传统的C或C++语言编写程序,并在程序封包文件(.apks)中直接嵌入原生库文件。

NDK的公布可以让开发者更加直接的接触Android系统资源,并使用传统的C或C++语言编写程序,并在程序封包文件(.apks)中直接嵌入原生库文件。NDK的公布让原来从事C语言开发者也参与到Android平台,也让java开发者方便的调用底层操作,特别是游戏开者,对引擎,速度等要求较高者,有了新的工具来实现所需功能,做出更加完美的程序。

对于某些类型的应用程序,这可以是有益的,所以你可以重用现有的代码库,这些语言编写的,但大多数应用程序不需要NDK。

Android NDK R9更新:

Android NDK R9 主要是为了Android 4.3开发准备的。

随着Android 4.3平台的发布,谷歌还发布了Android NDK (r9)的更新版本。新的NDK允许你本地访问Android 4.3中的OpenGL ES 3.0 API以及其他稳定的API。如果你在游戏或应用中使用了高性能图形功能,可以采用该版本。

Android NDK 是什么?

Android NDK全称:Native Development Kit,即本地开发包。

1、NDK是一系列工具的集合。

NDK提供了一系列的工具,这些工具对开发者的帮助是巨大的。它们能帮助开发者快速开发C(或C++)的动态库,并能自动将so库和java应用一起打包成apk。

NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so库。NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。

2、NDK提供了一份稳定、功能有限的API头文件声明。Google明确声明该API是稳定的,在后续所有版本中都稳定支持当前发布的API。从该版本的NDK中看出,这些API支持的功能非常有限,包含有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、Log库(liblog)。

Android NDK配置教程:

工具环境(Android Developer Tools,android-ndk-r9d,Android4.3 API18)

对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本,必须要安装Cygwin才能使用NDK;从r7开始,Google的提供了一个ndk-build.cmd的脚本,可以直接用它编译,而不需要使用Cygwin了。可以通过,配置path变量,直接在cmd下面运行ndk-build命令即可对android工程中的项目进行编译了。

1,JAVA_HOME : C:\Program Files (x86)\Java\jdk1.7.0_17  (jdk的安装目录)

2,CLASSPATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (固定不变)

3,ANDROID_NDK_HOME: D:\android-ndk-r9d (ndk的解压的目录)

4,PATH: 将这 “%JAVA_HOME%\bin; %ANDROID_NDK_HOME%;”加到原有的后面。

5,test

在 cmd 中 输入 java –version,ndk-build –h ,没有出现

“xxx不是内部或外部命令”即成功

Android NDK开发教程(请按照教程顺序操作,本人亲测)

工具环境(Android Developer Tools,android-ndk-r9d,Android4.3 API18)

1, 在 ant中(eclipse),新建一个android项目(NDKhi)。

2, 在 src下的com.example.ndkhi 新建 jniClient.java 文件。

此文件作用:

1,加载本地C库文件(.so)。

2,声明本地C库中的方法(static public native String sayHi())。

jniClient.java源码:

package com.example.ndkhi;

public class jniClient {

static {

System.loadLibrary("Ndkhi");

}

static public native String sayHi();

}

3, 编译android文件

eclipse默认自动编译。在目录 workspace\NDKhi\bin\classes\com\example\ndkhi 中 查找 jniClient.class 文件是否存在,若不存在,手动编译android工程。

4, 使用 javah 工具 生成 c语言的.h头文件

在 工程NDKhi 中建立一个 名为 jni 的文件夹,打开window cmd,cd到jni目录下,

输入 javah –classpath ../bin/classes/com.example.ndkhi ,若命令执行成功,会在jni目录中生成 com_example_ndkhi_jniClient.h 文件。

刷新 eclipse中的工程NDKhi,即可见com_example_ndkhi_jniClient.h 文件。

com_example_ndkhi_jniClient.h源码(此文件为自动生成,一般不用修改):

/* DO NOT EDIT THIS FILE - it is machine generated */

#include <jni.h>

/* Header for class com_example_ndkhi_jniClient */

#ifndef _Included_com_example_ndkhi_jniClient

#define _Included_com_example_ndkhi_jniClient

#ifdef __cplusplus

extern "C" {

#endif

/*

* Class:     com_example_ndkhi_jniClient

* Method:    sayHi

* Signature: ()Ljava/lang/String;

*/

JNIEXPORT jstring JNICALL Java_com_example_ndkhi_jniClient_sayHi

(JNIEnv *, jclass);

#ifdef __cplusplus

}

#endif

#endif

5, 编写c语言程序

在jni目录下,新建 名为 com_example_ndkhi_jniClient..c 的文件,实现 com_example_ndkhi_jniClient.h中声明的函数即可。

com_example_ndkhi_jniClient..c源码:

#include <com_example_ndkhi_jniClient.h>

JNIEXPORT jstring JNICALL Java_com_example_ndkhi_jniClient_sayHi

(JNIEnv *env, jclass arg)

{

return (*env)->NewStringUTF(env, "android ndk hi!!!");

}

6,Android.mk 文件(简单理解为 makefile)

在 jni目录下,新建 名为Android.mk 文件。

内容如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := Ndkhi

LOCAL_SRC_FILES := com_example_ndkhi_jniClient.c

include $(BUILD_SHARED_LIBRARY)

修改xxx.c文件,和 Ndkhi 为自己新建的.c文件,的要生成的.so

7, 编译,链接C程序

打开windows cmd,cd到 workspace\NDKhi 目录下,输入 ndk-build 命令

若成功如下图:

   编译链接成功后,会在 工程NDKhi的libs/armeabi/下 生成 libNdkhi.so,

8, 编写MainActivity.java。

源码:

package com.example.ndkhi;

import android.os.Bundle;

import android.R.string;

import android.app.Activity;

import android.view.Menu;

import android.widget.TextView;

public class MainActivity extends Activity {

private TextView tView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tView = (TextView) findViewById(R.id.tv);

String strHi = jniClient.sayHi();

tView.setText(strHi);

}

}

9,运行android 工程 NDKhi

大功告成!!!

源码下载 

http://download.csdn.net/detail/gaoxin12345679/7841117

时间: 2024-12-09 08:36:36

Android NDK R9环境配置,开发教程的相关文章

Android NDK R9 安装配置 无需Cygwin

转自:http://www.cr173.com/soft/66623.html NDK是一个工具集,可让您实现您的应用程序使用本机代码的语言,如C和C + +.Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”. 在此之前,Android平台的第三方应用程序均是依靠基于Java的Dalvik特制虚拟机进行开发的.原生SDK的公布可以让开发者更加直接的接触Android系统资源,并使用传统的C或C++语言编

Android NDK(JNI)开发

<基于Windows平台,Android NDK(JNI)开发技术> [摘要]本文介绍如何基于Windows平台,在Eclipse中使用Android NDK技术实现"Android平台上的JNI ( Java Native Interface ) "开发.Android NDK开发需要一定的Java JNI技术基础.Android NDK实质,可以简单的认为是Android平台提供的一组套件,将一些C/C++代码通过JNI的形式为Android平台所复用,该技术可以使

疯狂Android讲义2 环境配置

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/37053681 jdk-6u3-windows-i586-p.exe  下载地址:链接:http://pan.baidu.com/s/1sjFbPId 密码: yth0 android-sdk_r21-windows.zip 下载地址:链接:http://pan.baidu.com/s/1c04CVHQ 密码: 45zh eclipse-jee-juno-SR1-win32.z

ADT-bundle(Android Development Tools)环境配置

Android开发环境有两套比较主流的:ADT-bundle和Android Studio,前者是Eclipse插件的形式进行开发,后者是Android的官方IDE. ADT环境的配置与调试:(1)安装JDK,配置环境变量 a.下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html b.添加如下环境变量(安装在D:\Android目录): JAVA_HOME D:\Android\Java\jdk1.8.0_

Android + Eclipse + PhoneGap 环境配置

用了3天的时间,终于把环境搭建完毕,郁闷了N天,终于完成了.这里我只是讲述我安装的过程,仅供大家参考. 环境搭建首先要去下载一些安装包: (下载前注意一下,电脑是32位还是64位的请注意选择安装包) java环境的JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html Android下载 (此安装包含有Eclipse的开发平台):http://developer.android.com/intl/zh-CN/s

Android 开发环境配置图文教程(jdk+eclipse+android sdk)

一 相关下载(1) java JDK下载:进入该网页: http://java.sun.com/javase/downloads/index.jsp (或者直接点击下载)如下图: 选择 Download JDK 只下载JDK,无需下载jre. (2)eclipse下载 进入该网页: http://www.eclipse.org/downloads/ (或者直接点击下载:BT下载HTTP下载) 如下图: 我们选择第一个(即eclipse IDE for java EE Developers)(3)

NDK编译环境配置教程

1.第一步配置环境 新建C++ project--> 选中projectType为Empty Project-->Android GCC 第二步: Propertes-->C/C++ General -->Paths and Symbols --> add-->D:\FirefoxDownload\android-ndk-r8-windows\android-ndk-r8\platforms\android-14\arch-x86\usr\include -->A

ndk的环境配置 练习笔记

Android  c++开发环境主要由以下几个部分构成:? Android 软件开发包(software Development Kit,SDK)? Android 原生开发包(Native Development Kit,NDk)? Android Studio 安卓集成开发工具,类似Eclipse ADT? Java 开发包(Java Development Kit,JDK) 下面就循序渐进的讲解配置Android C++ 开发环境的步骤,Android开发工具可以在以下三种操作系统平台上运

Ubuntu 32下Android NDK+NEON的配置过程及简单使用举例

1.  利用VMware在Windows7 64位下安装Ubuntu13.10 32位虚拟机: 2.  从 https://developer.android.com/tools/sdk/ndk/index.html下载android-ndk32-r10-linux-x86.tar.bz2: 3.  将android-ndk32-r10-linux-x86.tar.bz2复制到Ubuntu的/home/spring/NEON目录下,并解压缩: 4.  配置环境变量:在终端输入 sudovi /e