一、静态运行库与动态运行库
1,只有项目包含单一的原生模块时支持静态库。例如:
APP_STL:=stlport_static
2,项目中包含多个原生模块时推荐使用共享库
当C++运行库以共享库的形式使用时,应用程序需要先加载所需要的共享库,然后再加载依赖于此共享库的其他原生模块。例如:
static {
System.loadLibrary("stiport_shared");
System.loadLibrary("module");
}
二、C++异常支持
为了在原生模块中使用C++异常,需要按照如下方式在Application,mk中指定GNU STL:
APP_STL := gnustl_shared
Android.mk构建文件启用C++异常支持的配置内容
LOCAL_MODULE := module
...
LOCAL_CPP_FEATURES += exceptions
...
include $(BUILD_SHARED_LIBRARY)
Application.mk生成文件启用C++ Exceptions支持的配置内容
APP_STL := gnustl_shared
APP_CPPFLAGS += -fexceptions
三、C++ RTTI(Runtime type information,运行库类型信息)
1,Android.mk启用RTTI支持的配置内容
LOCAL_MODULE := module
...
LOCAL_CPP_FEATURES += rtti
...
include $(BUILD_SHARED_LIBRARY)
2,Application.mk启用RTTI支持的配置内容
APP_STL := gnustl_shared
APP_CPPFLAGS += -frtti
四、STLport 文档地址:www.stlport.org/doc/
GNU STL 文档地址:http://gcc.gnu.org/onlinedocs/libstdc++/