一、配置环境
win7 64、eclipse(CDT)、android-ndk-r9d
二、具体步骤
1. 在Application.mk中添加APP_STL := stlport_static
2. 在C++ General--->Paths and Symbols添加NDK stl路径:\android-ndk-r9d\sources\cxx-stl\stlport 此步骤比较重要,否则找不到STL头文件
以上两步即可支持STL模板
Android.mk的配置如下,可以作为参考:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := HelloWorkdJni
LOCAL_SRC_FILES := HelloWorkdJni.cpp
include $(BUILD_SHARED_LIBRARY)
三、NDK中STL支持的类型
system 使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持
stlport_static 使用STLport作为静态库,这项是Android开发网极力推荐的
stlport_shared STLport 作为动态库,这个可能产生兼容性和部分低版本的Android固件,目前不推荐使用。
gnustl_static 使用 GNU libstdc++ 作为静态库
本人使用的是静态链接库,其实也可以使用动态链接,在java文件中需要加入动态库的引用:System.loadLibrary("stlport_shared")。