当前位置: 首页 > news >正文

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开发

参照上图的功能层次我们可以看一下每个层面进行开发采用的环境和工具。

环境开发语言开发工具部署工具
应用程序层CLRC#/VBVisual Studio 2010 for Windows PhoneVisual Studio 2010 for Windows Phone
OS层Native CodeC/C++Visual Studio C++ 2008 sp1 or other toolsPlatform Builder for Windows Phone
Kernel层(主要是BSP)Native CodeC/C++Visual Studio C++ 2008 sp1 or other toolsPlatform 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
      • Microsoft Press eBook Programming Windows Phone 7
    • OS和Driver开发,这个资源只向OEM开放,不过你可以这个链接获取到操作系统相关的以下资料(需要FQ,相信很多对底层感兴趣的人很有帮助)
      • Windows phone 7 architecture Guide
      • Windows phone 7 Customization Guide
      • Windows phone 7 OEM application development Guide

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。

http://www.jsqmd.com/news/1125970/

相关文章:

  • AI 编程工具内网离线部署方案
  • 如何用JavaQuestPlayer三步搞定QSP游戏开发:终极Java游戏引擎指南
  • Ventoy主题制作终极指南:从零打造个性化启动界面
  • 邢台矫正哪家好?
  • 抖店采购失败是什么原因1688下单失败怎么排查
  • 点估计与估计量理论 — 统计推断与估计理论
  • Translation-Agent安全实践:10个技巧保护API密钥与数据隐私
  • CentOS 7 系统管理实战全攻略:从基础到企业级运维
  • 数据库设计 Step by Step (6) —— 提取业务规则
  • 300元真无线耳机技术真相:为什么它成了性价比分水岭
  • Win11Debloat终极指南:如何用3分钟让Windows系统性能提升50%
  • Cadence 17.2 焊盘设计进阶:5步创建自定义Flash Symbol与负片连接
  • 5分钟搞定动作捕捉:FreeMoCap免费开源系统完整使用指南
  • Halcon 22.05 图像标注实战:paint_region() 生成3类分割掩码图
  • 渗透测试中的权限维持技术:从入门到进阶
  • S7-200 SMART V2.3 运动轴组态:3步完成步进电机点动/定位控制(附程序块)
  • 打印店预约系统-ssm
  • Codex App深度解析:从AI编程助手到并行开发工作流管理
  • 70天冲刺!9月PMP末班车倒计时:这些隐藏规则不知道,可能连考场都进不去
  • 本地AI绘画新利器:Codex与Cowart插件实现无限画布与精准编辑
  • 如何快速部署portal-application-license-monitor:5步完成FlexNet许可证监控配置
  • 平阳室内宴会厅布置攻略
  • Memora:微软给 AI Agent 装上了“不会忘事的大脑”——长期记忆效率提升 98%
  • 夏日清新新色登场!OPPOReno16半夏青开售
  • Claude Mythos Preview 发布后严重漏洞激增:安全还是营销?
  • Keras 2.15 实战:MegaFace 40人数据集CNN人脸识别,验证集准确率达92%
  • 运营负责人视角抖店工具要不要买先看团队每天浪费在哪些重复动作上
  • BMAD Loop:把开发循环的控制权,交还给确定性代码
  • 程序员应知——善于借鉴
  • Kafka Streams 实战:从状态管理到 exactly-once 生产落地