WURFL简介
来源:互联网 发布:电脑mac地址是什么意思 编辑:程序博客网 时间:2024/05/16 10:41
做无线应用不像普通互联网应用那么简单,其中最麻烦的要数客户端适配的问题。全世界的手机千千万万种,屏幕尺寸、分辨率、颜色数、浏览器、操作系统、虚拟机版本等等全都不一样。要以统一的服务器端架构满足这么多种不同的客户端,并非易事。其中最困难的就是,你怎么知道客户端的配置是什么样的?
当然,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-->
当然,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的可读性,闲着没事用记事本把这个文件打开,瞅瞅自己的手机是个啥性能,也挺好玩的。
- WURFL简介
- WURFL的使用
- 探索WURFL(转自:developerworks)
- WURFL:终端(手机设备)信息的文件
- 【转自官网】WURFL 浏览器版本识别API+末尾附WURFL工具包
- 第一篇文章,介绍一下自己为什么叫wurfl
- 使用 PHP、JavaScript 和 WURFL 的设备识别移动网站
- 构建多服务的 Java 应用程序,第 1 部分: 探索 WURFL
- 构建多服务的 Java 应用程序,第 1 部分: 探索 WURFL
- 构建多服务的 Java 应用程序,第 1 部分: 探索 WURFL ( 3)
- 构建多服务的 Java 应用程序,第 1 部分: 探索 WURFL(4)
- 简介
- 简介
- 简介
- 简介
- 简介
- 简介
- 简介
- iPad页面管理——Split ViewController
- error: ‘std::ios_base::ios_base(const std::ios_base&)’ is private
- Spring框架开发实践--视频
- 框计算垂直搜索之统计篇
- XML文件的解析--libxml库函数解释
- WURFL简介
- Android 多线程文件下载
- 备战ACM/ICPC资料
- AIX 6 初学 day1 (三)续
- ACM常见问题解答
- JavaScript--正则表达式
- Java核心编程实践--视频
- Flash AS3 保存图片到本地
- 解决PHP下载文件名中文乱码