NDK支持的C++运行库

C++ ADB 运行库 ADB命令是远端控制手机ANDROID的常用手段,源码中包含常用的ADB 运行函数,并用管道运行,直接返回运行结果的字符串。在VS2017中调试运行正常。 立即下载

简书排版
http://www.jianshu.com/p/07856720339e

Android平台自身带有一个微型的C++运行库支持库,称为系统运行库,但是功能有所限制,还有一些补充系统库的额外C++运行库

C++运行库C++异常支持C++ RTTI支持C++标准库
系统库NoNoNo
GAbi++NoYesNo
STLport++NoYesYes
GNU STLYesYesYes

###1.GAbi++ C++运行库
GAbi++ C++运行库是一个试验性的,最简化的运行库,它提供建立在系统运行库所提供的相同特性集基础之上的RTTI支持。它可以作为静态库或共享库使用

2.STLport C++运行库

STLport是一个开源的,多平台的C++标准实现。它提供一个C++标准库头文件的完整集合以及对RTTI的支持。它也可以作为静态库或共享库使用。

3.GNU STL C++运行库

GNU标准 C++支持库,也叫libstdc++-v3,是Android NDK中最全面的标准C++运行库。
在GNU标准C++运行库中,C++异常与C++RTTI均被支持。

指定C++运行库

Android NDK构建系统变量APP_STL可被指定需要使用的C++运行库。

APP_ABI    :=  armeabi armeabi-v7a
APP_STL   :=  system
system:   默认的微型系统C++运行库
gabi++_static:   作为静态库的Gabi++运行库
gabi++_shared:   作为共享库的Gabi++运行库
stlport_static:   作为静态库的STLport运行库
stlport_shared:   作为共享库的STLport运行库
gnustl_static:   作为静态库的GNU STL运行库
gnustl_shared:   作为共享库的STLport运行库

注意:
当C++运行库以共享库的形式使用时,应用程序需要先家长所需要的共享库,然后在加载依赖此共享库的其他原生模块。

static{
     System.loadLibrary("stlport_shared");
     System.loadLibrary("xxxxx");
}

C++异常支持

Java中异常处理很方便,考虑到性能和兼容性,默认情况下C++ Exception支持是不可用的,NDK中需要添加对C++异常的支持。
Android.mk配置

LOCAL_MODULE    :=   module
...
LOCAL_CPP_FEATURES   +=  exceptions
...
include $(BUILD_SHARED_LIBRARY)

Application.mk配置

APP_STL    :=  gnustl_shared
APP_CPPFLAGS   +=   -fexceptions

也可用同样的方式启用C++RTTI的支持。

C++RTTI支持

RTTI机制即在运行库展示对象类型信息。该机制主要执行安全类型转化。
Android.mk配置

LOCAL_MODULE    :=   module
...
LOCAL_CPP_FEATURES   +=  rtti
...
include $(BUILD_SHARED_LIBRARY)

Application.mk配置

APP_STL    :=  gnustl_shared
APP_CPPFLAGS   +=   -frtti

本文引自《Android C++高级编程》

ndk使用std标准库.7z 在android的NDK开发中,使用C++的std标准库,如iostream,cout,string等 立即下载

相关推荐

Android C++高级编程——使用NDK完整版

Android拥有广大的用户群体,市场前景也很好,所以学习Android的人很多。但是因为Android很容易上手,如果只是单纯的学一些简单的东西很明显没有竞争力。所以必须学一点深层次的东西来提升自己的核心竞争力。第1章 android平台上的c++入门 1 第2章 深入了解androidndk 35 第3章 用jni实现与原生代码通信 57 第4章 使用swig自动生成jni代码 81 第5章 日志、调试及故障处理 111 第6章 bionic api入门 135 第7章 原生线程 155 第8章 posix socket api:面向连接的通信 183 第9章 posix socket api:无连接的通信 219 第10章 posix socket api:本地通信 231 第11章 支持c++ 245 第12章 原生图形api 255 第13章 原生音频api 303 第14章 程序概要分析和neon优化 329

NDK 基础(四)—— C++ 高级特性1

STL(Standard Template Library)译为标准模板库,它是一套强大的标准库,是 C++ 标准库的一部分,在 iostream 中。STL 提供了包括容器在内的许多常用的数据结构和算法,以及用于操作这些数据结构的迭代器。STL 被分为 STL 包、算法包和迭代器,是为了提供更好的模块化和可扩展性:将 STL 划分为 STL 包、算法包和迭代器的主要目的是提供模块化的设计,并促进代码的重用和扩展。这种划分使得开发人员可以根据具体的需求选择性地使用STL的不同部分,同时也使得 STL 的设计

tmacfrank 1157

OAI数据集申请与实战:从权限获取到医学影像分析应用

本文详细介绍了OAI数据集的申请流程与医学影像分析实战应用。从NDA账户注册、数据下载技巧到骨盆X光关键点检测的完整实现,帮助医学研究者高效利用这一权威骨关节炎数据集。特别分享使用Pei Y标注数据训练U-Net模型的经验,包括预处理、注意力机制优化等实用技巧。

weixin_30275415的博客 478

如何将c/c++代码通过NDK交叉工具链移植到Android平台上?

手把手教你移植代码!

Howzit 3396

保姆级教程:用HFSS 2023 R2搞定GPS右旋圆极化微带天线(从建模到优化全流程)

本文提供了一份详细的HFSS 2023 R2教程,指导读者从零开始设计GPS右旋圆极化微带天线。涵盖建模、仿真和优化全流程,特别关注圆极化特性的实现与优化,帮助工程师快速掌握天线设计的关键技术。

weixin_42557830的博客 169

在 Windows 上使用 Anaconda 创建 配置 YOLOv8虚拟环境,并更改 pip 源以及以 可编辑模式 安装ultralytics

前往 NVIDIA cuDNN 下载页面,下载与您安装的 CUDA 版本匹配的 cuDNN 版本。:根据您的系统和 CUDA 版本,选择适当的 whl 文件。如下12.7,表示最高可装12.7版本CUDA,与上图中的支持的最高cuda版本一致。,无需重新安装,从而大幅提升开发效率,适用于项目开发、调试或依赖本地未发布的版本时使用,但需确保当前目录包含。:访问 NVIDIA 官方网站,下载与您的显卡和操作系统兼容的 CUDA 版本。首先,确保NVIDIA 显卡支持 CUDA,并安装相应版本的驱动程序。

weixin_44115575的博客 1893

Android学习笔记——NDK中C++标准库、STL的配置;Include其他头文件

以下所有是基于Eclipse的,使用命令行的绕道。  1、STL的使用,以stlport为例  官方的说法是只需要在Application.mk文件中添加如下一行即可  Application.mk代码   APP_STL := stlport_static   即可,可是如果真只是这么做Eclipse中会提示找不到头文件!!!  还可以用GNU的标准库

梦想有道,一个从梦中醒来的人。 2万+

SDRAM控制器——添加读写FIFO

用FIFO实现数据缓存

H19981118的博客 2626

Android Studio NDK 入门教程(7)--被NDK支持的C++运行库

Android 默认使用的是最小系统c++运行库,功能十分有限。并且不便于代码移植,毕竟STL在大部分代码中都有使用。

venusic的专栏 6435

Android逆向分析

Android 逆向开发是指对已发布的 Android 应用进行分析和破解,以了解应用程序的内部工作原理,获取应用程序的敏感信息,或者修改应用程序的行为。Android应用 Java编写的,利用Android SDK编译代码,并并且把所有的数据和资源文件打包成一个APK(Android Package)文件这是一个后缀名为.apk的压缩文件,apk文件中包含了一个Anddroid应用程序的所有内容,是Android平台用于安装应用程序的文件。

qq_51598534的博客 6293

模仿学习算法——ATC / Diffusion Policy

最近又开始接触具身智能相关的一些工作,本文主要介绍三篇较为基础的用来做模仿学习的算法,后续有空再进一步学习分享RT系列和Pi0等文章ACT算法全称为Action Chunking with Transformers,发表于《Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware》,该论文主要内容为如何使用低成本的硬件和模仿学习算法来实的双手操作,我们主要对算法部分进行剖析ACT算法的网络结构如下图所示,使用的采用的是生成式模型VA

weixin_44580210的博客 5251

NDK-C++ support

1、NDK相关各种可用的C++运行库Android平台自带微型C++运行库(system),NDK提供补充功能的C++运行库(gabi++, stlport, gnustl)运行库 异常支持 RTTI支持 标准库概念综述system No No Nogabi++ No Yes Nostlport No Yes Yesgnustl Yes ...

weixin_30795127的博客 159

【图像去噪】论文复现:CLIP用于图像去噪提升泛化性!CLIPDenoising的Pytorch源码复现,跑通CLIPDenoising全流程,图文结合,网络结构梳理和拆解,对应源码注释!

论文题目:Transfer CLIP for Generalizable Image Denoising —— 用于可泛化图像去噪的转移CLIP。【图像去噪】论文精读:Transfer CLIP for Generalizable Image Denoising(CLIPDenoising)CLIPDenoising理论部分详解见上面对应的论文精读,本文以源码为主,理论部分只是粗略回顾。启发:多看其他领域的文章,分析是否能应用在去噪领域,这是产生idea的要素之一;

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1412

android stl,Android NDK中的c++ STL

田海立@优快云 2020-11-25Android NDK(Native Development Kit)提供了一套基于c/c++开发Android应用的工具。基于c/c++开发需要STL (StandardTemplateLibrary/标准模版库),本文描述Android NDK中提供的STL。Android NDK开发是基于Android的,但是不绑定具体某一个Android版本,一个...

weixin_39608988的博客 468

STM32实现简单的智能电梯控制

上述代码实现了一个简单的智能电梯控制器。电梯的状态包括IDLE(停止)、UP(向上移动)和DOWN(向下移动)三种状态。通过向上和向下按钮的按下,可以控制电梯移动到指定的楼层。在主循环中,不断读取当前楼层的按钮状态,并根据电梯状态决定执行的动作。具体的楼层数量和按钮的GPIO引脚可以根据实际情况进行调整。要实现简单的智能电梯控制,我们可以使用STM32微控制器来实现。

2401_85258012的博客 336

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Android NDK中的c++ STL

Android NDK(Native Development Kit)提供了一套基于c/c++开发Android应用的工具。基于c/c++开发需要STL (StandardTemplateLibrary/标准模版库),本文描述Android NDK中提供的STL。 Android NDK开发是基于Android的,但是不绑定具体某一个Android版本,一个NDK发布版可以支持多个Android版本。 NDK开发无论静态库还是动态库,libc++都是用NDK里的发布版本打包在应用里。

田海立@优快云 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

android ndk 编译c++11,Android NDK中的c++ STL

田海立@优快云 2020-11-25Android NDK(Native Development Kit)提供了一套基于c/c++开发Android应用的工具。基于c/c++开发需要STL (StandardTemplateLibrary/标准模版库),本文描述Android NDK中提供的STL。Android NDK开发是基于Android的,但是不绑定具体某一个Android版本,一个...

weixin_30781567的博客 1756

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

http://dev.10086.cn/cmdn/wiki/index.php?doc-view-7272.html   相信Android开发者都喜欢用C++编写一些高效的应用,有关Android NDK的C++开发相关知识Android123总结如下:   1. 从Android NDK r5开始支持了STL Port,在这个版本开始就可以使用部分STL库的功能了,比如说vector

宝剑锋从磨砺出,梅花香自苦寒来! 790
上一篇: Gradle极速打包方案
下一篇: 注解该如何使用
handy周
handy周 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄14年 507粉丝 240原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值