BlackBerry VOIP 项目做了2个月了,我在负责黑莓项目的架构设计工作,在此对BB开发的一些实际经验和注意事项做个记录:
1 BB 的UI开发
首先J2ME和 RIM的UI 控件不能混用
RIM 的UI控件比较低级,很多常用空间如LabelFiled ButtonFiled等默认的显示效果都不理想,这点比android和iphone差太多了,比较好的做法是把常用的Filed 自己做个父类,定义好margin padding 字体 大小 等, 以后统一使用控件时统一继承自定义的父类
关于布局管理器,默认的布局管理器也比较低级,需要自己实现自动对齐的高级布局管理器, 有个AdvanceUI 的开源代码可以参考。
BB的UI模型是单线程的,具体实现方式感觉和swing有点象,对UI的操作需要放在invokeLater里面, 其实就是放到event thread里面,这点符合一般java UI的设计规范,网络访问等比较耗时的操作需要新开一个线程。如果在非UI线程操作UI控件会抛出IllegalStateException。
BB使用stack对Screen进行管理,主要的方法是popScreen和pushScreen。
2 BB 的数据存储
我们主要使用sqlite存储数据,我自己封装了一套DAO数据访问层, 直接放回POJO对象,这样其他人就不需要关注数据保存和写sql语句了。
Screen数据列表的后台刷新问题,使用观察者模式是比较好的解决方案,只要screen还在stack中,我们就可以通过触发它的update方法刷新数据
sqlite数据库文件保存在SDcard中开发比较方便, 如果保存在store中,需要在手机或模拟器中做额外的设置。
3 关于cod文件的签名和安装cod到BB手机
如果使用了rim的API,cod文件安装到BB手机需要签名,签名使用BB sign tools签名,该签名工具是个jar包,可以直接运行,也可以在eclipse中设置,这样会比较方便。需要注意的黑莓的签名服务器最近不太稳定,有时候签名会超时失败,这种情况只能过一天再试试了。
安装到cod手机需要安装黑莓的官方驱动程序。使用BBSAK工具安装cod比较方便
先写这么多吧,以后有空写写黑莓的程序运行机制,simulator, ant build,message indicator等。