Windows Phone 7 培训总结
相信大家有所听闻关于Nokia基本上放弃自己的独立研发新的智能机操作系统Symbian和Meego,就在两天前6月22日,关于Nokia全球将有2800名员工转到Accenture的协议已经敲定,这次培训主要是为Nokia员工提供一个关于Windows Phone整体初步的了解,中国区诺基亚的研发主要在北京(亦庄和中关村),培训人数大约涉及200人左右。关于这次转型,诺基亚内部的员工表示非常遗憾,刚刚在欧洲发布的N9(采用Meego操作系统)让很多人更加表示惋惜。
手机操作系统
微软的Windows Phone 7的整体生态环境还是搭建的很不错的,以下是我总结的和Windows Phone和其他现在主流手机平台的核心能力对比。
| 多任务 | 硬件标准 | 用户体验 | 耗电 | 操作系统功能 | 应用 | |
| Windows Mobile | 支持多任务 | 只有推荐 | 差到中等 | 一般到厉害 | 一般 | 少 |
| Windows Phone (7.0/7.1) | 号称“支持”多任务,其实前端应用程序Layer是单任务 | 微软定义了严格的标准,所有OEM厂商需遵循 | 好 | 厉害 | 目前还有很多系统易用性的功能还没有开发,所以一般 | 少 |
| Android | 支持多任务 | 只有推荐 | 中等到好 | 厉害 | 强 | 多 |
| iOS | 单任务 | 不需要标准,只有Apple自己生产 | 好 | 厉害 | 一般,苹果开发的东西也是有限的 | 多 |
| Symbian | 支持多任务 | 只有推荐,可以适应很低的硬件配置 | 差到好 | 省电 | 强 | 中等 |
Windows Phone 7架构
Windows Phone 7的系统内核还是Windows CE,它是基于Windows CE 6.0 R3版本,所以从这个层面来讲操作系统内核基本没有变化,主要是将Shell和Application Layer的东西有较大变化,Application Layer是采用了.Net Framework托管的环境CLR,有两种编程Framework,Silverlight和XNA。以下是系统软件架构图:
更细致来看Windows Phone分成四个Layer,以下为Rich总结的四个层面:
- CoreKernel is the indivisible minimum kernel (controlling the processor, memory and critical hardware)
- Kernel includes everything else that runs in the kernel (e.g. logical kernel abstractions including threads, processes, etc., networking stack, device drivers, printer drivers, graphics & media drivers, KTM, ETW, etc.)
- CoreOS is the core (mostly user-mode) OS substrate upon which the OS itself depends (e.g. Win32, COM, OLE, RPC, WMI, DirectX, etc.)
- OS is the remaining set of other high-level essential and non-essential features that may, or may not, be installed by the OEM/user/etc. (e.g. Explorer, Silverlight, .NET, Media Center, IIS, etc.)
WP7开发
参照上图的功能层次我们可以看一下每个层面进行开发采用的环境和工具。
| 环境 | 开发语言 | 开发工具 | 部署工具 | |
| 应用程序层 | CLR | C#/VB | Visual Studio 2010 for Windows Phone | Visual Studio 2010 for Windows Phone |
| OS层 | Native Code | C/C++ | Visual Studio C++ 2008 sp1 or other tools | Platform Builder for Windows Phone |
| Kernel层(主要是BSP) | Native Code | C/C++ | Visual Studio C++ 2008 sp1 or other tools | Platform Builder for Windows Phone |
- 开发工具下载:
- Visual Studio 2010 for Windows Phone可以通过微软网站免费下载
- Visual Studio C++ 2008 sp1是需要花钱买的
- Platform Builder for Windows Mobile的时候是可以公开下载的,但是for Windows Phone版本只面向OEM厂商开放,做ROM就是用这个工具。
- 开发资料下载:
- 应用程序开发的资料微软提供的非常丰富,推荐WP7 Jump Start Video,Training Kit 和Developer Document
- OS和Driver开发,这个资源只向OEM开放,不过你可以这个链接获取到操作系统相关的以下资料(需要FQ,相信很多对底层感兴趣的人很有帮助)
WP7应用程序开发
相信博客园的高手们最感兴趣的还是应用程序开发,即Silverlight和XNA的开发。其实在这个两天的培训中,主要涉及的也是将Windows Phone 7作为一个黑盒子展开的,即上面软件架构图中浅蓝色内的灰色部分,应用程序开发,我们从这些方面展开介绍Windows Phone 7。
- Platform Overview (WP7的硬件标准,软件架构,生态系统)
- Metro UI (UI设计样式,Tile,Glance&Go, Panaroma)
- Build WP7 App PPT (开发工具VS + Blend)
- Page Navigation (程序内和程序间导航)
- Execution Model (程序生命周期,休眠和墓碑)
- Data Binding(MVVM,数据绑定)
- Sensor and Gesture(重力感应器,陀螺仪,指南针,GPS)
- XNA (2维和3维游戏)
- Push Notification(Tile,Toast,Raw)
- Mango New Feature (中文,SQL,后台服务【15秒每30分钟】…)
详细的开发过程,我想大家可以通过微软的教程进行阅读,而且基本上就是和桌面应用开发一样,所以如果你曾经开发过Silverlight/WPF或XNA的话,那基本上不需要花费什么功夫就可以开发WP7应用。在这里我想讲几点或许对你有用的地方。
1. Xaml Tree
WP7中主要的LOB应用都是Silverlight应用,对于没有接触过XAML的开发人员来说,深刻理解它需要一个过程,因为这个和WinForm的界面表达方式不一样。在Silverlight中,我觉得Logical Tree和Visual Tree是非常重要的一个环节,简单理解XAML就是, 通过Xml的方式来构造对象,再具体一点就是
- 每个Xaml中的XmlElement元素都可以在.Net framework中找到相应的Class,你每在Xaml中加入一个XmlElement,等价于你在C#代码中new一个这个类的一个实例,同时通过XmlAttribute来设置该对象的Property的值
- 通过XmlElement的层级结构来体现父亲儿子的控件关系,等价于你在代码中parentControl.Children.Add(childControl)
更多关于Tree的信息,请阅读MSDN。
2. Page Stack
WP7的每个Silverlight应用程序由多个Page构成,后退键可能在你的程序内部的不同页面跳转,也可能在不同程序间跳转。在理解WP7的Page Navigation的时候,可以通过Stack的方式来理解。
- 后退键:出栈。
- 开始键(包括通过开始中打开的程序)和搜索键:入栈。
- 程序切换(长按后退键):将栈中某一个应用程序在栈中左右的页面移到栈顶。
通过这样的规则可以比较方便的理解和分析在任何时候用户点击后退键将发生什么情况。还有一个事实需要说明一下,在WP7中,同一个应用程序在系统中只能有一个实例,意味着你如果开着应用程序,通过开始键再打开一个,系统会把你原来那个实例杀掉。
3. Data Binding
Data Binding是微软实现将两个对象的属性之间建立桥接关系的一种便捷方式,Target和Source有三种绑定方式,OneTime,OneWay和TwoWay,一般来说你开发的应用程序通过MVVM的模式来进行设计,将数据和界面分离,然后通过Data Binding的方式自动关联界面的空间和你Model的数据。所以一般Target是你的UIElement,Source是你的ViewModel,当然你也可以将UIElement作为Source绑定到另外一个UIElement进行联动,更多信息请参考MSDN。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐





所有评论(0)