• 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++

  • 相关阅读:
    如何快速方便的输出向量vector容器中不重复的内容
    System.IO.FileInfo.cs
    System.IO.FileSystemInfo.cs
    System.IO.FileAttributes.cs
    System.IO.StreamWriter.cs
    System.IO.TextWriter.cs
    System.IO.StreamReader.cs
    System.IO.FileStream.cs
    System.IO.FileOptions.cs
    System.IO.FileShare.cs
  • 原文地址:https://www.cnblogs.com/fog2012/p/5868190.html
Copyright © 2020-2023  润新知