相信Android开发者都喜欢用C++编写一些高效的应用,有关Android NDK的C++开发相关知识总结如下:

1. 从Android NDK r5开始支持了STL Port,在这个版本开始就可以使用部分STL库的功能了,比如说vector、string摆脱c下面容易出现的数组未初始化、越界,增强应用的健壮性。

2. 很多网友包含了include <vector> 这样头,但仍然无法编译,这里你首先要检查当前文件是否为.cpp后缀,同时为了使用标准库必须加入 APP_STL := stlport_static 在Application.mk文件中。相关对应还有

system 使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持
stlport_static 使用STLport作为静态库,这项是Android开发网极力推荐的
stlport_shared STLport 作为动态库,这个可能产生兼容性和部分低版本的Android固件,目前不推荐使用。
gnustl_static 使用 GNU libstdc++ 作为静态库

默认情况下STLPORT是不支持C++异常处理和RTTI,所以不要出现 -fexceptions 或 -frtti ,如果真的需要可以使用gnustl_static来支持标准C++的特性,但生成的文件体积会偏大,运行效率会低一些。

3. 支持C++异常处理,在Application.mk中加入 LOCAL_CPPFLAGS += -fexceptions这句,同理支持RTTI,则加入LOCAL_CPPFLAGS += -frtti,这里Android123再次提醒大家,第二条说的使用gnustl静态库,而不是stlport

4. 强制重新编译 STLPort ,在Application.mk中加入 STLPORT_FORCE_REBUILD := true 可以强制重新编译STLPort源码,由于一些原因可能自己需要修改下STLPort库,一般普通的开发者无需使用此项。

5 Android目前最新的NDK版本为r6,相关的学习可以查看NDK中的Samples整体和在PC上开发没有太大的不同。


更多信息请访问:Android Application Development Center


关注新浪微博:欧瑞信息科技

更多相关文章

  1. Nginx系列教程(四)| 一文带你读懂Nginx的动静分离
  2. 一款常用的 Squid 日志分析工具
  3. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  4. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  5. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  6. .如何避免Android内存泄漏
  7. Android心得4.1--文件的保存与读取及文件的操作模式详解.doc
  8. 基于 Distcc 的android分布式编译环境的搭建
  9. AndroidUnity项目嵌入有米广告注意

随机推荐

  1. android实现TextView多行文本滚动
  2. android Fragment与Activity交互,互相发数
  3. Android TextView实现跑马灯效果
  4. Android探索之旅 | Android(安卓)Studio
  5. 2018年60个实用Android框架排行榜
  6. Android 常用 adb 命令总结
  7. Android RelativeLayout布局详解
  8. Android操作SQLite数据库
  9. Android中Dialog样式的设置
  10. Android FrameWork Service 之 StatusBar