初步使用Android NDK的感受 |
发布: 2012-05-04 14:50 |
Android NDK是Android平台提供的C/C++开发接口。 NDK整套工具链完全由google提供,升级支持。 由于Android的底层是基于linux的,内核及之上,java虚拟机以下, 而NDK则正针对是的这一部分,所以,与正常的linux gcc编译工具链差不多, 不同的地方在于, 1. 这是一个交叉编译工具链,链接目标为ARM系 2. 这个工具链自定义了一些android平台相关的宏 3. 有自己的Makefile规则及扩展 对于一般的命令行项目,移植还比较容易,当然这不包括音频、视频处理。 像linux常用的音频软件,alsa,pulseaudio目前都没有成熟的移植,使用了这些的软件包移植时,需要把这部分扩展到android的音频、视频框架。 直接使用NDK做GUI的功能非常弱,非常不成熟,稍微好点的有个qt移植lighthouse,使用起来比较麻烦,并且做出的界面风格与android普通应用风格区别很大。 使用NDK的好处是可以移植大量的linux C/C++开源开发库。 最近移植了几个开发库,遇到的问题还不太多,一般在asm这块,或者一些不常见的函数实现问题。 在java中使用jni调用还算比较简单,用java做界面,用NDK C/C++做功能,使用JNI连接两部分,运行的还不错,打包发布维护也都算比较简单。 既然使用了NDK,使用C/C++,又回到了悲剧的C/C++内存问题时代,对应用的稳定性需求比较高,需要非常注意。 |
原文: http://qtchina.tk/?q=node/657 |
Powered by zexport
|