雪花纯生啤酒批发价:Kindle3中文输入法作者谈开发过程

来源:百度文库 编辑:九乡新闻网 时间:2024/04/26 17:26:23
Kindle3中文输入法作者谈开发过程作者:爱范儿 时间:2011年08月15日
点击订阅《数字出版日报》 分享到微博:   打印分享到新浪微博分享到搜狐微博分享到腾讯微博收藏微博评论     Amazon Kindle一直把持着电子书阅读器市场份额的头把交椅。去年推出的Kindle3设计纤薄并对机能进行改进,譬如对比度增强50%、翻页速度加快20%等,并且配备了全键盘。不过遗憾的是,由于Amazon并未对中国大陆地区正式发售Kindle,中文输入法的出现一直停留在幻想阶段。
    在一次偶然的机会下,我在一个社区论坛中看到有人提出了Kindle3俄文输入法的可行性方案,就在想中文输入法也会有春天。巧合的是,有一位Kindle用户也注意到了这条信息,并且经过一段时间的开发,真的给广大Kindle3中国用户带来了较为完善的中文输入法。此人就是今次iSeed访谈的主人公200。    200不是个非常张扬的人,在几次交谈中都保持着低调和谦逊。这次访谈中有很多关于开发背后的故事,你们一定不能错过。
    ifanr:先介绍下自己吧,说说自己的本职工作和业余爱好之类的,以及开发Kindle3中文输入法的初衷。
    200:好的。大家好,我是200,Kindle3中文拼音输入法的作者。目前我的本职是学生,业余生活算是比较单一,看看书,玩玩FPS,再就是捣鼓一些自认为有趣的小玩意儿,比如这个输入法。
 
    我是去年11月入手的Kindle3,当时之所以选择Kindle3,其实主要是觊觎Amazon的免费3G。不过买回来才发现Kindle3对于网络的支持并没有想象中的强大,有些许失望,不过能随时随地无阻碍地看Wikipedia也算是让我欣慰不少。和入手其他电子设备一样,第一件事就是搜索相关的资源,看看能不能对设备的功能进行拓展补充。然后误打误撞地就找到了Mobileread论坛,看到了别人开发的一些第三方应用,自己也试着用了几个,感觉挺不错的,于是也就萌生了写点东西的念头。当时只是觉得在Kindle上开发程序应该会很有意思,却也没有决定是要实现输入法。
    ifanr:那以前有开发过其它作品吗?现在不少Kindle3中文用户对于你的作品十分喜欢,有没有打算开发其他延展出来的产品?譬如Kindle2代和KindleDXG用户。
    200:我以前倒是写过一些其他的程序,不过与Kindle倒是没什么关系,就不多提了。关于Kindle的相关开发,我还是比较期待Amazon能够开放KDK(KindleDevelopmentKit),这样会方便不少开发者来对Kindle进行拓展,我也能方便的写点类似行程表记事本此类的小应用。当然,现阶段我的打算是抽时间把输入法进行重构,因为之前完成拼音输入法也只是为了满足个人需求,并没有想到会有这么多朋友来支持,自然也就没有想到需要对其进行后期维护,因此,写的比较随意。后期我打算把SCIM移植过来,这样就可以拓展出多种输入法,比如五笔、仓颉,以满足不同用户的需求。当然,Kindle2和KindleDXG的用户我也会尽力去照顾,不过身边没有这样的设备所以实施起来肯定比较费劲,相对于Kindle3那肯定得滞后不少了。
    ifanr:从你的个人blog上了解到,Kindle3中文输入法的编写工作从年初2月2日开始到4月30日结束,应该说效率并不低,你是从哪儿得到开发的灵感的呢?
    200:其实关于输入法的构想去年11月就有了,只是一直停留在想法,记得当时只是把输入法的可行性在日志上唠叨了一下,那会儿我并没有想着要去实现它,自己倒是蛮期待有人能从我的日志收获一些灵感进而完成输入法,到时候我也顺便沾光上上特别鸣谢什么的。可是一直等到春节,也没见得有类似的应用出现,反倒是有不少网友在那篇日志的回复里鼓励我去实现输入法。于是刚好趁着过年的空挡,就想着着手试试看呗。
 
    ifanr:这其中遇到最大的困难是什么?
    200:真正动手进行开发,才发现过程并没有自己原先想象的那么有趣,首先Kindle的交叉编译环境配置就让我头疼了好几天,由于我之前没有从事过类似的嵌入式程序开发,所以交叉编译链的配置把我折磨得焦头烂额,还好最后找到了NiLuJe大神关于交叉编译的terminalhistory,问题才得以解决。
    还有就是Kindle前台的应用界面是用java编写的,这本身应该算是一个好事,因为java编写的程序逆向起来比较容易,这样有助于我分析出相关的接口.但是除了与KDK相关的部分,其他class都被混淆过了,刚好那段时间的java在线反混淆工具也工作不正常,这就给我的分析工作带来了很大的麻烦,自己人肉反混淆几个class终于撑不住了,最后向其作者Stiver求助,讨要了一个离线版的fernflower,终于完成了相关接口的逆向工作。
 
    其实最麻烦的还要属程序的调试了,因为我没有Kindle的模拟器,所以没有办法边开发边调试,所以只好把程序都写完了,然后放到实体机器上去测试,开始的时候一旦程序错误,电子书也就跟着挂掉了,只好强制重启(反复好多次,我怀疑我的Kindle现在续航能力大减就跟重启有关)。失败了很多次之后,终于放弃这种原始野蛮的测试方法,采取前后台分离测试的办法,因为后台与Google输入法通讯的部分与Kindle平台并无耦合,所以我在Linux上单独写了一个简易的前台GUI接收键盘输入来测试输入法的后台代码,只在Kindle的实体上测试前台界面的绘制,确保两个都没有问题了再将程序组装起来。即使这样到最后还是出了一些问题,因为Kindle上的java并不是完全版的,有些特性比如枚举类型其根本不支持,没办法,最后只有一点一点排查兼容性问题,总之非常考验耐性。
    ifanr:那么开发过程中有没有想过放弃?
    200:说来惭愧,我中途因为其他事情把输入法开发搁浅了一段日子,以至于自己都快忘了有这么一茬事儿,之后有天去查看留言,看到底下那么多回复感觉很愧疚,然后就停下手头的事,继续开发了。严格的说,整个过程对我来说不存在放弃不放弃,只是到底能走多远的问题,当时我也不知道这个输入法最后能不能写完,我的计划其实是自己先试试看,能完成最好,但是如果遇到了瓶颈最后解决不了,那就把我期间的成果整理一下,等待其他高人继续完成。总之非常感谢在留言里支持我的朋友们,不然现在这个输入法到底存不存在还两说呢。
    ifanr:国内现在有不少做电子书的厂家,不过似乎业绩都不算好。你对这个怎么看?
    200:对于国内的电子书产业我所知甚少,也就不妄加评论了。但是对于电子书设备,我个人认为支持个性化的定制和提供健全的配套服务是取胜的关键因素。我虽然没有用过汉王的电子书,但是从论坛上其他朋友的反应来看,在这两方面汉王还是有继续提升的空间,总之希望这样一个国产品牌今后可以一路走好吧。
    ifanr:除了Kindle3中文输入法外,你还对Kindle的浏览器做了番DIY并作了不少研究。同时,国内也有开发者把仙剑移植到了Kindle上。你觉得Kindle在开发方面的可玩性高吗?
    200:Amazon官方对于Kindle开发资料释出的并不是很多,但是从接连几次固件升级中可以看出,Amazon并不打算把这些非授权的第三方应用完全限死,还是为其保留了一些发展的空间。同时,从Mobileread上我们也可以看到,有很多热心的geek在不断地发掘Kindle的功能,所以我对Kindle开发方面的前景还是保持乐观的,同时换个角度看,其实也正是这种不完全开放的环境让人更有好奇心去进一步探索,所以我相信诸如此类的应用今后还是会层出不穷的。
    ifanr:作为Kindle用户,怎么看待Amazon主力打造的这个电子书消费平台?
    200:虽然我本人只在Amazon上购置过几本电子书,但是我还是很支持这个消费平台的,一方面它促进了版权保护,另外一方面它能和Kindle设备完美的融合,当然,如果价格能更优惠一些就更好了,嘿嘿。
    ifanr:问个轻松些的话题,你是Kindle3中文输入项目的主脑,你觉得如果有读者和你比赛Kindle3汉字录入速度,有信心赢吗?
    200:我是个现实主义者,所以这个我就不发表评论了,哈哈。对了,最后大家可以在这里获得Kindle3中文输入法的详细安装说明(hi.baidu.com/canbefound/blog/item/447a390a817497d93bc763c3.html)
【百道网】本文网址:http://www.bookdao.com/article/25871/?term=85&ismail=5