硬件上有区别,程序上都一样
解决方案 »
- 关于AlertDialog.Builder弹出自定义布局窗口问题
- 想问下View和Widget有啥关系啊?
- handlemessage 使用SimpleAdapter 报错
- Bitmap.createBitmap 内存溢出
- 学习了Rexsee的移动Web应用,不知Web开发是否会成为移动应用的趋势?
- 谁能给我讲一下android里的atts 谢谢了,这是自定义是属性还是系统属性?
- 如何获取当前的屏幕颜色
- 全志A20开发板 usb otg功能问题
- 如何在ViewPager的一个页卡里加载4个listView
- 新手求交APK生成问题,已知安卓程序代码,那个Eclipse什么的设置老有问题,请问用Dreamweaver怎么生成APK软件安装到手机上啊?!?!
- 手机通讯录号码归属地批量查询的问题
- 横竖屏切换时不想执行onCreate,无效果!
iOS 的推送
iOS 在系统级别有一个推送服务程序使用 5223 端口。使用这个端口的协议源于 Jabber 后来发展为 XMPP ,被用于 Gtalk 等 IM 软件中。所以, iOS 的推送,可以不严谨的理解为:
苹果服务器朝手机后台挂的一个 IM 服务程序发送的消息。
然后,系统根据该 IM 消息识别告诉哪个 Apps 具体发生了什么事。
然后,系统分别通知这些 Apps 。这个消息的内容是这样的:
应该说,苹果这种方式在技术上没有什么创新。但是,整个架构是很了不起的。 因为:
1
使用久经考验的协议,技术风险小。2
苹果勇于承担责任:
他需要维护一个代价不小的服务器集群,而且要为服务器的 down 机负责。选择低风险的技术方案 Bug 更少,减轻了用户的痛苦,这是构架师的功劳。
苹果承担责任,尽可能的减少了不可控的意外,保证了用户体验。
这,只能说是公司决策者的功劳。
(从侧面说明有个懂技术的 VP 是多重要而 Scott 走人了。。)他们带给用户的好处也是实实在在的。
1 安全。
只有登录过的开发者可以通过苹果的服务器推送。2 快速,稳定,可靠。
苹果掌控推送服务器和 OS 。3 更省电。4 让整个系统的体验更统一和简单。
不会出现杀后台这种脑残事。(不用大量 Apps / Apps 的服务为了推送挂后台)。
也不会出现 Apps 被杀就收不到推送这种脑残事(早一点的新浪微博 Android 版仍然如此)。5 开发容易。
当然,开发者还是要做些事情,比如维护个服务器什么的: http://www.ifanr.com/3979。但是复杂度无疑降低很多了。Android 的推送
Apps 挂后台一直是 Android 引以为豪的特性(虽然我真的不知道是好处多还是坏处多。。)大家挂后台等待推送就成为技术选择。当然, Google 事后也提供类似苹果的推送方式了。倒也谈不上抄袭,毕竟苹果的整个技术实现也没有什么特别创新之处。用户的电池? Apps 的开发者不会站在系统层面考虑的。他会假设其他 Apps 没有那么“不自觉”。而 Google 不强制的结果就是:没人真正为用户的电池负责。但是, Google 的方案也并非全是悲剧:
也因为整个技术方案非强制, Android 的 Apps 在接收到推送后的表现更为灵活。
像 Line 的 Android 版本可以在推送通知的 Popup 上直接回复, iOS 就需要越狱才能做到了。http://www.zhihu.com/question/20667886