现在的位置: 首页 > 综合 > 正文

Mobile Dev Day – WP7优秀应用经验分享日总结

2012年11月28日 ⁄ 综合 ⁄ 共 2132字 ⁄ 字号 评论关闭

今天下午有幸参加了Mobile Dev Day移动技术研讨沙龙活动,主题是“WP7优秀应用经验分享日”。活动中来自新浪微博、Viva电子杂志以及OpenXLive团队的朋友分享了一些他们在WP7平台上的产品的一些心得体会。

新浪微博

新浪微博主要是由汪佐怀进行讲解。对于WP7的主要有以下几点:

  1. 整体架构采用MVVM模式。

    MVVM在WPF/Silverlight/WP7中算是很常用的一种模式,相信大家都不陌生。同时也提到了WP7下MVVM模式的Command支持的不够好。

    新浪微博的演讲结束后,去请教他们的主要开发者,了解到他们目前对MVVM模式的Command实现也是基于MVVMLight的扩展。

  2. 主界面微博列表的显示

    新浪微博的列表显示采用了LazyListBox控件。LazyListBox控件主要用于比较长的items显示,例如文本+图片。它可以使你在滑动的时候可以使用不同模板,例如滑动时只加载文本,滑动停止时加载文本+图片。

    汪老师同时提出为了保证滑动时候的流畅,建议在滑动的时候停止一切网络请求。在提问环节中,有人问到为何不单独开启线程请求数据。汪老师解释单独开启进程同样会使用系统资源,使滑动不够流畅。个人觉得应该没有人会在UI线程进行数据请求吧。

  3. 图片的显示

    由于WP7中没有原生支持GIF图片的显示,所以新浪微博采用了imagetool来实现。

  4. 缓存的处理

    在开发过程中对隔离存储空间的监控通过Isolated Storage Explorer,这个大家想必都了解。据说在Mango中就可以直接查看了。

    根据现场观众提问的回答,新浪微博目前在隔离存储空间缓存200条最新微博(不确定,汪老师说的是大概)。

  5. 微博程序的换肤

    新浪微博目前提供了三种皮肤选择,两种白天一种夜间模式。切换皮肤后必须重启才能生效。

    之前也给WP7的应用做过皮肤,其中的类似皮肤资源文件一旦加载的确是无法修改的,只能通过重启生效。

  6. 其他

    汪老师同时也讲了许多其他的内容,包括以前Windows Mobile平台上的一些开发经验。

    Pivot控件的一个问题,例如跳转到的目标页是一个Pivot页面,跳转后想显示的PivotItem的Index不是第一个(还有第二个、倒数第一个),那么只能在页面的Loaded里让他的SelectedIndex改变为预期值。这时候的页面会有一个滑动翻转效果。之前尝试过在Pivot页面的构造函数或者重写页面的OnNavigateTo或者XAML中SelectedIndex绑定ViewModel,在点击非第一个、第二个或者倒数第一个PivotItem均报异常,所以猜测Pivot控件只会预加载这三个PivotItem。新浪微博的开发者们目前也遇到了这个问题。

Viva电子杂志

Viva电子杂志主要是由陈禹辰进行讲解,并现场制作了一本示例电子杂志。内容要点如下:

  1. Viva电子杂志App的分类

    Viva电子杂志在WP7平台上的杂志应用主要分为两种,通用的客户端和单行本的客户端。通用客户端的数据是通过网络请求,单行本的数据则是打包到xap文件中去。目前通用版本免费,单行本版本收费。

  2. 杂志的缓存处理

    通用版本缓存保存前一天所浏览过的杂志内容,单行本版本内容打包到xap中,无需缓存。

  3. 制作一本单行本电子杂志

    讲解了如何利用Pivot控件结合WP7的数据绑定特性以及通过模板制作一本电子杂志。

  4. 实现自动化打包电子杂志

    通过修改项目文件(*.csproj)与WMAppManifest.xml文件内容,规范的杂志内容图片命名,配合命令行实现自动化打包。

  5. TextBlock控件内容过长的问题

    目前WP7上TextBlock空间的宽和高上限为2048px,超过这个数值的内容将被截断。由于高宽有上限,所以TextBlock显示的字符长度还与字体大小有关。Viva电子杂志的做法是不开放用户自定义字体大小,然后对每一页杂志内容的文本长度进行判断,寻找每500个字符前面最近的一个回车进行分割,然后显示在一个或多个TextBlock上。

  6. Pivot控件内存问题

    目前256M内存WP7上应用最多使用90M内存,512M为290M。在WP7的Pivot控件中,滑动过的页面的内存没有及时自动释放。

    Viva电子杂志演示了一个40页左右的杂志,当滑动到最后几页时,内存使用超过了290M,然后应用出现显示空白等异常。

    Viva电子杂志目前的解决方案是自己写了一个页面用来显示具体页得杂志内容,自己实现杂志的滑动效果,内存监视显示大约30-40M,是一种比较理想的结果。

OpenXLive

OpenXLive主要是由黄炜元进行演讲,主要讲解WP7的开发者如何使用OpenXLive的服务开发出更理想的游戏产品。

OpenXLive是Windows Phone 7上的游戏社交平台,为个人开发者免费提供游戏在线服务。他们目前提供在线积分榜、游戏成就、社交网络等功能。

在演示中,大约只添加了10行左右的代码,就能使用到OpenXLive的各种功能,实为WP7上开发游戏的得力助手。

除了丰富的演讲与技术交流之外,在场的观众都收到了WP7主题笔记本、贴纸、光盘、U盘。新浪微博、Viva电子杂志、OpenXLive还送出了抱枕、音箱、T恤等礼品。

抱歉!评论已关闭.