去年,亚马逊发布了Kindle开发套件,它将使开发者能够在流行的无线便携电子书阅读器上创建运行应用。但事实上,很多拥有Kindles的人更习惯于用真实的钱通过亚马逊购买电子书应用,这对正在创建便携应用的开发者而言变得很有趣。
既然Kindle应用用Java来写,对目前正在从事Java微型版本或Android应用开发的人员来说将是***的机会。我认为在Kindle和Android开发之间有重叠的可能性值得研究。这是我所发现的几点。
Kindle硬件限制
Kindle的显示自然是为了优化电池的寿命和灰度等级的可读性。现在,开发人员只是不得不担心两种屏幕尺寸: 6寸600x800像素和9.7寸1200x824像素,但是有可能开发出更大的屏幕来。内置的重力感应能检测出是否在横版或纵版的把握下。Kindle也有完整的标准键盘,有些额外的控制键和扬声器。对于很多年习惯于电话触摸控制的用户来说,当前的版本没有提供一个触摸的接口是一个突出的缺陷——但是亚马逊最近收购了一家支持多点触摸技术的触摸屏公司。
Android硬件潜力
我不得不说“潜力”是因为Android关于用户界面硬件和附件是***开放式的。使用Android的电话从240x400这么小的屏幕尺寸到更大。屏幕永远是触摸感应的,但这可能是个键盘,也可能不是个键盘。此外,我们继续关注Android激发了平板电脑和上网本的传言,它将和Apple和微软操作系统竞争,所以Android以后可能会有更大的屏幕。
Android开发人员不得不准备应对各种屏幕尺寸,但它们能假设色彩是可用的。提供了各种图像文件格式,既有静态的和动态的,也有HTML标识的文本。Android嵌入感应器的方法很灵活。除了这些日子看起来所有的手机都希望提供的摄像头,重力感应器、指南针和GPS导航也都提供。目前手机的实例不支持多点触摸探测,但这是需要新SDK版本的显著扩展。#p#
Kindle Java实现
为有限资源设备定义一个Java子集的尝试有着长久而复杂的历史。Java微型版本(Java ME)的有些版本是被嵌入在上百万的手机和嵌入式处理器中。在Kindle中被用作出发点的个人基本概况1.1版的检测是由Java Community Process JSR217处理的。这个版本与Java标准版1.4的关系非常紧密,所以它流行了一阵。JME手机和其他嵌入式应用的开发人员应该发现Kindle开发的方面很熟悉。
Kindle基于JME构建的开发套件扩展有很多。可能和你期望的一样,这些支持Kindle风格的图形接口组件和网络连接。用户接口组件类是从标准Java.awt.Component类沿袭而来的,和Java.swing包中的组件没有关系。这是个重要的设计决定,因为基于swing构建的接口能引入很多额外的对象创建,而AWT组件与底层操作系统更能紧密地工作。开发人员将不得不创建看起来和Kindle标准类似的接口。
Kindle开发者套件FAQ页提到对JSON和XML解析器,HTTPS网络和其他将成为现代移动应用必不可少的特性的支持。然而,kindle 1.0版包的实际JavaDocs这时还没有记录这些类。这些扩展很明显是处于进展中的工作。
Android Java实现
Android Java使用了为了降低电量消耗而定制的优化JVM。这个类库包含了许多但不是全部Java1.6中所熟悉的包和一些针对于Android用户和硬件接口的类。与Kindle比较起来,Android GUI元素不是从标准Java库中派生而来。一般的接口的构建原则是基于各种视图派生出来的组件,这些组件由布局管理器组织起来并生成所有Java程序员所熟悉的事件。对用户接口的创造有很多独特的特性,包括使用了XML的图形元素规范的可选择声明方式。
关于Android开发者环境重要的一点是它是被开放手机联盟监管的开源开发,这联盟是个由很多主要硬件制造商和移动通信经营者组成的协会。Android许可证效仿的就是非常成功又灵活的Apache 2.0许可证。
Android下的数据存储反映了对安全的关注。没有对所有应用可视的通用的文件系统。相反,每个应用能控制它自己的数据共享。有一个使用了开源SQLite工具的内置SQL数据库。像图像和XML文档这样的资源能被编译成用应用代码打包的压缩格式。
总结
看上去Kindle开发环境和Android有很大不同,以至于对Android应用和开发者移植来说没有容易的方法。此外,我们看到很多很多声明支持Kindle格式的书各种手机、上网本和平板电脑上的其他资源,这些设备可能运行着Android,所以Kindle风格的资源可能在出现Android的设备上面临终结。
【编辑推荐】