天极传媒:
天极网
比特网
IT专家网
52PK游戏网
极客修
全国分站

北京上海广州深港南京福建沈阳成都杭州西安长春重庆大庆合肥惠州青岛郑州泰州厦门淄博天津无锡哈尔滨

产品
  • 网页
  • 产品
  • 图片
  • 报价
  • 下载
全高清投影机 净化器 4K电视曲面电视小家电滚筒洗衣机
您现在的位置: 天极网 > 开发>新闻>Win Phone开发对内存要求很高

开发者专访:Win Phone开发对内存要求很高

天极网开发频道2012-06-29 06:00我要吐槽

  微软在近日举办的Windows Phone开发者峰会上正式发布了Windows Phone 8操作系统。在过去的一年里,Windows Phone在应用市场方面有长足的发展。据微软官方公布的消息称,今年Windows Phon应用商店的应用数量已超10万,由于WP8采用了和Windows 8一样的内核,应用数量未来极其可观。很多的开发者纷纷将目光投向了Windows Phone平台去寻求梦想和发展的机会。

  天极网针对Windows Phone在开发过程中常遇到的技术问题,并找寻了资深的开发者进行了详细解答,以下是专访实录:

  1.面对初学者而言,Windows Phone在入手方面优势和不足

  开发上手比较困难,Windows Phone系统为了适应Windows Phone手机系统必须内核比较小的特点,我觉得功能剪裁的有点过分了,字符编码格式居然不支持UTF8格式。在开发WP7版天极数码的过程中,由于后台提供的需要的json脚本和网页都是GBK格式,而程序需要将网页内容下载下来,重新编排格式排版,(不是使用浏览器控件直接加载网页,这种情况加载GBK格式网页是没有问题的), 下载内容后,无法转换成UTF8格式,也无法重新在浏览器中正确显示内容,中文的都是乱码. 在解决这个问题的过程中,我曾向自己在客户端实现转码,但是最后没能实现。最后的解决方案是有后台转成UTF8格式后再传给客户端。这一点与IOS形成鲜明的对比, IOS系统默认支持的字符编码格式包括比较多,WP&只支持较少的几种,编程十分不方便。

  2.在Windows Phone开发过程中,需要注意哪些地方?

  内存的问题,WP7在内存小于250M的Windows Phone手机上,程序最多使用的内存只有90M, 在内存大于250M的手机上,最多占用大概200M的内存。在编程时必须特别注意内存释放问题,另外同时加载的图片的资源不能太多,否则很容易造成程序崩溃。IOS系统也有问题,但是感觉要比Windows Phone宽松多了。在WP7天极开发的过程中遇到的最棘手的问题就是内存使用过多的问题,并且内存泄漏很不好找。可能由于个人水品问题,一直没有找到一个能完整查找内存泄漏的工具。在网上搜索了若干次,在找到一边如何查找内存泄漏的文章,其实就是最笨的方法,将代码一行一行的注释掉,为类添加析构函数,在析构函数中设置断点,看看到底是那句代码照成析构汗水没有调用。调试结果是:凡是设置函数指针,指向其他类中的成员,都必须在类析构之前设置为还有很多其他的类似情况。需要特别注意的是Image 图片的释放,当Image 控件显示一幅图片时,如果只是将Image.image设置为Null, 和将图片Bitmap本身设置为null, 还是不能释放图片内存,必须从界面中删除Image控件,才能完全释放图片内存.

  3.Windows Phone控件属性在编译时,应注意哪些问题?

  其实这还是属于内存的问题. 程序中会大量使用ListBox显示数据,数据的每一行都有图片。默认的ListBox显然不能很好的解决内存的问题。在网上搜索后最后使用了开源的LazyListBox解决问题,LazyListBox通过只是显示可见部分的List Item能够显著的减少内存占用量, 当然还是需要自己编写相关代码释放不显示的图片内存,和加载显示图片的部分。

  4.WebView组件在开发中如何设置

  如果在Pivot 或Paranoma 控件上添加WebVie控件,就不能左右翻页, 因为WebView会截获左右翻页的消息,而父控件不能得到消息,因此无法翻页。这是目前WP7版天极数码还没解决的问题。只是使用了一个折中的不太好的方法,就是将webView设置为IsHitTestable设置为FAlse, 即WebView不响应任何鼠标(手指)操作,这样父Control就能正常翻页而Web本身上下翻页用其他方法实现, 但是没法实现上下翻页的重力加速效果(即手指离开后,继续按照一定的加速度减速继续滚动一段距离的效果)

  随着Windows Phone的日益推广,越来越多的开发者在这个移动平台上创造财富与梦想的同时,也会遇到更多的技术问题。不过,在微软开发者峰会上,刚发布的Windows Phone 8抛弃了WinCE内核,改用与Windows 8相同的内核,这个确实让对Windows Phone充满期待的用户信心大增,这意味着在未来的一段时间内,开发者会对Windows Phone更有兴趣,而对于消费者来说,Windows Phone应用增长的潜力也更大。

作者:Prince Wang责任编辑:王健楠)
请关注天极网天极新媒体 最酷科技资讯
扫码赢大奖
评论
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!