Windows Phone 8.1 学习之路
前几天看一哥们写的“Android学习之路”一文很不错,遂也写一篇Windows Phone的学习之路。
开发环境
台式机
-
不管是台式机还是笔记本,建议配置在I5+8G以上,I3+4G的话就别考虑用模拟器了,真机跑都挺费劲。
-
如果用的是奔腾或AMD的CPU,并用要使用模拟器开发的话,要注意可能CPU不支持虚拟化导致基于Hyper-V的模拟器无法运行。
手机
- 买一台开发机还是很有必要的,如果预算紧张,可以考虑买一台最便宜的Lumia 525,甚至去淘宝或一些WP社区上找二手的htc8s或Lumia520。中高端就不在这推荐了,超出本文范围。
- 我基本上不怎么用模拟器开发,因为模拟器上没有各种sensor(虽然可以模拟,但还是麻烦),手势操作也不方便,并且显示效果与真机也有些许差别。
操作系统
-
开发WP8.X最低要求是Windows 8.X专业版以上,如果要用Hyper-V的话,还需要64位。
IDE
- 建议直接安装Visual Studio 2013,直接内置WP8的SDK。VS2013的Update2则带有WP8.1的SDK。
- 安装的时候注意把Blend勾选上,它是开发XAML的利器。
基础概念
Windows Phone 的手机版本
- Windows Phone 7.x,已被微软抛弃,不能升级到Windows 8.x。故也不做过多讨论。
- Windows Phone 8.x,向下兼容Windows Phone 7.x开发的应用。
Windows Phone 的官方资料:
Windows Phone 开发基础
- 开发语言
- C#,开发应用的首选,开发资料较多。
- C++/CX,开发3D游戏的首选,以及不熟悉C#的选手也可以用它开发普通应用。
- HTML+JS,有web开发基础的开发者首选(但是较小众,个人不推荐)
- 开发库
- 对于Windows Phone 8.1,可用的类库有两大块:大量为WP准备的Windows Runtime 和 少量为WP准备的.NET。
- 在上述两个库出现相同功能的API的时候,优先使用Windows Runtime,因为在移动设备上,它才是未来(千秋万代一桶浆糊)。
- 少数C++选手还可以使用个别的Win32 API。
- UI技术
- Windows Phone 8.0之前一直用的是基于Silverlight的XAML技术作为UI展现。WP8.1仍然有部分延续,但个人建议不要再追随【已死的】Silverlight。
- Windows Phone 8.1之后开始采用基于Windows Runtime的XAML技术作为UI展现。这两种XAML大致相同,但主要控件有不少的区别。
- Windows Phone8.0就开始支持Direct3D 11开发游戏,而从8.1之后开始支持Direct2D和DirectWrite的直绘。但是要注意:不支持OpenGL(仅支持部分的WebGL)。
- 关于XAML
- XAML是一种类XML方式的定义界面的技术,不仅可以定义布局和其中的控件元素,设置控件的属性,事件,还可以直接绑定数据。
- 学习XAML可以先从布局控件开始,然后是一些简单的文本控件,按钮控件,选择控件和操作栏控件。最重要的是数据列表控件,因为涉及到性能优化、数据绑定、自定义模板,动画等。
- 关于数据存储
- 数据可以存储在应用内,与其他应用完全隔离。使用ApplicationData类。
- 数据库,推荐使用SQLite,但是要注意SQLite的读共享,写独占的线程/进程特性,以及一些性能优化的Tips。
- 也可以存储在公共区域,如图片,视频,音乐,下载等。使用KnownFolders.XXX来访问。
- 还可以放在云端在多个设备间同步。可以使用Azure,OneDrive(一定容量的免费)或其他云存储。
- App的生命周期
- 打包
Windows Phone 开发进阶
- 关于磁贴(tile)
- 后台进程
- 普通WP应用只能创建有限运行时间和功能的后台进程(与苹果类似)。
- Windows Phone 8.1的后台任何可以由某个条件触发启动。
- 进程间通信
- 多媒体
- 图片处理。可以使用原Nokia的SDK。
- 视频处理。如果只是简单的裁剪什么的,可以使用自带的MediaClip类。要做编解码什么的还是用Media Foundation吧。
- 音频处理。先看一下支持的格式,免得瞎许诺了实现不了被老板骂。
- 地图
- 推荐使用Here地图的基础地图数据服务和一些数据查询服务。
- 还有高德。
- 各种传感器
- 加速计,指南针,陀螺仪,倾斜仪,光感等。
- 可以参考施烱的一篇好文。
- 通信
- WiFi Direct,不用借助路由器的点对点通信。WP8.1以后支持。
- 蓝牙4.0,低功耗,距离长,Profile多,可穿戴设备普遍采用。
- NFC,叫了几年也没起来的东西,个人不怎么看好。
- 前瞻
- 如果你是新开发者,建议直接选择基于Windows Runtime的WP8.1 App模型。
- 如果你要迁移WP8.0的应用,时间充裕的情况下,建议也直接迁移到基于Windows Runtime的WP8.1 App模型。
- 如果你非要迁移到基于Silverlight 8.1的WP8.1,不方便与Windows 8.1共享代码不说,SL目测将不再维护。
- WP8.X将还会有几个 GDR X,多数会是基于高通平台的硬件更新之上的更新。
- 目测在未来的WP9上会与Windows9更好的共享代码,也许App可以直接互运行了就。
设计
分辨率
- 总的来说,分为15:9,16:9,16:10。
- 按绝对分辨率来说的话,从480*800,480*854(用于3个软物理键),到768*1280,720*1280,800*1280,再到1080P,后续可能还有2K和4K。(也慢慢碎片了)
我也只懂点分辨点,交互设计和视觉设计完全不懂,提供几个链接吧
- 设计guide line,这个要么好好的理解,要么就随便看一下就行了,否则半瓶水的功夫只能设计出让人感觉都是“大色块”的应用。
- 交互模式
- 视觉参考
- 可用资源
- 从Longlistselector到SemanticZoom的变化
- 从Panorama到Hub的变化
其他
- WP 开发者生存现状
- 个人开发者:大部分入不敷出,为了养家糊口加点广告,还要被骂。
- 一线互联网App开发者:版本更新缓慢,升职加薪无望,跳槽机会少。
- 二三线互联网App开发者:没有话语权,迷茫,面临转平台的威胁和诱惑。
- WP手机厂商App开发者:原Nokia北京的应用部门几乎被微软一锅端。
- 销往的国内WP厂商现状
- 微软移动(原Nokia):唯一一家真诚地坚持WP的厂商,然而在近半年来一直没有新机发布。930叫了一年了到现在影子也没看到。
- 三星:WP7时代动作很大,WP8只出过一款Ativ S,骗完了安卓的专利费就不干了。
- HTC:8S和8X是现存仅有支持电信的WP手机,恐怕现在也只有二手了。
- 中兴/华为:低端的W1和W2之后也再无音讯。
- 海信:不声不响地就发布了WP8.1的机器,并且将在本月上市。暂不说质量,先赞一下其效率。
- 联想:一直在传,却一直未发布。该说什么好呢?
- 酷派/金立/TCL/天语:据说都将会发布自家的WP8.1手机,还是很值得期待的。
- 呼声
- 期望此次裁员能狠狠地鞭笞微软这头龟。最起码每半个月能发布些利好消息。
- 从WP7坚持到现在的WP小伙伴们的耐心和信心已经快被消耗殆尽。希望在哪里?
- 说好的在action center中直接开关3G呢?
- About me
- 微软平台开发者
- WP开发者
后记:
欢迎各位向我推荐一些好的WP Blog文章,以充裕本文中的一些空缺链接和段落。
如果你觉得本文对您有用,请点赞。
欢迎转载,但请标明出处。