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的更多相关文章

  1. Install NDK in Eclipse/Android Studio

    1. Download NDK https://developer.android.com/tools/sdk/ndk/index.html 2.Install NDK $ tar xvf andro ...

  2. NDK开发_笔记0

    自谷歌搜索退出中国以来,谷歌对全球第二大市场中国的态度一直保持冷淡.可是北京时间12月8日,谷歌2016开发者大会在北京召开,同时专门针对中国的谷歌开发者网站已经上线:https://develope ...

  3. NDK 笔记(一)

    参考:https://developer.android.com/studio/projects/add-native-code.html#link-gradle 使用Android Studio 2 ...

  4. Eclipse ndk fix插件开发

    一. 手工修复ndk环境bug Eclipse做ndk开发的时候, 经常会遇到编译过去,却报语法错误的问题,比如 ①. 头文件不识别 ②. 头文件识别了, 类型不识别 针对这一的bug,我们一般按照如 ...

  5. android studio 1.0 开发 ndk 调用 c++ so库

    一个没用过java和安卓的人使用android studio开发带c++ so库的安卓程序用例(以ndk的hello-jni为例),对于不熟悉java和安卓的人来说这个很花时间,希望通过这篇文章帮助跟 ...

  6. 【android 开 发 】 - Android studio 下 NDK Jni 开发 简单例子

    Android 开发了一段时间,一方面 ,感觉不留下点什么.有点对不起自己, 另一方面,好记性不如烂笔头,为了往后可以回头来看看,就当做是笔记,便决定开始写博客.废话不多说 ! 今天想搞一搞 ndk ...

  7. Android Studio NDK编程-环境搭建及Hello!

    一,下载 安装android-ndk开发包 NDK各个版本链接二,新建项目NDKDemo,选择空Activity就可以:(注:Android studio 2.2,可通过SDK Tools 添加LLD ...

  8. NDK开发-Android Studio+gradle-experimental开发ndk

    在最新的Android Studio2.2的preview版中,增加全新的ndk支持,使用了新的gradle,以及DSL语言. 新的NDK需要使用新的Gradle插件和新的Android插件来支持! ...

  9. Android Native 代码NDK开发学习笔记

    引用:http://www.kunli.info/2011/08/21/android-native-code-study-note/ JNI,全称Java Native Interface,是用于让 ...

  10. 初识Android NDK

    本文介绍Windows环境下搭建Android NDK开发环境,并创建一个简单的使用Native代码的Android Application. 一.环境搭建 二.JNI函数绑定 三.例子 一.环境搭建 ...

随机推荐

  1. CakePHP redirect函数

    public function getContract($value=''){ App::uses ( 'UserContractController', 'Controller' ); $Contr ...

  2. OpenStack系列

    一.概述 云计算介绍 OpenStack各组件详解和通信流程 二.keystone系列 三.glance系列 四.nova系列 虚拟化介绍 kvm介绍 五.neutron系列 六.horizon系列 ...

  3. 【转】46 个非常有用的 PHP 代码片段

    1. 发送 SMS 在开发 Web 或者移动应用的时候,经常会遇到需要发送 SMS 给用户,或者因为登录原因,或者是为了发送信息.下面的 PHP 代码就实现了发送 SMS 的功能. 为了使用任何的语言 ...

  4. DLL调用的两种方式(IDE:VC6.0,C++)

    原文:http://www.cnblogs.com/Pickuper/articles/2050409.html DLL调用有两种方式,一种是静态调用,另外一种是动态调用 (一)静态调用 静态调用是一 ...

  5. ubuntu 18 设置语言环境

    1. 查看语言环境 ubuntu系统中,存在两个系统变量:$LANG和$LANGUAGE 分别控制语言环境和地区,这两个变量是从/etc/default/locale中读取的: 方法一: echo $ ...

  6. AS开发实战第二章学习笔记——其他

    第二章学习笔记(1.19-1.22)像素Android支持的像素单位主要有px(像素).in(英寸).mm(毫米).pt(磅,1/72英寸).dp(与设备无关的显示单位).dip(就是dp).sp(用 ...

  7. java模拟post提交

    package javapost; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOE ...

  8. LeetCode-Maximal Rectangle [学以致用] ZZ

    http://www.cnblogs.com/lichen782/p/leetcode_maximal_rectangle.html 题目: Given a 2D binary matrix fill ...

  9. 关于map容器的元素被无参初始化

    使用C++中的map容器定义一个mp,当你执行if语句判断mp[3]是否为1时,那么如果mp[3]以前不存在,此时mp[3]就会被无参初始化,second赋值为0. 以下的程序可以证明这一点.执行了第 ...

  10. 实现UILabel渐变色效果

    实现UILabel渐变色效果 效果如下图: 源码: // // CombinationView.h // ChangeColorLabel // // Created by YouXianMing o ...