《HTML5觸控介面設計與開發》——1.2 廣泛使用的裝置
本節書摘來自非同步社群《HTML5觸控介面設計與開發》一書中的第1章,第1.2節,作者: 【美】Stephen Woods 更多章節內容可以訪問雲棲社群“非同步社群”公眾號檢視。
1.2 廣泛使用的裝置
在2007年,iPhone剛出現時,沒有任何一部其他的手機擁有真正能觸控感知的Web瀏覽器。也沒有任何支援多點觸控的裝置。其他的智慧手機大多數使用手寫筆進行互動,當時市場上的幾種平板電腦也是一樣。今天,市面上流通的有數百種觸控裝置。我們不可能瞭解每一種新裝置,不過它們可以根據作業系統、規格、搭載的Web瀏覽器將它們分為幾類。
1.2.1 作業系統
如今市場上有四種主要的作業系統適用於觸控裝置:
- iOS
- Blackberry OS
- Android
- Windows 8
Android是目前最流行的手機作業系統。根據International Data Corporation (IDC)的資料, 2012年第三季度智慧手機出貨量的75%執行的是Android系統,14.9%執行的是iOS系統。其他作業系統的市場份額只有個位數(這不包括的Windows Phone 8,因為它在2012年10月才釋出)。
iOS
iOS是所有蘋果手機和平板執行的作業系統。因為蘋果控制著硬體,所以所有的iPad和iPhone能以相同的方式執行,只有大小和處理能力上的差異。蘋果推出軟體更新時無需依賴運營商,這意味著,蘋果裝置更容易執行最新版本的作業系統。iOS開發者,David Smith,發現他開發的應用程式的使用者中,有79.2%正在使用的iOS 6或更高版本(相對2012年12月)的作業系統,有94%的人正在使用5.1或更高版本的作業系統。
注: David Smith 會在他的網站(david-smith.org/iosversionstats/)上更新這些統計資料。
蘋果隨著作業系統的升級同步升級瀏覽器,它不允許使用者安裝不同核心的瀏覽器。至少現在,可以認為iOS使用者主要安裝著上一個較新版本的iOS和iOS Safari。
ANDROID
Android的情況很不一樣。Android是開源的,手機廠商有權自由定製成他們認為合適的樣子,所以在手機之間實際的使用者介面差異很大。
Android有三個主要的版本:2、3和4。Android 3.0(蜂巢)是平板專用作業系統。大約50%的Android手機執行著2.3.x(薑餅)。最新版本的Android 4.1(果凍豆)並沒有被廣泛使用,在2013年1月,只有不到10%的裝置在執行它,不過這一數字正在迅速增長。時下的“旗艦”手機,如Samsung Galaxy SIII,仍然搭載著Android 4.0.x(冰淇淋三明治)系統出售。 Android 4.1同時支援平板電腦和手機。
注: 谷歌在developer.android.com/about/dashboards/提供了各版本的統計
Android包括一個預設的瀏覽器,而且允許讓使用者安裝不同的瀏覽器。4.1版之後,Android上預設的瀏覽器改為了Chrome。
Kindle Fire
Amazon Kindle Fire執行著高度定製版的Android,這個定製後的版本不包括任何原生的Android應用程式,並擁有自行研發的瀏覽器,稱為Silk。值得注意的是,Silk因其在客戶端裝置和Amazon雲上的執行能力而知名。這樣可以顯著地提高效能,尤其在高延遲的網路連結下。這對開發者有一些影響,我們將在第4章“提高下一次的訪問速度”中闡述。
BLACKBERRY OS
Blackberry手機是最早真正獲得成功的智慧手機。但到了2012年12月,其市場份額已經迅速減少至大約4.3%。Blackberry也出售平板,稱為Playbook。這兩種裝置使用相同的基於WebKit的網頁瀏覽器。尚存的非觸控式螢幕式的黑莓裝置佔據著智慧手機市場的長尾。 WINDOWS Windows Phone 8包含了微軟第一個完全觸控式的瀏覽器。這款手機配備了內建的Internet Explorer 10,也有建立執行於HTML5環境的應用程式的能力。
1.2.2 裝置規格
桌面和移動裝置之間最顯著的差異是規格。移動裝置有兩種主要的規格:手機和平板電腦。
手機
最常見的觸控裝置是智慧手機。除了極少數例外,它們都具有相同的基本規格:呈矩形並有縱向的觸控式螢幕。開發手機網站時要考慮的最重要的事就是小尺寸的螢幕。需要保證互動元素的尺寸足夠大到可以用手指來操控,並且內容能在小螢幕上展現得合適。
平板電腦
平板電腦的型別更多樣化。它們中從微型的Galaxy Note(5.3英寸螢幕)到13英寸的Windows 可變形平板電腦。有些平板電腦,比如iPad,通常在縱向方向使用。其他的則是在橫向模式下使用。就像手機一樣,所有平板電腦都裝有全屏的瀏覽器。
儘管有著這樣的區別,但實際使用中的平板電腦是差不多的:iPad的銷量超過了所有的競爭者,並穩定贏利。在其他的製造商中,唯一擁有兩位數市場份額的是三星。平板電腦最流行的規格是10英寸(如iPad)和7英寸(如iPad Mini和Kindle Fire)。
硬體圖形加速
正如之前所提到的,一部iPhone在效能上可以被認為是一臺裝有不錯的顯示卡但效能稍遜的電腦。各個裝置的CPU和記憶體各異,圖形硬體也是這樣。在Android 3.0之前,瀏覽器完全沒有圖形硬體加速功能。這意味著,某個動畫的效果可能會在iPhone 5上流暢,但在執行Android 2.3.3的舊手機上不會同樣流暢。
目前所有的移動裝置在繪圖上,都使用所謂的“共享記憶體”。與桌面電腦上的顯示卡不同,移動裝置上的圖形硬體沒有專用的記憶體,只是共享系統記憶體。這意味著,隨著越來越多的東西被新增到圖形儲存器,系統可用的記憶體會越來越少。在我們隨後討論圖形加速時,牢記這一點很重要。
1.2.3 瀏覽器
幸運的是,瀏覽器的情況遠沒有移動裝置複雜。WebKit無疑是最流行的移動瀏覽器核心,它支撐著所有的蘋果、Android和黑莓裝置的預設瀏覽器。Windows手機執行IE 10。最流行的另類手機瀏覽器是Opera Mobile,但只有不到1%的市場份額。
WebKit
WebKit起源於名為Konqueror的開源瀏覽器的引擎。蘋果將它進一步開發為WebKit,作為Safari背後的瀏覽器引擎。WebKit的是一個非常強大的引擎,也是第一代iPhone如此成功的原因之一。在Android 4.1之前,一個通常被稱為“Android Browser”的基於WebKit的瀏覽器被安裝在了Android裝置上。4.1時,它被同樣是WebKit 核心的“Chrome for Android”瀏覽器取代。
基於WebKit核心的瀏覽器比較相似,但又不完全相同。不同的WebKit的瀏覽器之間的渲染行為非常近,不過因為存在一些小的分支,所以在功能支援上有很大不同。當它們出現差異時,我會提醒大家。
iOS Safari
iOS版的WebKit是iOS上唯一允許的瀏覽器引擎。它通常通過Safari瀏覽器執行,也可以在原生應用程式中通過Cocoa UIWebView類執行。
Android Browser
Android Browser,即在Android中名為“瀏覽器”的應用,是Android內建的瀏覽器。它是基於WebKit的,而不是Chrome。Android瀏覽器的功能在不同版本中有很大差異。令人驚訝的是,並不是越新版本的瀏覽器有越多的功能。Android 2.3.3的瀏覽器在某些方面比4.0.1功能更全面。我稍後會指出它們之間的差異。
Android版的Chrome
Android版的Chrome通常比桌面版Chrome的穩定分支落後一個版本。在Android 4.1上,Chrome已取代了先前的原生瀏覽器。
Windows版的IE10
IE10不同於所有先前版本的Internet Explorer,它與WebKit的功能相同或相近。IE10有完全不同的觸控事件API,但功能是相同的。
其他瀏覽器
還有許多其他的瀏覽器。最流行的是Opera Mobile和Firefox移動版,它們都適用於Android。這兩種瀏覽器都非常強大,能實現的功能與WebKit大致相同。我會提醒大家它們語法的不同點。
相關文章
- 《HTML5觸控介面設計與開發》——第1章 移動裝置概述1.1 觸控裝置和桌面裝置之間的差異HTML
- 《HTML5觸控介面設計與開發》——2.6 總結HTML
- 《HTML5觸控介面設計與開發》——2.3 奠定基礎的標籤HTML
- 《HTML5觸控介面設計與開發》——1.4 神祕谷,是什麼讓觸控介面反應靈敏?HTML
- Windows 8觸控介面設計指南(中文版)Windows
- 《HTML5多媒體應用開發》——1.2 HTML5的發展HTML
- 泛型模板化設計使用-訂單搜尋介面泛型
- PB程式設計:鍵盤enter預設觸發和介面開啟預設輸入程式設計
- 通過解讀WPF觸控原始碼,分析WPF插拔裝置觸控失效的問題(問題篇)原始碼
- [翻譯]整合滑鼠、觸控 和觸控筆事件的Html5 Pointer Event Api事件HTMLAPI
- KDE Plasma 5:將熟悉的體驗帶到觸控裝置上ASM
- Linux裝置驅動開發詳解:入門與程式設計實踐Linux程式設計
- 設計模式思想還遠未廣泛應用設計模式
- Android 多點觸控介面Android
- Hammer.js 移動裝置觸控手勢js庫JS
- Linux 串列埠程式設計 串列埠裝置程式開發Linux串列埠程式設計
- wpf 觸控 觸控後無法開啟pupup
- 絕對值碼盤介面卡的廣泛應用與創新實踐
- SqlServer觸發器的建立與使用SQLServer觸發器
- Spark開發-RDD介面程式設計Spark程式設計
- Windows7可能採用觸控式使用者介面Windows
- HTML5實戰與剖析之觸控事件(touchstart、touchmove和touchend)(轉)HTML事件
- Redis開發與運維.1.2 Redis特性Redis運維
- jQuery使用最廣泛的javascript函式庫jQueryJavaScript函式
- 網頁廣泛使用的經典程式碼網頁
- 開發板觸控式螢幕測試
- HTML5觸控事件(touchstart、touchmove和touchend) (轉)HTML事件
- 帶有已知安全漏洞的開源元件仍被廣泛使用元件
- Windows核心程式設計:第10章 同步裝置IO與非同步裝置IOWindows程式設計非同步
- IOS 特定於裝置的開發:使用加速能力“向上定位”iOS
- 泛型程式設計與 OI——modint泛型程式設計
- 虛擬裝置驅動程式的設計與實現 (轉)
- 裝置製造商如何實現菸草裝置的遠端監控與高效運維運維
- Android與物聯網裝置通訊-利用UDP廣播來做裝置查詢AndroidUDP
- 五個廣泛流傳的對大齡程式設計師的誤解程式設計師
- Java是一種廣泛使用的程式語言Java
- IOS 特定於裝置的開發:獲取額外的裝置資訊iOS
- 網路擁塞裝置的設計