Jaa


Windows Phone 8.1 开发技术概览 (Universal APP)

前一阵真的比较懒 WP8.1 已经出来这么长时间了现在才更新BLOG让大家久等了,今天我先为大家介绍下 WP 8.1的开发框架,什么是微软所推崇的 Universal APP,以及我们要开发 Universal APP的时候要注意哪些内容。

如果是您是一个刚刚接触 WP开发的朋友可以先看下我之前的文章了解一下故事背景:Windows Phone 8 与 windows 8 开发技术概览

首先给大家完善一个概念 - 那就是 Windows Phone 8.1 和 Windows Phone 8.0 的区别

1. WP8.0 的开发架构是基于 silverlight runtime 运行时

2. WP 8.1 的开发架构有两种 silverlight runtime /  Windwos XMAL ( 等同于Windows 8.1 ) 运行时

今后我所说的 Universal APP 是基于 Windows XAML 运行时的 包括以后我会详细介绍 WP8.1 的新 feature 也会基于 Windows XMAL 这套框架下的内容进行主要介绍。

image

上面这张图是我们最新的 Windows & Windows Phone 8.1 的开发平台架构图在这里我们可以非常清楚的看到,蓝色部分是 universal 的 其中包括的 WinJS 、C#、VB、C++  只有 silverlight 是Windows Phone所独有的,所以说如果我们想开发一个 Universal APP 可以基于一个 Windows 8.0 /8.1的开发架构下进行扩展到 WP 8.1 上来,这个过程是非常方便的。

另外之前我也为大家介绍过在WP8.0中如何共享代码,在 8.1 universal app 中我们可以分享更多的代码并且非常的方便, 这个common的内容提升是一个相当大的飞跃(从8.0 共享 27% 提升到了 8.1 共享 77%)所以我们在开发的过程中可以非常方面的share代码,并且在VS2013中可以使用universal 的应用模板进行代码分享。

image

接着我跟大家介绍一下 Windows Store Universal APP 在VS2013中升级 Update 2 安装WP 8.1 的开发环境后,我们会看到 Universal Apps 的模板(同样在 WinIS 和 C++ 中都有universal模板)

image

image

这里是universal APP 的项目结构,在一个SLN里面自动的创建了 WIN8.1 和 WP8.1 的应用project 并且 还有一个 Shared project,做过WP8.0开发的同学肯定注意到了这个Shared project 中有一个 app.xaml 和 app.xaml.cs 文件 这就意味着,WP的生命周期和 Win 8.1 一致了,小伙伴们不用在处理墓碑化啦。(Silverlight 架构下还是有墓碑话的),并且我们在Share project 中的文件会自动分享到 Win8.1 和 WP8.1中去 并且,在WP8.1 和Win 8.1 中有可以定义平台所特有的内容。

并且universal APP 也支持 Windows Runtime Components

image

另外在 Windows xaml 框架下我们可以我们提供了很多基础控件的 universal ,换句话说就是相同的控件运行在不同的平台上的效果不样,例如: Hub ,AppBar/CommandBar,Date/Time Pickers and List Pickers,ListView,Multi-select; containers, swipe selection,Flyouts,Media。

当然还有完全相同的,可以更容易的 share 代码。

image

image

 

这里肯定有朋友想问我 按我以前开发的 8.0 silverlight 应用怎么办?可不可以升级到8.1呢? 答案当然是肯定的! 可以升级到8.1,但是要有一些问题要注意,我也在这里给大家介绍一下。

首先在WP silverlight 8.1 我们可以从 8.0 的应用直接升级上来,非常的方便,这里要注意的是有一些功能目前只有在 silverlight 框架下可以使用, 在 Windows Xaml 中暂时没有的:

也就是说如果你的应用在8.0中使用了一下功能,并且你想在8.1中继续使用,那么你一定是用 silverlight 这套框架。

image

升级注意事项 - Breaking Changes

但是这里我有一个特别注意的地方: 如果你的WP silverlight 8.0 应用升级到8.1 用到了一下两个功能那么你就要斟酌一下,更新的方法了。

Background Audio 不在支持,在8.1中需要您从写成 background task

Continuous background execution agent 也不再支持, 同样也需要使用 background task 代替

实现方法请参考 Windows 8.1 应用开发后台任务概述(Windows XAML)

image

所以说我们在选择升级或者全新开发一个WP8.1 应用的时候有几种选择。

image

 

1. 如果我们只是想做一个WP 8.1 的APP 那么任何一个开发框架都适合。

2. 如果我们已有一个 Windows 应用商店的应用,那么我们选择 Windows Xaml 框架开发可以最大的复用已有代码。

3. 如果我们的应用要使用 锁屏,lense,或者VOIP 这类功能那么我们只能选择 WP silverlight 的开发框架。

4. 如果是一个音乐应用并且要使用后台播放那么,只能使用 8.0的WP silverlight 框架或者 WP 8.1 Windows XAML 框架。

5. 如果是一个现有的 WP Silverlight 项目我们可以选择升级到 Silverlight 8.1 或者 重构到 WP 8.1 Windows XAML 框架。

 

今天我先给大家接招这么多内容,后面我会继续给大家介绍 WP8.1 的新feature 敬请大家期待!

欢迎大家在这里和我沟通交流或者在新浪微博上 @王博_Nick