f****o 发帖数: 708 | 1 今晚心血来潮,看了下相关文档,发现现在ios跟wp7都有system level的push
notification了,但是android还没有。在ios跟wp7上,所有需要push notificatio的
app都是跟os里面的某个system service联系,这样那个service就只用跟apple或者ms
的server保持一个共用的永久tcp连接,从而节省电池跟系统资源。而android上目前好
像还是挺原始的,每个app跟自己的开发商单独开tcp连接,这样如果有10个app要push
,那就要开10个永久连接,浪费系统资源。比如google voice app,几天才收一个
message,android可能待机一天电池就没了,而ios,wp7可以待机时间长一些。
有android开发经验的大侠来说说看我理解的对不对。 |
z**r 发帖数: 17771 | 2 看着不太对,主要逻辑上讲不通。难道wp7的手机用户经常有多个帐户连到同一个需要
push的server上?如果不是,怎么共享tcp session?还是得一个service来一个
ms
push
【在 f****o 的大作中提到】 : 今晚心血来潮,看了下相关文档,发现现在ios跟wp7都有system level的push : notification了,但是android还没有。在ios跟wp7上,所有需要push notificatio的 : app都是跟os里面的某个system service联系,这样那个service就只用跟apple或者ms : 的server保持一个共用的永久tcp连接,从而节省电池跟系统资源。而android上目前好 : 像还是挺原始的,每个app跟自己的开发商单独开tcp连接,这样如果有10个app要push : ,那就要开10个永久连接,浪费系统资源。比如google voice app,几天才收一个 : message,android可能待机一天电池就没了,而ios,wp7可以待机时间长一些。 : 有android开发经验的大侠来说说看我理解的对不对。
|
s*i 发帖数: 5025 | 3 码工第一条:Amdahl's law
我很怀疑这个东西占用很多电池。
ms
push
【在 f****o 的大作中提到】 : 今晚心血来潮,看了下相关文档,发现现在ios跟wp7都有system level的push : notification了,但是android还没有。在ios跟wp7上,所有需要push notificatio的 : app都是跟os里面的某个system service联系,这样那个service就只用跟apple或者ms : 的server保持一个共用的永久tcp连接,从而节省电池跟系统资源。而android上目前好 : 像还是挺原始的,每个app跟自己的开发商单独开tcp连接,这样如果有10个app要push : ,那就要开10个永久连接,浪费系统资源。比如google voice app,几天才收一个 : message,android可能待机一天电池就没了,而ios,wp7可以待机时间长一些。 : 有android开发经验的大侠来说说看我理解的对不对。
|
f****o 发帖数: 708 | 4
wp7的overview:http://msdn.microsoft.com/en-us/library/ff402558(v=vs.92).aspx
ios:
https://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificatio
nsPG/ApplePushService/ApplePushService.html
os只跟ms的server保持一个连接,os里面的多个app共享这个连接。app服务商需要通过
ms的server发notification。ios也是一样的实现原理,好像bb也是的。
【在 z**r 的大作中提到】 : 看着不太对,主要逻辑上讲不通。难道wp7的手机用户经常有多个帐户连到同一个需要 : push的server上?如果不是,怎么共享tcp session?还是得一个service来一个 : : ms : push
|
p***r 发帖数: 1098 | 5
【在 z**r 的大作中提到】 : 看着不太对,主要逻辑上讲不通。难道wp7的手机用户经常有多个帐户连到同一个需要 : push的server上?如果不是,怎么共享tcp session?还是得一个service来一个 : : ms : push
|
f****o 发帖数: 708 | 6
我觉得每个tcp连接都需要经常handshake保持连接,这个需要耗电池吧。
【在 s*i 的大作中提到】 : 码工第一条:Amdahl's law : 我很怀疑这个东西占用很多电池。 : : ms : push
|
i*****o 发帖数: 1714 | 7 新的android 也有类似的。不过要有google account,android market等等,所以我估
计大部分app还是用以前的,就象你说的,每个app自己pull自己的server。
ms
【在 f****o 的大作中提到】 : 今晚心血来潮,看了下相关文档,发现现在ios跟wp7都有system level的push : notification了,但是android还没有。在ios跟wp7上,所有需要push notificatio的 : app都是跟os里面的某个system service联系,这样那个service就只用跟apple或者ms : 的server保持一个共用的永久tcp连接,从而节省电池跟系统资源。而android上目前好 : 像还是挺原始的,每个app跟自己的开发商单独开tcp连接,这样如果有10个app要push : ,那就要开10个永久连接,浪费系统资源。比如google voice app,几天才收一个 : message,android可能待机一天电池就没了,而ios,wp7可以待机时间长一些。 : 有android开发经验的大侠来说说看我理解的对不对。
|
z**r 发帖数: 17771 | 8 多谢连接,看了一下,然后又看了一下android的,都类似http://code.google.com/android/c2dm/ 大家都有一个service来干这件事情
google的叫做C2DM,Cloud to Device Messaging
MS的叫做Microsoft Push Notification Service
apple的叫做Apple Push Notification Service
blackberry的叫做Blackberry Push Data Servers
而且粗看之下,google的更先进些,在mobile device上,android里面的需要push
service的application不需要运行,会有一个system level的Intent Broadcast机制在
必要的时候来唤醒相应的application。
Conceptual/RemoteNotificatio
【在 f****o 的大作中提到】 : : 我觉得每个tcp连接都需要经常handshake保持连接,这个需要耗电池吧。
|
z**r 发帖数: 17771 | 9 tcp 3 way handshake只是在建立连接的时候采用,session建立以后,只需要
keepalive就可以了,这个timer很长的,缺省都是2个小时以上
【在 f****o 的大作中提到】 : : 我觉得每个tcp连接都需要经常handshake保持连接,这个需要耗电池吧。
|
g*****g 发帖数: 34805 | 10 Check Android C2DM.
I don't know much about wp7. But I think
iOS's architectur forces you to use the push service they provide.
And it's very selective on what you can do. And if you don't do
that, the app is not active at all in background.
Android on the other hand, gives you more freedom there and feels
like PC. You can have service processes and that's why you see
battery drain.
ms
push
【在 f****o 的大作中提到】 : 今晚心血来潮,看了下相关文档,发现现在ios跟wp7都有system level的push : notification了,但是android还没有。在ios跟wp7上,所有需要push notificatio的 : app都是跟os里面的某个system service联系,这样那个service就只用跟apple或者ms : 的server保持一个共用的永久tcp连接,从而节省电池跟系统资源。而android上目前好 : 像还是挺原始的,每个app跟自己的开发商单独开tcp连接,这样如果有10个app要push : ,那就要开10个永久连接,浪费系统资源。比如google voice app,几天才收一个 : message,android可能待机一天电池就没了,而ios,wp7可以待机时间长一些。 : 有android开发经验的大侠来说说看我理解的对不对。
|
|
|
g*****g 发帖数: 34805 | 11 Not that long, there are gateways in between and many
will drop connection beyond one hour or less.
【在 z**r 的大作中提到】 : tcp 3 way handshake只是在建立连接的时候采用,session建立以后,只需要 : keepalive就可以了,这个timer很长的,缺省都是2个小时以上
|
f****o 发帖数: 708 | 12
看来大家的实现都是一样的,这我就放心了。另外android的并没有更先进,因为ios跟win7也是允许app不在后台运行也能收message的。在ios里面好像是app如果不在前台,10秒钟后自动suspend,不消耗系统资源跟电池,只有几类app允许在后台运行,比如voip,music。我个人更喜欢这种工作方式,在手机上其实multitasking对我没啥用,只要能快速唤醒就行。
【在 z**r 的大作中提到】 : 多谢连接,看了一下,然后又看了一下android的,都类似http://code.google.com/android/c2dm/ 大家都有一个service来干这件事情 : google的叫做C2DM,Cloud to Device Messaging : MS的叫做Microsoft Push Notification Service : apple的叫做Apple Push Notification Service : blackberry的叫做Blackberry Push Data Servers : 而且粗看之下,google的更先进些,在mobile device上,android里面的需要push : service的application不需要运行,会有一个system level的Intent Broadcast机制在 : 必要的时候来唤醒相应的application。 : : Conceptual/RemoteNotificatio
|
z**r 发帖数: 17771 | 13 the default tcp keepalive timer on most platforms is 7200 seconds or 2 hours
. The gateways you mentioned here are very blurry, if you mean layer 2/3
gateways, they don't care this timer. if you mean firewalls, loadbalancers,
etc. then it's a different story, these devices are sensitive to the
capacity of the number that they can handle, so they reduce the default
timers to shorter ones, just for better cosmetic performance.
【在 g*****g 的大作中提到】 : Not that long, there are gateways in between and many : will drop connection beyond one hour or less.
|
f*o 发帖数: 654 | 14 ios里面的app也不需要运行
【在 z**r 的大作中提到】 : 多谢连接,看了一下,然后又看了一下android的,都类似http://code.google.com/android/c2dm/ 大家都有一个service来干这件事情 : google的叫做C2DM,Cloud to Device Messaging : MS的叫做Microsoft Push Notification Service : apple的叫做Apple Push Notification Service : blackberry的叫做Blackberry Push Data Servers : 而且粗看之下,google的更先进些,在mobile device上,android里面的需要push : service的application不需要运行,会有一个system level的Intent Broadcast机制在 : 必要的时候来唤醒相应的application。 : : Conceptual/RemoteNotificatio
|
f*o 发帖数: 654 | 15 做病毒的喜欢哪种?
【在 g*****g 的大作中提到】 : Check Android C2DM. : I don't know much about wp7. But I think : iOS's architectur forces you to use the push service they provide. : And it's very selective on what you can do. And if you don't do : that, the app is not active at all in background. : Android on the other hand, gives you more freedom there and feels : like PC. You can have service processes and that's why you see : battery drain. : : ms
|