Kindle和Android開發的比較
去年,亞馬遜發布了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的設備上面臨終結。
【編輯推薦】