设为首页 收藏本站
查看: 567|回复: 0

Windows Phone 7 开发小贴士

[复制链接]

尚未签到

发表于 2015-5-12 09:28:18 | 显示全部楼层 |阅读模式
  原文地址:http://timheuer.com/blog/archive/2010/09/16/windows-phone-7-developer-tips-and-tricks.aspx
  在Windows Phone Developer Tools和Silverlight for Windows Phone Toolkit正式发布之后,我今天听到很多声音。Jeff显然保存了今天下午保存了相关的只是列表。Jeff Wilcox是Silverlight团队的成员,并且已经一直在为今天的Silverlight for Windows Phone的发布而努力工作。他正在度假中但是依然决定工作在Silverlight上的开发者们一些明智的忠告。这里有些是很珍贵的---我希望在他们小时前能够抓住这些,谁知道他们能保留在twitter上多久。这些读起来就像是在Windows Phone上开发出杰出软件的真谛……
  
       
  • Panorama看起来漂亮,但是Pivot将会提供更快的启动速度。   
  • 你同样可以为Pivot设置背景图片。你将不会得到视差效果,但是这是另一个可选项。   
  • 要清楚创建了多少pano和pivot。当你有很多视图和图片时,内存将会消耗很快。   
  • 即使你拥有一个30k的压缩图片,在运行时他将会被解压缩并且将会占据好几M的内存。   
  • Pivot和Panorama同样能够拥有UI元素的header和title,但是你将会需要应用自己的样式(字体和大小)。   
  • 记住UI元素大于2000x2000像素的是缓存成图像在Windows Phone 7。我们知道这并不完美,但是注意他?   
  • 设置   
  • 五分钟内一个slideshow应用:Pivot必须是空的Header和Titl以及项目标题。记住内存使用。   
  • 很多人尝试使用panorama&Pivot创建“wizard”界面。请不要这样做,谢谢“以UX之名”。   
  • 布局是一个杀手,但是就像死亡,你最终将会为此付出代价。   
  • 所以尝试延缓载入控件和页面,一个拥有十亿数据项的Panorama由于布局原因将会永远也不能加载完成。   
  • 如果你没有使用PerformanceProgresBar,我将给你@JustinAngel   
  • 如果你的应用要在一台真的机器上快速启动,请不要使用splash屏幕。   
  • 这是真的。你的六核的机器上运行wp7的模拟器并不是代表他们在真实机器上的表现。注意!   
  • 我们先前讨论了性能……Content而不是Resources代表图片意味着更快的启动速度。   
  • 如果你使用Panorama,一个Resource背景将会比Content加载的更快。   
  • 记住如果要通过marketplace,你的应用不能使用超过90MB的内存。   
  • 然而在超过大于256MB内存的机器上你可以使用更多。   
  • long deviceTotalmemory=(long)DeviceExtendedProperties.GetValue(“DeviceTotalMemory”);   
  • long applicationCurrentMemoryUsage=(long)DeviceExtendedProperties.GetValue(“ApplicationCurrentMemoryUsage”);   
  • long applicationPeakMemoryUsage=(long)DeviceExtendedProperties.GetValue(“ApplicationPeakMemoryUsage”)   
  • 你的组件线程应当那个始终保持60fps的刷新速率,#wp7dev的性能计算:http://bit.ly/busJIi   
  • 如果你的UI线程被卡住了,你的组件线程将会同样被卡住~记住你的BackgroundWorker   
  • 不行的是桌面Silverlight中的Analystics类型现在手机上不具备,因此你不能使用常规的方式来测量CPU   
  • 拥有一个独立的DispatcherTimer将会影响你的电池续航能力。聪明的抉择吧。   
  • 你可以设置Pivot的前景色属性来设置title和header字体颜色   
  • 考虑到UX以及技术原因,在Panorama或是Pivot中放入一个地图控件是不推荐的。导航到一个二级页面吧。   
  • 请使用字体属性而不使用硬编码或是默认字体。   
  • Panorama和Pivot期望有距左/右12px的空白,这是基于UX原因的。默认样式是拥有的。   
  • 所以如果你有东西在Panorama和Pivot有0px的留白时,你的UX将会失败的。   
  • 填充比例是超级重要的,请保持在2.5之下。   
  • 什么好似填充比例?1.00意味着每一个框都将会填充整个屏幕。   
  • 检查你的程序是否有额外的不需要的背景颜色等~他们会影响性能。   
  • 那个性感的标题会影响吗?使用Peter的操作http://bit.ly/90Z1yR或是查看MSDN的文档。   
  • 使用一个简单但快捷的方法进行单元测试将会成为可能,遮掩感谢sl unit text fx.http://bit.ly/a0DWah   
  • 只在你必须时才用Dispatcher.BeginInvoke。查看SmartDispatcher(ps old code sry)http://bit.ly/axHh36   
  • 如果有一个宽的Panorama,设置你的条目方向为Horizotal   
  • 查看缓存,设置vis.settings来看下你的程序中什么将会被缓存http://bit.ly/busJIi   
  • 在list或是scroll视图中的项目将会被Silverlight for Windows Phone自动缓存成图片。   
  • 如果在你的程序中有一个progress bar并且其属性IsIndeterminate=“True”,即使被隐藏这些storyboards将会花费内存。设置为false。   
  • 我们的确在Windows Phone 7中努力将网络相关更多的移到背后的线程--希望他们能够起作用。   
  • 当一个Panorama载入,所有的题目都被缓存。对于Pivot,他是随着临街项依次完成。   
  • 当使用网络请求,看下是否应用能够允许你降级这些请求来提升性能。   
  • 如果你导航到一个二级页面,原来的页面将会依然存在---所以复杂的pano/pivot页面将会保存在内存中除非你主动控制。   
  • 和开发工具一同安装的“app deployment tool”允许你不需要所需要的资源在模拟机或是机器上测试应用程序。   
  • 我们的设置应当从isolated storatge中加载。isostore stream中加载图片比MemoryStream更快。   
  • 如果你的资源文件有Black或是White,你也许做错了。PhoneForegroundBrush,使用PhoneForegroundBrush。   
  • 如果你的空间的dep属性可以改变,属性的更改将会疆场发生在UI线程上。   
  • 缓存模式上的Animationg Opacity=“BitmapCache”元素=合成线程(GPU!)   
  • 在RTM工具中,scroll视图都自动含有“bounce”效果   
  • 如果你忽略了手机的主题(而是所有的收拾亮色背景,就像邮件应用),你的scrollbars 移动被重新应用主题或是你将看不到他们。   
  • 尽管数据绑定并不邪恶,一个可观的列并且拥有复杂数据并且数据项超过200k将会是邪恶的。   
  • web browser控件在加载完成之前不会允许你NavigateToString   
  • 如果你的应用拥有许多不同的web browser控件,想一下把他们固定成一个,这样你将会只需要加载他一次。   
  • Panorama被设计成一个首页。想想留白,而不是成吨的数据。   
  • 更好的性能将会获胜:当你使用UX所倡导的那样使用Panorama,他会很快。http://bit.ly/9zTxtU   
  • 这些为#wp7的主题写的xaml?使得他们在%ProgramFiles%\Microsoft SDKs\Windows Phone\v7.0\Design\   
  • 抵抗住在每一个应用中使用Panorama的欲望。当使用正确时他是一个甜美的UX……但是这不只是因为~   
  • 抵制住iPhone渐变侵入你的应用。想想盒子外边!同样拒绝颜色条……
    所以正如你所看到的,他有条理的表达了这些要点。订阅他的博客并且在twitter上跟随他,其他的有用链接:
  
       
           
    • Jeff on Hanselminutes talking about Windows Phone 7 application performance      
    • Creating High Performance Silverlight for Windows Phone Applications (whitepaper)      
    • Shane Guillet on optimizing Windows Phone Silverlight Applications (video)   

    感谢Jefffen的分享!
  希望这些对大家有用~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-66138-1-1.html 上篇帖子: 最简单的Django安装方法(Windows 7) 下篇帖子: Windows 7下在DebugView中显示调试信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表