`
dowhathowtodo
  • 浏览: 798297 次
文章分类
社区版块
存档分类
最新评论

Android NDK C++开发注意事项总结

 
阅读更多
相信Android开发者都喜欢用C++编写一些高效的应用,有关Android NDK的C++开发相关知识总结如下:

从Android NDK r5开始支持了STL Port,在这个版本开始就可以使用部分STL库的功能了,比如说vector、string摆脱c下面容易出现的数组未初始化、越界,增强应用的健壮性。

很多网友包含了include <vector> 这样头,但仍然无法编译,这里你首先要检查当前文件是否为.cpp后缀,同时为了使用标准库必须加入 APP_STL := stlport_static 在Application.mk文件中。相关对应还有
system - 使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持
stlport_static - 使用STLport作为静态库,这项是Android开发网极力推荐的
stlport_shared - STLport 作为动态库,这个可能产生兼容性和部分低版本的Android固件,目前不推荐使用。
gnustl_static - 使用 GNU libstdc++ 作为静态库
默认情况下STLPORT是不支持C++异常处理和RTTI,所以不要出现 -fexceptions 或 -frtti ,如果真的需要可以使用gnustl_static来支持标准C++的特性,但生成的文件体积会偏大,运行效率会低一些。

支持C++异常处理,在Application.mk中加入 LOCAL_CPPFLAGS += -fexceptions这句,同理支持RTTI,则加入LOCAL_CPPFLAGS += -frtti,这里Android123再次提醒大家,第二条说的使用gnustl静态库,而不是stlport。

强制重新编译 STLPort ,在Application.mk中加入 STLPORT_FORCE_REBUILD := true 可以强制重新编译STLPort源码,由于一些原因可能自己需要修改下STLPort库,一般普通的开发者无需使用此项。

Android目前最新的NDK版本为r6,相关的学习可以查看NDK中的Samples整体和在PC上开发没有太大的不同。

注:本文来源于网络,具体出处无从考察

分享到:
评论

相关推荐

    Android-ndk-jni AES加解密 C++

    在Android开发中,有时我们需要在原生C++代码中实现加密和解密功能,以便提高性能或利用已有的C/C++库。本知识点主要聚焦于如何在Android NDK(Native Development Kit)环境下,通过JNI(Java Native Interface)来...

    Android NDK 开发教程二

    本文将详细介绍 Android NDK 的使用方法、注意事项以及其局限性。 #### 二、Android NDK 基础概念 ##### 2.1 Android NDK 介绍 Android NDK 是一套工具集合,它可以让开发者在 Android 平台上使用 C 和 C++ 编写...

    android-ndk(android-ndk-r25b-windows.zip)

    Android NDK,全称为Native Development Kit,是Google提供的一款用于Android平台的C和C++开发工具集。这个压缩包“android-ndk-r25b-windows.zip”包含了NDK的第25个版本,专为Windows操作系统设计。NDK的主要功能...

    Android NDK 开发教程三

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

    Android NDK开发轻松入门.pdf

    #### 三、使用注意事项 - **主要使用 Java 编写应用**:尽管可以通过 NDK 使用 C/C++ 编写代码,但应用的主要逻辑仍应使用 Java 或 Kotlin 编写,以充分利用 Android 系统提供的丰富功能。 - **深入理解 JNI**:...

    android ndk 环境搭建注意事项 附资料

    在Android开发领域,Native ...通过以上步骤和注意事项,你应该能够成功地搭建Android NDK开发环境,并开始编写和集成原生代码。在实践中,不断学习和理解NDK的工作原理,以及如何有效地利用它来提升你的Android应用。

    android-ndk(android-ndk-r26b-darwin.zip)

    总结起来,Android NDK是Android开发中的一个重要工具,它扩展了Android应用的开发能力,允许开发者利用C/C++的优势,同时也带来了更高的性能和灵活性。在macOS环境下,"android-ndk-r26b-darwin.zip"为开发者提供了...

    Android的NDK开发

    在Android应用开发中,NDK(Native Development Kit)是一组工具,允许开发者使用C和C++编写部分应用程序,实现性能优化或利用特定硬件功能。这篇文档将深入探讨Android NDK开发,结合Android Studio 2.1及实验版本...

    android ndk环境下移植libiconv方法 附源码

    `android ndk libiconv库移植方法.pdf`文档应该提供了更详细的移植步骤和注意事项,包括如何处理特定平台的依赖、编译选项的调整以及可能出现的问题及解决方案。在实际操作过程中,可能还需要根据Android版本和目标...

    android NDK 开发指南

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

    android ndk下编译的live555源码(新版)

    总的来说,将Live555移植到Android平台是一个复杂的过程,需要深入理解Android NDK的工作原理,熟悉C/C++编程,以及具备一定的Android开发经验。完成移植后,你可以利用Live555的强大功能,开发出高效、稳定、功能...

    android Ndk开发用例

    6. **安全与注意事项** - 原生代码可能会暴露安全风险,比如缓冲区溢出、指针错误等,因此需要仔细审查和测试。 - NDK库通常不支持热更新,更新需要重新安装应用。 - 注意处理好内存管理,避免内存泄漏,尤其是与...

    android ndk 开发

    #### 四、注意事项 1. **兼容性**: 升级到新版本的NDK时,通常不需要修改`Android.mk`文件就能利用新的工具链/平台支持。 2. **语法差异**: `Android.mk`文件中使用的语法与整个Android平台的开源项目中使用的语法...

    Android调用C/C++(NDK)

    在Android开发中,有时我们需要利用C或C++的高性能特性,比如处理图形图像、音频视频编码解码等任务。这时,Android NDK(Native Development Kit)就派上了用场。NDK是一组工具,允许开发者在Android应用中使用原生...

    android-ndk-r23-windows.zip

    Android Native Development Kit (NDK) 是Google提供的一款用于开发Android应用程序的重要工具集,它允许开发者使用C和C++编写部分或全部应用程序,以利用原生代码的高性能。本文将深入探讨Android NDK R23在Windows...

    AndroidNDK入门项目实战

    - `史上最强NDK入门项目实战.doc`:可能是项目文档,详细介绍项目的目标、步骤和注意事项。 - `myjni`:可能包含项目的JNI代码,包括头文件和源文件。 - `apps`:可能包含示例应用的源代码和资源文件。 - `sources`...

    android NDK

    五、NDK的挑战与注意事项 1. **调试困难**:相比于Java,原生代码的调试更为复杂,需要使用如GDB这样的工具,并且过程相对繁琐。 2. **内存管理**:C/C++的内存管理需要开发者手动进行,容易引发内存泄漏等问题。 ...

    android ndk r8 windows

    Android NDK(Native Development Kit)是Google为Android平台提供的一款用于开发原生代码的应用程序工具集,主要用于处理高性能计算、游戏引擎以及与硬件紧密相关的低级编程任务。R8是NDK的一个特定版本,这里提到...

    android_ndk_linux-r64位下载

    Android NDK(Native Development Kit)是Google为Android平台提供的一款用于开发原生代码的应用程序工具集,它允许开发者使用C和C++等低级语言编写部分应用程序,以提高性能或利用特定硬件功能。在给定的标题...

    NDK工具android-ndk-r10e-linux-x86_64

    **NDK开发注意事项:** 1. **内存管理:**C/C++的内存管理需要手动进行,避免内存泄漏和悬挂指针。 2. **安全问题:**本地代码的安全性至关重要,要确保正确处理异常和避免缓冲区溢出等常见安全问题。 3. **调试:**...

Global site tag (gtag.js) - Google Analytics