近期开发小结
Maemo平台:
持续改进MSCIM。4月底5月初时N900在香港台湾上市,中文输入使用的是基于MSCIM的蒙恬输入法。
所以Nokia台湾和蒙恬的人都有和我联系,关于一些bug的。
MSCIM为蒙恬修改恢复了若干快捷键,以使蒙恬的面板可以调用显示输入法选择菜单。同时明确延续SCIM的LGPL版权声明,以使蒙恬不需要开源其输入法模块。
同时因为有俄语用户反映俄语状态不能切输入法(因为俄语输入是不显示输入法面板的吧,所以点不了选择输入法的按钮),就加了shift+ctrl组合键进行输入法切换。
新引入mscim-chewing新酷音模块。当然这个还很不完善,另外,因为我也不会这输入法。。估计改进是有困难了
从Ubuntu source上取了ttf-wqy-microhei的包,推进maemo extras-devel源了,用来替换里面的ttf-droid。Droid字体不全,文泉驿的微米黑就是在Droid字体上完善的。
另外看起来,仿照蒙恬的软键盘形式,在MSCIM上用helper做软键盘也是可行的,只是开发工作量颇大,并且因为早期就禁用掉了inline输入模式,用大键盘的话,会遮挡掉文字输入框,看起来应该也不爽。用小键盘,可能意义就小很多了。
Android:
主要在研究Android Sync Framework。往深处做,Android还是有不少问题的。加入自己的Sync Account时,有supportsUploading选项。一般对于social network client就设成false,比如facebook什么的,这样其实相当于只读,就是把服务器上的好友加载到本地而已。但如果系统中只要有任意一个启用的支持supportsUploading的account的话,新增联系人时就完全不可能新增到你这个account名下,这对于想做同步的程序是不可行的。但如果把supportsUploading设为true呢,那其实问题就更大了,新增联系人时,如果选择建在这个account下,出来的EditContact的界面是只有选择头像和输入人名的框的,其它所有的比如填电话邮件这些的控件全部不会显示。
所以Funambol出的Android syncml client用了很直接了当的做法,自己做了个自己的EditContact的界面,只是每次新建联系人时,系统都会问你用哪个activity,这个观感不好。
而Google Accounts和Exchange Server Account为什么能用呢?因为那是把两个package name写进了Contacts应用程序的。实际上从代码上来看,Google有在考虑为ExternalSource进行这些编辑控件的加载,但至少到2.1版本还是不可用的。
所以,如果不改Contacts程序的code的话,你是做不了一个完善的类似Google联系人同步这样的程序的。