Kindle和Android開(kāi)發(fā)的比較
去年,亞馬遜發(fā)布了Kindle開(kāi)發(fā)套件,它將使開(kāi)發(fā)者能夠在流行的無(wú)線便攜電子書閱讀器上創(chuàng)建運(yùn)行應(yīng)用。但事實(shí)上,很多擁有Kindles的人更習(xí)慣于用真實(shí)的錢通過(guò)亞馬遜購(gòu)買電子書應(yīng)用,這對(duì)正在創(chuàng)建便攜應(yīng)用的開(kāi)發(fā)者而言變得很有趣。
既然Kindle應(yīng)用用Java來(lái)寫,對(duì)目前正在從事Java微型版本或Android應(yīng)用開(kāi)發(fā)的人員來(lái)說(shuō)將是***的機(jī)會(huì)。我認(rèn)為在Kindle和Android開(kāi)發(fā)之間有重疊的可能性值得研究。這是我所發(fā)現(xiàn)的幾點(diǎn)。
Kindle硬件限制
Kindle的顯示自然是為了優(yōu)化電池的壽命和灰度等級(jí)的可讀性。現(xiàn)在,開(kāi)發(fā)人員只是不得不擔(dān)心兩種屏幕尺寸: 6寸600x800像素和9.7寸1200x824像素,但是有可能開(kāi)發(fā)出更大的屏幕來(lái)。內(nèi)置的重力感應(yīng)能檢測(cè)出是否在橫版或縱版的把握下。Kindle也有完整的標(biāo)準(zhǔn)鍵盤,有些額外的控制鍵和揚(yáng)聲器。對(duì)于很多年習(xí)慣于電話觸摸控制的用戶來(lái)說(shuō),當(dāng)前的版本沒(méi)有提供一個(gè)觸摸的接口是一個(gè)突出的缺陷——但是亞馬遜最近收購(gòu)了一家支持多點(diǎn)觸摸技術(shù)的觸摸屏公司。
Android硬件潛力
我不得不說(shuō)“潛力”是因?yàn)锳ndroid關(guān)于用戶界面硬件和附件是***開(kāi)放式的。使用Android的電話從240x400這么小的屏幕尺寸到更大。屏幕永遠(yuǎn)是觸摸感應(yīng)的,但這可能是個(gè)鍵盤,也可能不是個(gè)鍵盤。此外,我們繼續(xù)關(guān)注Android激發(fā)了平板電腦和上網(wǎng)本的傳言,它將和Apple和微軟操作系統(tǒng)競(jìng)爭(zhēng),所以Android以后可能會(huì)有更大的屏幕。
Android開(kāi)發(fā)人員不得不準(zhǔn)備應(yīng)對(duì)各種屏幕尺寸,但它們能假設(shè)色彩是可用的。提供了各種圖像文件格式,既有靜態(tài)的和動(dòng)態(tài)的,也有HTML標(biāo)識(shí)的文本。Android嵌入感應(yīng)器的方法很靈活。除了這些日子看起來(lái)所有的手機(jī)都希望提供的攝像頭,重力感應(yīng)器、指南針和GPS導(dǎo)航也都提供。目前手機(jī)的實(shí)例不支持多點(diǎn)觸摸探測(cè),但這是需要新SDK版本的顯著擴(kuò)展。#p#
Kindle Java實(shí)現(xiàn)
為有限資源設(shè)備定義一個(gè)Java子集的嘗試有著長(zhǎng)久而復(fù)雜的歷史。Java微型版本(Java ME)的有些版本是被嵌入在上百萬(wàn)的手機(jī)和嵌入式處理器中。在Kindle中被用作出發(fā)點(diǎn)的個(gè)人基本概況1.1版的檢測(cè)是由Java Community Process JSR217處理的。這個(gè)版本與Java標(biāo)準(zhǔn)版1.4的關(guān)系非常緊密,所以它流行了一陣。JME手機(jī)和其他嵌入式應(yīng)用的開(kāi)發(fā)人員應(yīng)該發(fā)現(xiàn)Kindle開(kāi)發(fā)的方面很熟悉。
Kindle基于JME構(gòu)建的開(kāi)發(fā)套件擴(kuò)展有很多??赡芎湍闫谕囊粯樱@些支持Kindle風(fēng)格的圖形接口組件和網(wǎng)絡(luò)連接。用戶接口組件類是從標(biāo)準(zhǔn)Java.awt.Component類沿襲而來(lái)的,和Java.swing包中的組件沒(méi)有關(guān)系。這是個(gè)重要的設(shè)計(jì)決定,因?yàn)榛趕wing構(gòu)建的接口能引入很多額外的對(duì)象創(chuàng)建,而AWT組件與底層操作系統(tǒng)更能緊密地工作。開(kāi)發(fā)人員將不得不創(chuàng)建看起來(lái)和Kindle標(biāo)準(zhǔn)類似的接口。
Kindle開(kāi)發(fā)者套件FAQ頁(yè)提到對(duì)JSON和XML解析器,HTTPS網(wǎng)絡(luò)和其他將成為現(xiàn)代移動(dòng)應(yīng)用必不可少的特性的支持。然而,kindle 1.0版包的實(shí)際JavaDocs這時(shí)還沒(méi)有記錄這些類。這些擴(kuò)展很明顯是處于進(jìn)展中的工作。
Android Java實(shí)現(xiàn)
Android Java使用了為了降低電量消耗而定制的優(yōu)化JVM。這個(gè)類庫(kù)包含了許多但不是全部Java1.6中所熟悉的包和一些針對(duì)于Android用戶和硬件接口的類。與Kindle比較起來(lái),Android GUI元素不是從標(biāo)準(zhǔn)Java庫(kù)中派生而來(lái)。一般的接口的構(gòu)建原則是基于各種視圖派生出來(lái)的組件,這些組件由布局管理器組織起來(lái)并生成所有Java程序員所熟悉的事件。對(duì)用戶接口的創(chuàng)造有很多獨(dú)特的特性,包括使用了XML的圖形元素規(guī)范的可選擇聲明方式。
關(guān)于Android開(kāi)發(fā)者環(huán)境重要的一點(diǎn)是它是被開(kāi)放手機(jī)聯(lián)盟監(jiān)管的開(kāi)源開(kāi)發(fā),這聯(lián)盟是個(gè)由很多主要硬件制造商和移動(dòng)通信經(jīng)營(yíng)者組成的協(xié)會(huì)。Android許可證效仿的就是非常成功又靈活的Apache 2.0許可證。
Android下的數(shù)據(jù)存儲(chǔ)反映了對(duì)安全的關(guān)注。沒(méi)有對(duì)所有應(yīng)用可視的通用的文件系統(tǒng)。相反,每個(gè)應(yīng)用能控制它自己的數(shù)據(jù)共享。有一個(gè)使用了開(kāi)源SQLite工具的內(nèi)置SQL數(shù)據(jù)庫(kù)。像圖像和XML文檔這樣的資源能被編譯成用應(yīng)用代碼打包的壓縮格式。
總結(jié)
看上去Kindle開(kāi)發(fā)環(huán)境和Android有很大不同,以至于對(duì)Android應(yīng)用和開(kāi)發(fā)者移植來(lái)說(shuō)沒(méi)有容易的方法。此外,我們看到很多很多聲明支持Kindle格式的書各種手機(jī)、上網(wǎng)本和平板電腦上的其他資源,這些設(shè)備可能運(yùn)行著Android,所以Kindle風(fēng)格的資源可能在出現(xiàn)Android的設(shè)備上面臨終結(jié)。
【編輯推薦】