Windows Phone 7 的部分技术细节
Windows Phone 7 现在仍然处在一团迷雾之中,Engadget 的人之前只能玩 Windows Phone 7 的模拟器过干瘾,这次他们从 Tweakers.com 和 HTCPedia.com 那里搞到了一系列的技术文档,这几百页纸详细描述了该系统的方方面面,从铃声到驱动程序,其中也不乏有价值的东西。
激活需要 Windows Live 账户
激活手机的时候需要使用 Windows Live 账户,如果没有现成的,则必须新建一个,现在不知道什么样的信息会跟你的账户绑定在一起。考虑到微软在云存储方面做了大量的工作,加之现在 App Store 如此流行,微软肯定也要在 Windows Phone 7 里引入这一机制,这个 Windows Live 账户很可能是为了跟你购买的软件绑定在一起,这样换手机的时候就跟 Android 一样轻松了,为了达到这个目的,不出所料的话,Windows Phone 7 也跟 Android 2.2 一样,会自动传输用户数据。
这个确实是好事,iPhone 在这方面做得非常糟糕,同步方式单一(USB),账户信息本地存储,你只能跟一台电脑同步,不然就得把 iTunes 的资料倒来倒去,连已经购买的程序都不能通过同一个账户自动同步到其他机器上去。希望今年的 WWDC 上真能有传言说的 iTunes.com 发布。
软件类型
不出所料,软件运行在所谓的“Windows Phone OS 7.0 应用平台”上,这个平台是针对用户主要使用的三个界面以及后端的云运算打造的。可下载的软件包括了两个基本类型,第一个是轻量级的本地运行的 Web 程序,跟 webOS 那种差不多,不过主要使用微软的“ Flash ” – Silverlight 以及现成的标记语言开发。
另外一种应用就是使用 XNA 开发了,这个主要使用在游戏以及其他需要比较耗费资源的应用了,XNA 是微软的跨平台开发环境,理论上可以让开发者的代码,经过少量修改就同时运行在 Zune,Xbox 360 甚至 Windows 上。当然,你也可以混着使用 XNA 和 Silverlight。
前者应该主要依赖于后面的云平台,作为轻量级小程序存在,后者可以保证游戏质量,应该可以访问底层 API,而且能和 Xbox 360 兼容意味着大量的 Xbox live 小游戏可能出现在 Windows Phone 7 上,这个分量可不轻啊。
升级方式以及桌面端兼容性
目前看起来有 OTA 更新(直接把更新信息推送到手机端)以及桌面客户端更新两种,桌面端使用的是 Zune 的那一套,微软出品的,自然是仅限 Windows 平台使用,Mac 和 Linux 就不用想了。
更新通过万恶的 Windows Update 系统进行,同样的框架在 Windows 上带来了非常烦人的弹出窗口(根据我不多的 Windows 经验,应该就是那个“你的电脑将在xxx时间内重启”),厂商也同样可以通过这个系统推送更新,但是要通过微软的审查以及测试,然后再通过云平台分发到手 机端。这意味着更新会慢一些,因为得要通过微软的测试,不过补丁的质量应该可以得到保证。
说的很玄乎,你只要知道以后手机端也会跳出来 “重要安全补丁!点击这里安装。” 这种东西就好了,我怎么一想到这个场景就有点腻歪呢?希望微软能把这个提示做得正常点。。。另外会不会出现 Windows Phone 7 sp1,sp2,sp3,spn?
系统结构
下面看看系统结构,跟之前的消息一样,结构文档指出 Windows Phone 7 是基于 Windows CE 6.0 嵌入式平台的,32 位内核,支持最大 4G 寻址空间,这意味着搭载该系统的设备支持最大 4G 的内存,现在看起来对于电话而言这个数字非常庞大了,不过四年以后就说不定了。其中 2GB 要留给底层系统操作,目前正在运行的程序可以使用 1GB,剩下的在其他进程和应用之间共享。
然后来看看多任务的问题,微软在这个问题上一直含含糊糊,从未说明过用户角度的多任务方式,但仅从系统本身来看,CE 6 平台支持抢先式多任务,多个进程均等分享同一个 Cpu,高优先级任务(重绘界面)优先使用 Cpu 资源,这使得理论上说,第三方程序不会让系统停止相应。(优先级低,系统任务可以把这种进程挤到后面去)。
确实这样的调度策略可以避免系统完全失去响应,但优先级这个东西很微妙,普通的程序优先级低是没问题的,最多是反应慢点,可是游戏就不成了,这种本身就大 量消耗资源的应用必须占有较高的优先级来保证流畅效果,如果这个类型的应用死掉,系统可就难说了,桌面这些应用不见得能抢得过游戏,那时候你又可以见到熟 悉的小圆圈转啊转啊转的。。。
驱动程序
如果没有硬件的支持,操作系统什么也不能做,很自然的,在硬件和操作系统之间,需要一个抽象层(逻辑上的,程序上的,并不是物理意义上的。)来负责它们之 间的沟通,这就是驱动程序。驱动程序是解决方案提供商开发板支持包(简称 BSP )的一部分,BSP 一般是指某种特定的硬件,但这里用来指代包括操作系统的整个电话。硬件抽象层本身划分为多个分层,其中一个是内核独立传输,这块可以让开发者连接以分析他们的代码,同样的,这也给黑客带来了方便,黑客可以利用这一层面分析其他人的代码。(估计是指破解。)
驱动程序按照一般逻辑分离开,包括了设备驱动模型(MOD)以及平台依赖驱动(PDD),MDD 是特定设备的高层次表述 — 以显卡为例 — 代表着基本操作比如“把位于 353 * 215 的像素改成蓝色”,PDD 则是真正的硬件指令,把这些基本的描述转变为正确的硬件行为。(你可以把前者看成高级语言,后者看作汇编。),这样的分割方式很普遍,但微软做了一点小调 整,把 MDD 和 PDD 分割成了不同的 DLL 文件(包含设备驱动的文件)。
之所以要这样做是因为微软想要完全控制 MDD,这意味着其他人想要在 Windows Phone 7 上使用新设备的话,都要找微软拿到 MDD,然后厂商才能根据这个去编写底层驱动(PDD),这提高了设备的加入门槛。简单的说,Windows Phone 7 可能不会有一些搞笑的一次性外设,但这种方式让 OEM 厂商可以更加容易得编写驱动程序,从而总体上提高设备的性能表现。
上面那些东西你看不明白的话不要紧,只要知道一点,微软会更加更加严格的控制硬件供应商,这就够了。
Direct3D 图形加速,没有 OpenGL
游戏是当前移动设备上的前沿阵地,对于 Windows Phone 7 而言,内建图形设备是最重要的组件之一,在这块上,它与之前的 WM 以及 CE 设备稍有不同,现在的图形系统基于 Direct 3D 11 — 与之前的基于 1999 年发行的古董 Direct 7 的 Direct 3D 移动版有巨大的差别,Direct 3D 移动版甚至没有顶点着色以及凹凸贴图。由于采用了 Direct 3D 11,Windows Phone 7 的 2D 显示也是通过 Direct 3D 来实现的。
Windows Phone 7 并不支持 OpenGL ES ,当然这个不奇怪,微软嘛,这就给现行游戏移植制造了点麻烦,不过因为 Direct 3D 在其他 XNA 设备上使用非常广泛,所以不支持 OpenGL ES 也不是什么大问题。当然 OpenGL ES 肯定可以移植到这个平台上来,但没有微软帮忙的话性能会非常悲剧(没有硬件加速支持)。
无线连接
除了最基本的 GSM, CDMA, 和 WiFi 连接, 微软列出了下列连接方式:
- UMTS
- EDGE
- EV-DO
- EV-DV (这玩意都死了半个世纪了,哪的古董还在用这个?)
- GPRS
- HSDPA
- LTE
- 1xRTT
- WiMAX
所以呢,不管是哪个标准打赢了 4G 战争,对于微软来说都无所谓,它反正都支持,另外蓝牙也包括在内,包含了 HFP 1.5, HSP 1.1, A2DP 1.2 和 PBAP 1.0,有趣的是缺乏 SPP(串行端口配置) 的支持,这玩意经常用在外置的高精度 GPS 设备上,Android 开始也不支持这个,尽管据说很快就会支持了。
另外提一句,FM广播也是支持的,微软基本包括了所有的传输方式,当然国内那几个畸形儿不算在内。
统一文件系统
Windows Phone 7 使用所谓的 “用户存储”,在文档中这个被称为“统一存储系统”。也就是说它会把所有存储器,包括内置闪存以及外接存储卡看作一个整体来使用,所以最好是不要热插拔内 存卡,不然手机很可能死给你看。
如果存储卡被拔出,手机就只能打紧急电话了,不知道用户在街边买了一张更大更快的卡想要替换掉现在这张的时候会发生什么事,应该是有办法替换的。这个做法 对即将来到的 32GB 高速 microSD 来说确实是好消息。
整个用户空间可以被格式化为 TextFAT,这是 exFAT 文件系统的事务安全改进版,这是 CE 6.0 以及 Windows 7 都有的改进,同时,读取优先的分区,比如系统盘将会使用 IMGFS,这个可以在牺牲写入速度的情况下提升读取速度。
全手动摄像头控制
系统提供了全手动摄像头控制所需的所有参数,不过应该没有哪个厂商会神经到在手机上提供全手动控制的摄像功能。。。另外视频拍摄是支持,还有地理位置标 记。
用户及供应商定制
这个系统的定制能力不强,制造商和运营商可以更改手机的启动画面(不知道能不能支持动画),运营商也可以自定义墙纸、铃声、图标,当然用户也可以。
这只是对官方而言,用户的能力是无穷的,迟早 rom 也是能被随便捏的。
总的来说,这个系统拥有足够现代的结构和丰富的功能,尽管多任务上悲剧了,但如果微软想做的话并不 会太复杂,始终系统本身就是支持多任务的,这样的系统对于硬件的需求必定不会低,那现在越来越悲剧的手机待机不知道会不会再次缩水?Live ID 这玩意除了同步服务和激活以外还有没有其他的功能?WP7 如何和 Xbox 360 互动?这个系统对于社会化网络的支持又会怎样?这些都是未知数,但从目前看来,游戏上不会是什么问题,开发也相对容易,如果能有良好的用户体验,并不是没有搅局的能力,微软这次也许是走在正确的道路上了。