Window Phone 开发学习

1.开发环境搭建:

a、安装win7、驱动精灵安装驱动;

b、IDE:微软为wp7开发提供了免费的开发套件,http://msdn.microsoft.com/zh-cn/windowsphone/default进行下载,在线安装只需安装尚未安装的部分,提高安装速度;可与付费的visual studio共存;

  模拟器:GPU要求较高,windows7以上OS;

  手机:需注册,每个账号3部手机,每部手机3个APP;需安装zune,媒体api需安装WPConnect;

c、安装Silverlight for Windows Phone Toolkit:http://silverlight.codeplex.com/

2.API:silverlight 3-4主要部分+wp7手机独有API;

3.开发语言:开发者不能使用C++、P/Invoke调用native包;

4.UI设计:早期绝对布局resource --> WCF、WinForm控件作为对象编码 --> xaml拖拽与代码结合;

  xaml:实现UI设计人员与研发人员隔离开发;Expression Blend给UI设计人员使用,通过xmlns实现设计时数据;

  样式style:控件外观与内容分离设计;可使用wp7系统预定义的style;

  数据绑定:通过INotifyPropertyChanged实现数据类与控件显示的绑定,减少代码书写;ObservableCollection实现ListBox等多个控件的自动改变绑定;缺点:灵活性较差,可编程替代; 

5.silverlight页面架构:

一个app一个frame:在App.xaml.cn中RootFrame = new PhoneApplicationFrame();

RootFrame加载多个page:page不保存状态,每次重新生成;GoBack栈中可缓存;
uri别名:App.cs中可以进行uri别名映射;

6.page导航:NavigationService

简单string类型参数传递:uri后?&带的参数,NavigationContext中获取参数;

复杂object类型参数传递:在App.cs使用静态字段;

Navigate:新生成一个页面,并作为日志压入BackStack;较慢;

BackStack:每次GoBack从BackStack中出栈一个page,较快,可以RemoveBackEntry删除其中项,但不能增加

HyperlinkButton:内部也使用NavigationService;

7.横竖屏:SupportedOrientations

Portrait:人物肖像;

Landscape:风景画;

OrientationChanged:处理切屏事件;

8. 隔离存储:Isolated Storage

  每个App有自己的独立存储空间,通过IsolatedStorageFile.GetUserStoreForApplication()获得OS提供给该App的存储命名空间;分文件IsolatedStorageFileStream、设置字典IsolatedStorageSettings两类;

  每个App没有使用大小限制;受限于手机内存;App卸载后数据删除;

9. 基本控件:Control

MediaElement:播放本地/网络音视频;FMRadio.Instance收音机;

Image:显示本地/网络图片;

Button:HyperLinkButton、Button、ToggleButton开关、RepeatButton声音递增等;

Text:TextBlock、PasswordBox、TextBox;

10. 基本布局:Layout

Canvas:绝对定位;

StackPanel:小的简单布局;

Grid:整体布局;

Border:边界框;ScrollViewer:良好用户体验的滚动条;PopUp:默认隐藏的布局;

11. 自定义UserControl:ViewGroup

通过标准控件组合成的自定义控件,Silverlight Tookit是微软提供的利用基本控件组合成的自定义控件,有源代码级使用实例,使用时需在项目的Reference中手动加入;

页面切换动画:在App.cs中修改RootFrame = new TransitionFrame();在每个页面xaml中配置页面进入动画TransitionService.NavigationInTransition、页面消退动画TransitionService.NavigationOutTransition;

12.生命周期:单一职责原则

  wp7本身为多任务实时OS,但限制前台只能运行一个第三方App,墓碑时App进程关闭,内存释放;wp7本身后台运行多个任务;

  Tombstone:调用DeActived树立墓碑后,Wp可以杀死App,关闭进程,释放内存;可Actived唤醒App;

Launching:启动;App列表启动;

Closing:退出;主页Back键;保存持久数据到IsolatedStorage;

Actived:墓碑恢复;Back键、Back键长按选择使用墓碑恢复,从App启动列表不是墓碑机制,完全重新启动应用;可能永远不会恢复;结合Page中的OnNavigatedTo恢复数据;

DeActived:墓碑-Tombstone,圣经中上帝OS根据墓碑上的名字恢复;Wp7任务运行、Home键;保存临时数据PhoneApplicationService.Current.State[key]中;因墓碑可能永远不会恢复需要保存持久数据;结合Page中的OnNavigatedFrom使用;

10秒钟原则:操作超过10秒App会被Wp7杀死;

临时数据:TextBox中输入的文字、控件位置、光标位置等;

持久数据:用户设置等;

13. 启动器Launcher、选择器Chooser

Launcher如同火箭,调用后不返回结果;Chooser返回所选;wp7多任务;

wp7预定义的Task,task运行时App可能没有Tombstone,task返回后调用Actived、可能Launching、Chooser的Complete回调、OnNavigatedTo;PhoneCallTask例外,不调用Deactivated、Actived;

14. ListBox:较复杂的容器

ListBox.ItemTemplate:定义每个Item;

ListBox.ItemTemplate.DataTemplate:定义每个Item的组成,数据绑定;

SelectionChanged:选中事件,可以取出选中的Item;

数据更新两种方法:

  手动更新、赋值:通过listBox.ItemsSource=list<ItemData>;

  自动更新:结合ObservableCollection<ItemViewModel>、ItemViewModel实现INotifyPropertyChanged来自动更新;

15. 全景Panorama、枢轴Pivot:

全景Panorama:魅力香港维多利亚全景图片;Header、Item一体;建议3-5个item;大的背景图;最好不用AppBar;更适于娱乐、展示数据;一个Item可多屏显示;

枢轴Pivot:神秘西藏转金桶;Title、Header一体、与Item分离;建议2-7个item;每个item一个背景图;可用AppBar;更易编码选择Item;更适于商业、管理数据;

16. 推送通知Push Notifications:

中国2008奥委会(公司服务器)通过好莱坞名导(微软云、中介)找凤姐(wp设备、在微软云注册);公司服务器在微软云注册,微软云为每个wp分配一个uri;微软云不断询问公司服务器是否需要更新,有更新将通知推送给每个wp,wp的后台通知服务通知App;

分3种:

桌面的Tile通知:Pin到tile上的通知;

通知栏的Toast通知:wp发出通知,用户选择打开App;

后台Raw通知:App在后台接受处理通知;

17. 提交App到Marketplace:

混淆:www.preemptive.com/windowsphone7.html

检查权限:微软工具capDect生成列表;

微软验证文档:Windows Phone 7 Application Certification Requirements。

18. DeepZoom:微软提供工具制作,适用于大分辨率图像的平滑动画移动缩放;

转载于:https://www.cnblogs.com/toven/archive/2012/03/01/2357181.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值