?基于meego平台开发应用程序有一段时间了,尤其是最近一个多月,天天加班,赶进度。目前,这个阶段的代码终于冻结更新了,因此,也有时间静下心来总结一下。
?
?? ? ?1. ?meego平台处于一个持续更新的状态,一些底层的库,在上游更新的很快,但是,编译到meego平台的时候,则是远远的落后于上游的更新速度。这种策 略,跟ubuntu这类桌面环境是相似的。对于开发团队来说,如果使用meego的sdk和模拟器,则不会有什么大的问题。但是,我们的团队采用的方法是 在PC上直接安装一些比较底层的库的最新的版本,比如libmeegotouch,然后开发代码,在PC上先调试运行,然后再使用meego的sdk为目 标平台重新编译一次,这种做法的好处就是开发起来更方便,不利的地方就是由于PC上库的版本比meego平台上对应的库的版本高,需要经常检查函数是否和 版本匹配。
?
?? ? ?2. meego应用程序的启动速度,比qt程序会慢一些,在PC上,这种启动速度,勉强还可以接受,但是在我们的目标平台上,则慢的出奇,超出了可以忍受的范围,目前正在进一步分析慢的原因,想办法解决。
?
?? ? ?3. meego中,使用了tracker数据库,从我们团队成员的学习情况以及第三方团队的反馈信息来看,这个东西有一定的难度,学习成本比较高,虽然trackr很强大。
?
?? ? ?4. meego的音频子系统,推荐使用的pulseaudio音频后台程序,最近一段时间,开发任务中暂无音频相关程序,所以没有持续跟踪 pulseaudio的状态,但是就前两个月的调试结果来看,meego上的pulseaudio还没有达到很稳定的状态。(我们使用的是intel的处 理器和平台,arm平台上meego的音频子系统,可能情况不一样,我没有用过)
?
?? ? ?5. meego的视频子系统,后端使用的是gstreamer框架,所以用起来还是很方便的,但是,gsreamer还是太底层,上层应用开发者,推荐使用的 是qtmobility中的multimedia框架,这也是个新东西,需要学习(一个多月前我下载的libmeegotouch代码中,本来有个 MVideoWidget,直接使用gstreamer,可以播放本地视频,但是最新的libmeegotouch代码中,这个widget已经被移除 了,估计是让为给qtmobility中的multimedia)。另外,虽然底层的框架是gstreamer,但是,硬解码相关的gstreamer插 件,现在还不可用,应该还需要再等一段时间才会集成进来。
?
?? ? ?6. meego上的鼠标手势,是基于qt的gesture的,现在也还不完善,qt中定义的五种基本手势,我们的平台上目前只有3种,而且,最诡异的 是,gestureEvent的传递,是不确定的,有些时候有这个event,但是有些时候又没有,为此我们反复调整过好几次代码。
?
?? ? ?7. meego中的css,这是我们遇到的最头痛的问题,我们在PC上调好的css文件,在meego平台上运行的时候,很诡异的出现整体失效的情况,检查过 很多遍,我们的css语言绝对是完全正确的。而我们发现,引起整体失效的原因,竟然是css文件中某些位置上的空格,或者是某个单位值,或者是某个小数 点。这个问题现在实在没有办法解决,只能等待平台上meego的升级。
?
?? ? ?8. 黑屏现象,这是一个系统级的bug,程序在运行的时候,经常会黑屏,然后xserver重启。
?
?? ? ?9. event循环挂住,这个是在测试中发现的,程序界面还在,但是不响应任何事件,通过调试发现,整个事件循环在某个地方被挂住了,直接导致程序无法响应后续的event,这个情况很难进一步调试,目前也没有解决。
?
?? ? ?总的来看,meego现在还不够稳定,没有达到产品级的要求,还需要继续努力。作为meego平台应用程序开发者,希望meego尽快完善起来。
?