2006/06/09

巨硬,J2ME,Symbian...

今天Blogger竟然挂了,只好打开Writely写Blog.

巨硬还在胶着状态,改来改去,当然越改越简单。事实上,代码很早就接近30K了,然后就不停的合并修改删除,现在还保持在28K的标准,估计最终也不会超过35K。

前 面提到过一个键盘模型的问题,在巨硬的构架中,键盘模型仅仅影响零级序列,即传统意义上的词库。为了提高搜索速度,不会把所有词都存在一张表中,通常都会 按照首字母分开以提高检索速度。如果要兼顾数字键盘和qwerty键盘,最简单的办法就是按照手机键盘的分组方法把首字母相同的词合并在一个表中,也是传 统的处理声母模糊音的办法,粗略估算了一下,这个办法应该可行,副作用主要是降低了词库的最大容量,不过巨硬二本来就不是为大词库设计的,这样做也算是一 个不错的办法。方便用户迁移数据库。

这段时间还抽空看了看Symbian系统和J2ME系统的开发。Symbian是很彻底的C++,在 流存储上考虑的极为周密,而且也把C++的继承特性,或者说代码重用特性,发挥到了极致。Java实际上是我学编程的入门语言,比C++更简洁优雅,只是 效率差了些。J2ME中设计了一个Record Management System,我不知道PC程序员或者数据库开发人员会怎么看这个玩意,但是作为PalmOS开发者,我特别喜欢它。它的实现几乎和PalmOS数据库如 出一辙,在简单的数据库驱动的应用中,这种存储又灵活又高效;在Symbian系统中有个嵌入式存储,也是这类的“单表”“非严格字段”数据库。之所以关 心这个问题,是因为巨硬二仍然没有改掉巨硬一的记录数庞大的问题,不过这次不是基础词库庞大,而且词序库庞大,如果系统级不支持这种数据库存储的话,就得 自己些个小型的文件数据库了,虽然不是不可行,但是效率就差多了,而且光是表头就要Cache掉不少的内存,因为这个原因,巨硬二应该不会有 Windows Mobile版本了,Windows Mobile提供的数据库太肿了,又浪费空间速度又慢,只适合做标准的数据库应用程序。

上 周把娘子的Moto E398刷了E1,为的是有iTunes。感觉非常不错--我是iTunes/iPod的狂热拥护者。但是Moto的输入法烂到极点了。因此萌生了一个在 Moto手机上开发输入法的想法,于是引出了J2ME的话题,再然后想到可以开发一个把中文输入和短信结合在一起的程序,这个东西市场应该不错。巨硬+ Threaded模式+狂多的J2ME手机,蛮有趣的吧。其实我还有很多关于手机和internet结合的应用构思,先用一个程序打出一片用户群体,然后 就可以逐步实施这些想法了。能跨出Treo用户群体,对巨硬来说也是很重要的一步吧。巨硬II的PalmOS版完工之后应该很快就会投入J2ME版本的开 发,至于Symbian版,要看移植的工作量了,但是我现在还没想好是先把Symbian的做了再说,还是先写J2ME的。

Evan一直 在鼓动我把输入法卖给手机厂商,不过我的想法是越来越相反。输入法就像GPS导航地图一样,只是一个技术,不是一套完善的应用;基于这个东西积累用户群 体,然后融入周边应用,譬如短信,IM,Email等等,才是输入法的出路。我喜欢能够接触终端用户并且持续挖掘用户需求的商业模式,而不是专注于技术产 品,当然,我不是说技术不重要,但是从商业角度或者从发展的角度来说,技术应该最大限度的转化为应用。

4 comments:

Anonymous said...

但是S60的系统也是不支持类似PalmOS的数据库形式的啊。又不可能用J2ME来完成输入法的。
最终还是应该完成一套基于文件系统的输入法框架,在各平台上移植也方便。
系统级实现和用户态实现这种数据库形式,我觉得区别在于系统可以在空闲时间,或者是必要时自动整理内存,而用户态要自己来实现会麻烦许多。

Anonymous said...

我错了,发现有DBMS
2nd的在文档里面:Developer Library->Symbian OS Guide->C++ API guide->Base->DBMS

UGlee said...

J2ME有个Record Storage Management,跟Palm的方式很象;SymbianOS可以支持流字典,它官方叫做嵌入式存储,这个也和palm差不多。

但是我并不打算开发一个输入法,而是开发一个电话本+短信程序,这样就可以用J2ME完成,而且我看了一下Moto, SE和Nokia的手机中,支持176x208或者240x320的分辨率手机很多很多,支持这两个分辨率能涵盖绝大部分高端手机了。

UGlee said...

另外补充一句,这个短信程序可以比原有的有几大优点:

1) Threaded模式
2) 可以备份到网上去,我正打算用xml-rpc做一个类似palmOS的数据库的同步协议。
3) 可以集成Email,不过是通过自动注册的方式完成,不是开放的;目标人群是那些几乎不用Email的用户。方法是在服务器端自动注册一个以该手机号码为用户名的Email信箱。该信箱不提供开放注册。在初期可能也只提供站内用户之间使用。
4) 利用该信箱在本服务器自动注册一个Jabber用户。用于连接Jabber的各种Transport。