NDK-C++ support
1、NDK相关各种可用的C++运行库
Android平台自带微型C++运行库(system),NDK提供补充功能的C++运行库(gabi++, stlport, gnustl)
运行库 异常支持 RTTI支持 标准库概念综述
system No No No
gabi++ No Yes No
stlport No Yes Yes
gnustl Yes Yes Yes
指定运行库需要使用Application.mk文件中APP_STL变量
APP_STL := system
system:默认值
gabi++_static: 静态gabi++运行库
gabi++_shared: 共享gabi++运行库
stlport_static:静态stlport运行库
stlport_shared:共享stlport运行库
gnustl_static:静态gnustl运行库
gunstl_shared:共享gnustl运行库
静态库和共享库;
静态库直接集合到生成的二进制文件中,项目中包含单一原生模块时使用;
共享库单独存在,项目中有多个模块时使用;
e.g.
static{
System.loadLibrary("stlport_shared");
System.loadLibarary("module1");
System.loadLibarary("module2");
}
2、异常以及RTTI支持的可用性
异常:
只有在APP_STL := gnustl_shared时支持异常
可以在Android.mk中通过如下变量对单一模块添加:
LOCAL_CPP_FEATURES += exception
也可以在Application.mk中通过如下变量对整个项目添加:
APP_CPPFLAGS += -fexceptions
RTTI支持:
同异常;
LOCAL_CPP_FEATURES += rtti
or:
APP_CPPFLAGS += -frtti
3、C++标准库概念综述
容器:
1、序列:
vector,deque,list,slist
2、关联容器:
排序关联容器:set,map,multiset,multimap
哈希关联容器:hashed_set,hash_map,hash_multiset,hash_multimap
3、适配器:
stack,queue
4、string
迭代器:对指定范围内或一个容器内的对象进行迭代,迭代器是一个泛化的指针;
1、input iterator: 用来读取它所引用的元素的值;
2、output iterator:用于修改当前位置对象的值;
3、forward iterator:用于多种算法;
4、bidirectional iterator: 向前或向后遍历给定范围的元素;
5、random access iterator: 提供普通c指针算法的所有操作;
算法:
搜索、替换、复制、排序等;
4、C++运行库线程安全
运行库的读操作安全,写操作需要程序确保安全
5、C++运行库调试模式
参考:《Android C++高级编程》 11、支持C++
NDK-C++ support的更多相关文章
- Install NDK in Eclipse/Android Studio
1. Download NDK https://developer.android.com/tools/sdk/ndk/index.html 2.Install NDK $ tar xvf andro ...
- NDK开发_笔记0
自谷歌搜索退出中国以来,谷歌对全球第二大市场中国的态度一直保持冷淡.可是北京时间12月8日,谷歌2016开发者大会在北京召开,同时专门针对中国的谷歌开发者网站已经上线:https://develope ...
- NDK 笔记(一)
参考:https://developer.android.com/studio/projects/add-native-code.html#link-gradle 使用Android Studio 2 ...
- Eclipse ndk fix插件开发
一. 手工修复ndk环境bug Eclipse做ndk开发的时候, 经常会遇到编译过去,却报语法错误的问题,比如 ①. 头文件不识别 ②. 头文件识别了, 类型不识别 针对这一的bug,我们一般按照如 ...
- android studio 1.0 开发 ndk 调用 c++ so库
一个没用过java和安卓的人使用android studio开发带c++ so库的安卓程序用例(以ndk的hello-jni为例),对于不熟悉java和安卓的人来说这个很花时间,希望通过这篇文章帮助跟 ...
- 【android 开 发 】 - Android studio 下 NDK Jni 开发 简单例子
Android 开发了一段时间,一方面 ,感觉不留下点什么.有点对不起自己, 另一方面,好记性不如烂笔头,为了往后可以回头来看看,就当做是笔记,便决定开始写博客.废话不多说 ! 今天想搞一搞 ndk ...
- Android Studio NDK编程-环境搭建及Hello!
一,下载 安装android-ndk开发包 NDK各个版本链接二,新建项目NDKDemo,选择空Activity就可以:(注:Android studio 2.2,可通过SDK Tools 添加LLD ...
- NDK开发-Android Studio+gradle-experimental开发ndk
在最新的Android Studio2.2的preview版中,增加全新的ndk支持,使用了新的gradle,以及DSL语言. 新的NDK需要使用新的Gradle插件和新的Android插件来支持! ...
- Android Native 代码NDK开发学习笔记
引用:http://www.kunli.info/2011/08/21/android-native-code-study-note/ JNI,全称Java Native Interface,是用于让 ...
- 初识Android NDK
本文介绍Windows环境下搭建Android NDK开发环境,并创建一个简单的使用Native代码的Android Application. 一.环境搭建 二.JNI函数绑定 三.例子 一.环境搭建 ...
随机推荐
- 如何使用eslint
npm i -g eslint 安装 eslint 即可看到基本的使用参数 eslint官网提供配置文件 eslint --env browser --global $ --rule "no ...
- jquery根据id取不到textarea对象,无法给textarea赋值
小编定义了一个textarea控件,却无法根据id取到textarea对象并赋值. 经过实验,得出了原因.代码如下: <!DOCTYPE html><html><head ...
- 02_NIO简单实例
[一个用NIO实现的客户端向服务端单向通信的例子] [服务端程序] package com.nio.test; import java.io.IOException; import java.net. ...
- Android Timer和TimerTask
以下内容根据 The JavaTM Tutorial 和相关API doc翻译整理,以供日后参考: 1.概览 Timer是一种定时器工具,用来在一个后台线程计划执行指定任务.它可以计划执行一个任务一次 ...
- 二维码Zxing&Zbar
二维码Zxing&Zbar 前言:该项目主要介绍了二维码扫描.闪光灯开启.本地二维码图片识别.二维码生成.分别是zxing和zbar(网格二维码)分别实现,具体效果运行项目apk... 开发环 ...
- JS高级程序设计第三版——变量、作用域和内存问题
JavaScript变量: 由于JavaScript变量松散类型的本质,决定了它只是在特定时间用于保存特定值的一个名字而已.由于不存在定义某个变量必须要保存何种数据类型值的规则,变量的值及其数据类型可 ...
- centos 开机执行的命令
centos开机执行的命令-------待验证,因为有可能涉及到root问题,没想明白怎么输入密码 1.增加rc.local可执行权限 chmod +x /etc/rc.d/rc.local 2.在里 ...
- 通过游戏学敏捷:只通过Specification来传递需求
转自:https://mp.weixin.qq.com/s/jAYbAMUTNYGh4RxGPAZ1AQ 活动把每个小组(4-5个人)中的2人留在屋子里,其他人到屋子外面等待.在屋子里的人,会得到一张 ...
- Rabbit MQ config文件解析
Rabbit MQ config文件解析 tcp_listeners:用于监听AMQP连接的端口或主机名/对(不带TLS),默认端口:5672 2.numtcpacceptors :将接受TCP侦听器 ...
- 【Leetcode】【Medium】Find Minimum in Rotated Sorted Array
Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...