註:這一篇是來自http://www.purplexsu.net/blog/article-049-01.html的簡體轉繁體,這個Wireless Universal Resource File從2002年開始的專案,ㄚ琪到今天才發現有這樣一個東西,還真是cool啊!看起來中文的不多,這一篇簡體文是最容易找到的一篇文章,可以幫助我們瞭解Wireless Universal Resource File是什麼?
做無線應用不像普通Internet應用那麼簡單,其中最麻煩的要數客戶端適配的問題。全世界的手機千千萬萬種,螢幕尺寸、解析度、顏色數、瀏覽器、操作系統、虛擬機版本等等全都不一樣。要以統一的伺服器架構滿足這麼多種不同的客戶端,並非易事。其中最困難的就是,你怎麼知道客戶端的配置是什麼樣的?
當然,HTTP協議提供了UA header,根據這個,可以拿到終端的具體型號,下面要做的就是,根據這個型號找到各種各樣的規格屬性了。
WURFL正是做這個事情的,它的全稱是Wireless Universal Resource File,主頁架在Source Forge上,http://wurfl.sourceforge.net/。可以把WURFL理解成一個開源的免費的很大的XML文件,裡面收集了世界上所有手機的技術參數。它是由全世界千千萬萬的好心人,大部分都是無線開發領域的技術人員,利用課餘時間辛辛苦苦收集來的。專案的負責人叫Luca Passani,一個意大利帥哥。
WURFL真正體現了開源的精神,「源於大眾,服務大眾」。這是任何一個封閉的組織或者團體無法實現的。比如說,微軟會把它弄成一個自己私有格式的二進制資料庫,附帶一個3D效果的圖形化管理界面,至少一千頁以上的技術文檔,外加C++的API和在線啟用系統,文件量600M左右,售價200美刀。現在的普遍使用的版本應該是WURFL XP,新的WURFL Vista已經上市,但由於價格漲到了2000美刀,且存在一些安全漏洞,所以買者寥寥。大多數窮苦的IT人員更願意選用盜版的上海VLK版WURFL Vista……如果是中國政府就更不用說了,聯合全世界從來就不是它的目標,它更願意關起門來在自己家裡搞搞和諧,抓抓黑磚窯包身工什麼的。
閒話少說,下面就來掃一眼WURFL文件。它是個XML文件,目前的大小約為4M。格式如下:
<?xml version=”1.0″ encoding=”UTF-8″?>
<wurfl>
<version>…</version><!–這裡說的是WURFL的版本信息,跳過–>
<devices><!–這個元素裡包含了所有的設備信息,devices裡包含了成千上萬個device元素–>
<device user_agent=”Nokia3100″ fall_back=”nokia_generic_series40″ id=”nokia_3100_ver1″>
<!–這是一個設備,user_agent給出了UA信息,id給出了設備在WURFL中的ID號,fall_back給出了它的父設備的ID號–>
<!–設備的屬性是繼承的,如果當前設備裡找不到某個屬性,就繼承它父設備的,直到最終的根設備–>
<group id=”product_info”><!–屬性按照類別進行分組,一個device下面可以有很多的group–>
<capability name=”model_name” value=”3100″/><!–capability代表一個屬性,每個group裡可以有很多capability–>
…
</group>
…
</device>
…
</devices>
</wurfl>
整個WURFL就是這麼簡單,稍懂XML的人都可以寫個幾十行的小程式讀取裡面的信息。由於XML的可讀性,閒著沒事用記事本把這個文件打開,瞅瞅自己的手機是個啥性能,也挺好玩的。
ㄚ琪,會慢慢來看有關Wireless Universal Resource File資料,來分享給大家!