zoukankan      html  css  js  c++  java
  • 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++

  • 相关阅读:
    第九节 堆栈的概念和python代码实现
    第八节 单向循环链表简单介绍和python代码实现
    第七节 双向链表简单介绍和python代码实现
    第六节 单链表简单介绍和python代码实现
    第五节 顺序表的原理与python中的list类型
    第四节 抽象数据类型
    第三节 Python列表类型性能测试以及内置字典操作的时间复杂度分析
    第二节 大O表示法和时间复杂度
    MySQL优化指南
    Java类加载机制详解
  • 原文地址:https://www.cnblogs.com/fog2012/p/5868190.html
Copyright © 2011-2022 走看看