`

NDK开发指南---NDK使用方法

 
阅读更多

Android NDK的使用方法:

======================

 

NDK的用户提示和技巧集合

 

如何强制显示build命令

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

 

执行"ndk-build V=1",实际生成的命令将会被显示。这可以用来验证你编译的东西,并且还会检查NDK的

build system中的错误。

 

(V=1 来自Linux内核的build system)

 

如何强制重新编译你的源码

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

使用GNU Make的“-B”选项

 

ndk-build -B

 

如何存储本地源码到除$PROJECT/jni以外的位置:

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

 

首先,你可以在你的$PROJECT/jni/Android.mk中包含另一个不同位置的Android.mk

 

另外,你需要在你的Application.mk文件中定义APP_BUILD_SCRIPT来指向那个替代的Android.mk文件

 

如果在不使用cd-ing的情况下来编译你的本地项目文件

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

有时候,你需要在不用使用cd命令切换到根目录的情况下重新编译你的本地项目文件,可以使用

GNU-Make的'-C <path>'选项,如:

 

ndk-build -C <project-path>

 

如何将你的Application.mk文件存储子$PROJECT/jni目录之外

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

从NDK r4开始,你可以简单的将源文件放到$PROJECT/jni/目录下,然后执行'ndk-build'脚本

 

如果你想使用'ndk-build'命令但是将源文件放到了其他的位置,你可以使用如下命令:

 

ndk-build NDK_APPLICATION_MK=/path/to/your/Application.mk

 

如果你想使用传统的$NDK/apps/<name> 来build system,你可以创建一个符号链接到你最终的Application.mk

比如:

 

$PROJECT/foo/Applicatio.mk

 

用如下的命令创建符号链接

 

ln -s $PROJECT/foo $NDK/apps/<name>

 

这将使得你的$NDK/apps/<name>/Applicaiton.mk文件直接指向$PROJECT/jni/Application.mk

 

注意,这样生成的文件将仍然在$NDK/out/apps/<name>目录下。

 

Windows用户在使用Cygwin的情况下,它可以通过"ln -s"命令来创建符号链接,例如

 

ln -s <target> <link>

 

如何正确的添加一个包含目录到你的模块中:

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

 

如果你定义了若干模块,在编译另一个模块的时候需要包含某个模块的头文件,例如

 

$PROJECT/jni/foo/

Android.mk

foo.h

foo.c

 

$PROJECT/jni/foo/

Android.mk

fo.c

 

bar.c使用了"#include <foo.h>",你需要正确的将路径添加到foo模块的jni/bar/Android.mk中

 

例如,可以使用如下这样

 

LOCAL_C_INCLUDES := ../foo

 

但是这样是不会执行的,因为所有编译都从'ndk-build'被调用所在的目录开始,这些包含文件必须是

相对的才可以。

 

正确的方法是:

 

LOCAL_C_INCLUDE :=$(LOCAL_PATH)/../foo

 

它才哦那够了相对路径的方式,你需要将foo和bar移到源码目录的更深层次下。

 

如果你必须需要它,你可以使用NDK_APP_PROJECT_PATH指向你的项目目录

 

LOCAL_C_INCLUDES :=$(NDK_APP_PROJECT_PATH)/jni/foo

 

然而我们不建议这种方式,相对路径$(LOCAL_PATH)这种方式会更好些

分享到:
评论

相关推荐

    Android NDK开发指南-android.mk文件

    "Android NDK开发指南-android.mk文件" Android NDK 是 Android 操作系统中的一种开发工具,用于使用 C/C++ 语言编写 Android 应用程序。Android.mk 文件是 NDK 中的一个重要组件,用于描述编译系统的配置,使得...

    android ndk-stack使用说明。

    通过以上步骤,我们可以有效地利用`ndk-stack`工具来解决在Cocos2d-x、JNI以及Android NDK开发过程中遇到的调试难题。尤其是在处理C/C++代码时,能够更加直观地看到函数调用的流程,这对于定位bug具有极大的帮助。...

    android-ndk-r20-windows-x86_64

    压缩包中的“android-ndk-r20”包含了NDK的所有组件,包括编译器、链接器、头文件、库文件以及用于构建和调试的工具。这些文件按照功能划分为多个目录,例如: - `prebuilt`:包含了预编译的交叉编译工具链,用于...

    JNI NDK 开发指南

    3. **构建本地库**:使用NDK提供的构建工具(如`ndk-build`或CMake)将本地代码编译为`.so`动态链接库。 4. **加载本地库**:在Java代码中,使用`System.loadLibrary()`方法加载本地库。 5. **数据类型转换**:JNI...

    android-ndk-r19c-windows-x86_64.zip

    1. 下载NDK r19c:从官方渠道获取"android-ndk-r19c-windows-x86_64.zip"压缩包,并将其解压到你选择的目录。这个文件包含了NDK的所有组件,如编译器、链接器和其他必要的工具。 2. 配置NDK路径:将NDK的安装目录...

    android-ndk-r6-crystax-2(2/2)

    在本压缩包"android-ndk-r6-crystax-2"中,我们看到的是CrystaX NDK的一个早期版本——r6。这个版本可能包含以下关键内容: 1. **编译器和工具链**:NDK通常包括一系列交叉编译工具,允许你在非Android设备上编译...

    ndk开发指南

    **NDK开发指南** 在移动应用开发领域,尤其是Android平台,NDK(Native Development Kit)是一种重要的工具集,它允许开发者使用C/C++等原生语言编写部分应用程序,以实现高性能计算、图形处理或者利用特定硬件加速...

    NDK-build-under-ubuntu.rar_Ubuntu!

    使用NDK-BUILD** 在终端中,导航到你的项目根目录,并运行`ndk-build`命令: ```bash cd /path/to/your/project ndk-build ``` 这将编译`jni`目录下的源码,并在`libs`目录下生成对应的.so文件。 **6. 集成到...

    android NDK 开发指南

    在本篇《Android NDK 开发指南》中,我们将详细探讨如何在Android项目中整合C和C++代码,并使用Android NDK(Native Development Kit)进行开发。首先,需要明确的是,NDK是Android平台用于开发使用C和C++代码的本地...

    android-ndk-r10e各种操作系统的下载

    3. **选择安装路径**:默认路径通常是`C:\Program Files\Android\ndk-bundle`,也可以自定义安装位置。 4. **完成安装**:按照提示完成安装流程。 ##### macOS系统安装步骤 1. **下载**:使用适用于macOS的下载...

    android-ndk-r16b-windows-x86-64.zip

    在开发过程中,Unity 专用 R16b NDK 提供的“Unity 专用 R16b NDK.txt”文件可能包含一些使用指南和注意事项,建议开发者仔细阅读。此外,NDK还包含了构建工具链,如make、ndk-build等,用于编译和链接原生代码,...

    Android NDK翻译之 NDK-GDB.html

    总之,NDK-GDB是Android NDK开发中的关键工具,它简化了C/C++代码的调试过程,通过掌握其使用方法,开发者能够更有效地定位和解决问题,提升开发效率。对于需要深入理解C/C++代码行为的开发者,NDK-GDB的熟练运用至...

    JNI_NDK 开发指南.rar

    在"JNI_NDK 开发指南"中,我们将会学习如何结合这两者进行开发。首先,JNI提供了Java到本地代码的桥梁,通过定义一系列的接口函数,使得Java方法可以调用C/C++函数,反之亦然。这个过程通常包括以下几个步骤: 1. *...

    android-sdk-NDK21.0.rar

    文件"android-sdk-NDK21.0.txt"可能是NDK的版本信息或安装指南,建议查看其内容以获取更多信息。 总之,Android SDK和NDK是Android开发不可或缺的部分。它们结合使用,可以满足从简单的Java应用开发到复杂的原生...

    android-ndk-r8dab.zip_NDK_android_android ndk

    在“android-ndk-r8dab.zip”这个压缩包中,包含了NDK的特定版本r8d,这是一套适用于Android开发的编译和构建工具。 **NDK的核心组件:** 1. **ndk-build.cmd**: 这是一个批处理脚本,用于Windows环境下运行,它...

    Android NDK开发示例

    这篇教程将深入探讨Android NDK开发,为初学者提供一个全面的入门指南。 NDK的核心功能是允许开发者在Android应用中集成高性能的本地代码,这对于处理计算密集型任务、游戏引擎、音视频处理和加密算法等场景尤其...

    NDK开发指南

    【Android NDK 开发指南】 Android NDK 是一套专门针对Android应用开发的工具集,它允许开发者使用C或C++语言编写源代码,并将其编译为原生代码,嵌入到Android应用程序中。NDK 提供了一种方式,使得开发者能够利用...

    android-ndk-r25b-windows.zip

    使用Android NDK开发时,开发者需要熟悉C/C++编程,了解Android应用程序的结构,以及如何通过JNI(Java Native Interface)在Java和C/C++之间进行交互。同时,由于原生代码的使用可能增加安全风险和调试复杂性,...

    android-ndk-r11c-windows-x86-64-zip.rar

    10. **开发者文档**:随NDK提供的完整文档可以帮助开发者快速上手和理解NDK的使用方法,包括API参考、示例代码和故障排查指南。 总之,Android NDK R11C是Android原生开发的重要工具,其对C++11的支持、性能优化、...

    Eclipse下NDK开发参考

    ### Eclipse 下 NDK 开发指南 #### 概述 本指南旨在为开发者提供关于如何在 Eclipse 开发环境中利用 Android NDK 进行开发的基础指导。Android NDK 是一套工具集,允许开发者使用 C 和 C++ 等原生代码语言来实现...

Global site tag (gtag.js) - Google Analytics