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函数绑定 三.例子 一.环境搭建 ...
随机推荐
- CakePHP redirect函数
public function getContract($value=''){ App::uses ( 'UserContractController', 'Controller' ); $Contr ...
- OpenStack系列
一.概述 云计算介绍 OpenStack各组件详解和通信流程 二.keystone系列 三.glance系列 四.nova系列 虚拟化介绍 kvm介绍 五.neutron系列 六.horizon系列 ...
- 【转】46 个非常有用的 PHP 代码片段
1. 发送 SMS 在开发 Web 或者移动应用的时候,经常会遇到需要发送 SMS 给用户,或者因为登录原因,或者是为了发送信息.下面的 PHP 代码就实现了发送 SMS 的功能. 为了使用任何的语言 ...
- DLL调用的两种方式(IDE:VC6.0,C++)
原文:http://www.cnblogs.com/Pickuper/articles/2050409.html DLL调用有两种方式,一种是静态调用,另外一种是动态调用 (一)静态调用 静态调用是一 ...
- ubuntu 18 设置语言环境
1. 查看语言环境 ubuntu系统中,存在两个系统变量:$LANG和$LANGUAGE 分别控制语言环境和地区,这两个变量是从/etc/default/locale中读取的: 方法一: echo $ ...
- AS开发实战第二章学习笔记——其他
第二章学习笔记(1.19-1.22)像素Android支持的像素单位主要有px(像素).in(英寸).mm(毫米).pt(磅,1/72英寸).dp(与设备无关的显示单位).dip(就是dp).sp(用 ...
- java模拟post提交
package javapost; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOE ...
- LeetCode-Maximal Rectangle [学以致用] ZZ
http://www.cnblogs.com/lichen782/p/leetcode_maximal_rectangle.html 题目: Given a 2D binary matrix fill ...
- 关于map容器的元素被无参初始化
使用C++中的map容器定义一个mp,当你执行if语句判断mp[3]是否为1时,那么如果mp[3]以前不存在,此时mp[3]就会被无参初始化,second赋值为0. 以下的程序可以证明这一点.执行了第 ...
- 实现UILabel渐变色效果
实现UILabel渐变色效果 效果如下图: 源码: // // CombinationView.h // ChangeColorLabel // // Created by YouXianMing o ...