博客园 » 新闻 » Windows Phone
多开发过 Android 的程序员,表示 WP7 比 Android 流畅,再给你大家透露些微软为了掩盖 .Net 运行缓慢的例子。
1. WP7 SDK 提供的默认工程,都有一个启动的封面图片,默认文件名为 SplashScreenImage.jpg 这个图片,一般系统自带的应用为 EXE 格式由于使用 PE 加载器以 Native 直接处理 ARM 指令自然快,而第三方软件一般进入时都有一个欢迎屏就是为了掩盖托管语言的高效开发,低效运行等问题。
2. 同时在很多方面微软 WP7 优化的并不是说比 Google 的 Android 好,微软限制了后台应用的运行,比如最多不会超过 5 个目前在 WP7.5 Mango 上,所谓的第三方后台运行是通过 Background Agent 实现的,分为即时和资源敏感型,如果你的应用需要长期运行,就必须将这部分逻辑封装为一个 Dll 最终由 WP7 系统代理运行,和你的主应用其实工作在不同的空间,因为你的应用和后台代理虽然均为 Dll 但仍然独立。你的应用可能被结束了,而后台代理那个 dll 可能仍然还在工作,但是限制十分苛刻,比如说内存占用不能超过 5MB,否则随时被结束掉,很多 API 无法使用等。Android 有时候不流畅主要由于小 RAM 的设备了,过多的后台应用导致的,当然也有很多劣质的应用拖了 Android 的后腿。
3. 编码处理,WP7和 Android 应用对应 xap 和 apk 虽然均为 zip 压缩,但 Android 在清单文件上做了二进制的编译达到了性能提升,而 wp7 仍然为 xml 原本的 xaml 文件,除了运行效率低下外,应用的安全性存在着很大的隐患。不过由于 WP7 软件开发较简单,一般如果不是游戏类应用或算法涉及不敏感的可以不用考虑代码混淆,毕竟 .Net 的门槛太低了。同时 Google Dalvik VM 这个 Java 虚拟机上的类库功能强大型,至少是目前 WP7.5 Silverlight4 的 20 倍还多在功能上。随着 WP7 功能的增加,可能 Java VM 比 .NET Runtime 效率更高。
4. 由于 WP7 应用过多的依赖于 Silverlight,内部的 Uri 传递竟然使用字符串这样的形式,同时界面 .xaml 文件和 cs 或 vb 文件实现了 MVC,但在 Android 上我们通过 Intent 可以封装复杂的类型甚至是多维的字节数组,这也导致了代码混淆时 Java 依赖于 Package Name,而 WP7 依赖于绝对的路径,产生更复杂的情况。
5. WP7 运行的高效其实得益于微软严格的限制,就是界面要十分简单,无法实现复杂的效果,如果 Android 运行同样的简单界面性能会不俗,而 Android 当 CPU 和 RAM 于 WP7 相同时,基本上以临界点 1GHz 的 A8 和 512MB 的 RAM 或更高来看,同样的处理量 Android 远比 WP7 高效,在 UI 部分 Silverlight 的 Bug 就更多了,内部的实现方面其实比 Android 更臃肿复杂,很多国内用户感觉 Android 体验差,主要是国产山寨机或低端机使用 ARM11 这样的 CPU,小于 512MB 的 RAM 还捆绑了一堆垃圾后台应用造成的。
总之,微软今天仍然无视开发者体验,仅仅凭借 IDE 方面 VS2010 比 Eclipse 有优势,实在是太坑爹了,不苛求 Mac OS 版的 WP7 SDK,连 WinXP 都无法很好的兼容,微软的层层限制早晚会让开发者感觉这个系统不爽程度不亚于 iOS。
· 微软继续向WP开发者提供资金 最高60万美元(2012-04-07 11:04)
· 微软WP7速度挑战赛在香港获得完胜(2012-02-19 13:53)
热门评论
-
海十三 — 梦回千秋云断 发表于 02-22 21:061.SplashScreenImage.jpg启动屏幕只是加载数据时一种友好的显示方式,这个和低效有个毛的关系?android很多应用也有,那就是android低效?windows很多大型游戏也有类似的启动显示图片,难道它的效率就比linux运行低? 2.Mango不能超过5个这个是为了防止你后台程序滥用你的内存,android每次我解锁都得先叉掉后台一大堆运行程序,刚玩一会一看后台又tmd的一堆程序不知道什么时候自动启动了,还一直自动从网络下载数据,每月流量花我几十M都是小case,这又是哪门子的好? 3.WP7没做编译?兄弟你懂不懂xap,编译个小小的清单文件能带来多大的性能提升?性能提升不是看这种小打小闹。 "Google Dalvik VM 这个 Java 虚拟机上的类库功能强大型,至少是目前 WP7.5 Silverlight4 的 20 倍还多在功能上"。Dalvik 我没用过,讲20倍麻烦先拿出数据,或者别人贴出的证据,不要空口说。 4.WP7导航有时候确实使用字符串传递,很多时候也用相对路径(!注意,这里不是你说的绝对的路径,导航怎么可能现在还用绝对路径),按你所说,Android 上我们通过 Intent 可以封装复杂的类型甚至是多维的字节数组,这个有什么用么?封装类型进行传输?用uri?你没用过MVVM模式吧,ViewModel-Model 后台传输数据就可以了为什么用uri?解析uri不花时间?我没明白4想说什么?举例一下更复杂的情况先。 5.WP7界面简单?这叫简洁,能用简洁的方式吸引大家注意力,展示所有的信息为什么要用复杂的?满篇图片花里胡哨浪费精力很好玩? 还有“同样的处理量 Android 远比 WP7 高效”,你从哪得来的结果呢?OK,你X掉android后台的所有能叉掉的进程服务,wp不用X掉都可以,然后运行几个相对成熟的程序或者游戏试试你就知道你这句话的错的离谱了。 “在 UI 部分 Silverlight 的 Bug 就更多了”,以前用SL的时候确实有些bug,有些麻烦的地方,我不否认,但是很多版本更新时大部分bug都解决了,android的bug很少么?你从哪个版本开始做android的?每个版本更新你看android的update history,你自己看看修正了多少东西吧,世上还有没有bug的程序?来2两瞧瞧…… 体验差不要怪在硬件上,现在android动不动就双核,GPU,拼硬件?为什么拼硬件才体验好点?这其中的道理不说了 WP现在确实限制多,这是为了生态考虑,之后总会放开,up.WinXP不也有模拟器么,虽然不是官方的。想开发就得有环境,想一个xp通吃所有的平台开发,这本身也不是一件好事。当然xp有sdk更好,这点楼主没错,但是身为程序猿,这点问题还算问题么?不兼容就换个系统得了。 综上,我不是砖家,只是一个用过android、wp的小菜,android我本身也很喜欢,但是android性能比wp请述在下不能苟同,wp系统本身是个很创新的系统,只不过起步晚,现在限制过多,但很快微软会抛开这些限制,到时WP一个辉煌的时代估计就会到来。当然车头大转向慢,微软确实有很多时候反应慢,有时候不能尽快满足程序猿的需求,这点确实让人头疼。这也是很多大公司的通病。 我们不能知道未来怎么样,哪怕wp以后竞争中倒了,我们只需要知道一点,自己想干什么,自己喜欢做什么,just do it,over.
-
Gavin2010 发表于 02-22 18:40微软最失败的地方,就是不会请人写这样的狗屁
-
生鱼片 发表于 02-22 19:01说实话,真没觉得java开发比。net门槛高,多几个配置,多几个框架就高,哎。。。
-
_冻结_ 发表于 02-23 12:24你是安卓粉丝,没必要这样贬低wp7,wp7远比你印象中好, 枪文,绝对的,
-
我想我是青蛙 发表于 02-22 18:41啥也不懂的人写的文章
-
kennywangjin 发表于 02-22 18:45如果没有研究到CLR的层面,请不要随便妄言.NET的深度。 你所看到的不能反映整个世界,恰恰是你未曾涉猎的才是世界的真实存在。
-
猫之良品 发表于 02-22 20:22找个WP7的专家来说说话吧,不入流的程序员就只会嘴上说说而已,光骂又说不出个所以然,影响社区和睦。

