百度知道的百度知道狡狐沃平在哪里找不到?怎么找不到,没次都是在手机栏看见推送的文章点进去才能看到

iOS 和 Android 的后台推送原理各是什么?有什么区别?
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 开发容易。当然,开发者还是要做些事情,比如维护个服务器什么的: 。但是复杂度无疑降低很多了。Android 的推送Apps 挂后台一直是 Android 引以为豪的特性(虽然我真的不知道是好处多还是坏处多。。)。。。大家挂后台等待推送就成为技术选择。当然, Google 事后也提供类似苹果的推送方式了。倒也谈不上抄袭,毕竟苹果的整个技术实现也没有什么特别创新之处。用户的电池? Apps 的开发者不会站在系统层面考虑的。他会假设其他 Apps 没有那么“不自觉”。而 Google 不强制的结果就是:没人真正为用户的电池负责。但是, Google 的方案也并非全是悲剧:也因为整个技术方案非强制, Android 的 Apps 在接收到推送后的表现更为灵活。像 Line 的 Android 版本可以在推送通知的 Popup 上直接回复, iOS 就需要越狱才能做到了。最后的话强制和封闭,有时候并非坏事。他意味着做出这个决定的人,要为此负责。所以,如果说苹果的推送方案有何创新?我以为是超越技术,不惜让公司承担更多风险和责任的解决方案。(类似的还有 BB 的专用网络, Kindle 的全球 3G )个人相信,担负起这些“额外”的责任,是值得的。。。只要是为了用户。PS勇于承担责任的公司也更像个可靠的成年人,而不是一个随意胡闹的孩子。
iOS 系统的推送(APNS,即 Apple Push Notification Service)依托一个或几个系统常驻进程运作,是全局的(接管所有应用的消息推送),所以可看作是独立于应用之外,而且是设备和苹果服务器之间的通讯,而非应用的提供商服务器。你的例子里面,腾讯 QQ 的服务器(Provider)会给苹果公司对应的服务器(APNs)发出通知,然后再中转传送到你的设备(Devices)之上。当你接收到通知,打开应用,才开始从腾讯服务器接收数据,跟你之前看到通知里内容一样,但却是经由两个不同的通道而来。而 Android,就不同,更像是传统桌面电脑系统做法。每个需要后台推送的应用有各自的单独后台进程,才能和各自的服务器通讯,交换数据。另外其实 Android 也有类似 APNS 的 GCM(Google Cloud Message),属于开发者可选,非强制。(更多请看本回答评论区里面
的补充)所以你大概看出来区别,iOS 的消息推送机制面世之时是一种全新的解决方案(堪称平台中的平台),应用本身不能有常驻的后台进程,系统的开销少,内存使用更少,电量也更少(把更多的运算和资源开销放在云端,非设备端)。而 Android 的特点,虽然开销大,优点是更稳定快速,但不明显。更多请阅览话题:APNs - 知乎 | 以及开发文档:Apple Push Notification Service (APNs) |
可参考这个:另外,google最近开始提供一个叫做GCM(google cloud message)的服务,如果一个应用的推送采用这种模式的话,就和 讲到的iOS推送一个样了。GCM相关的程序应该是集成在所谓的Gapps中。 除了GCM外,还有别的公司提供android的推送基础设施的服务。
我感觉以上的回答,并没有正点地谈到“原理“,并且我对其评判断观点也不认同,所以尝试来回答下这个问题。我的观点是:APNs 是 iOS 成功的一个非常重要的设计!先说原理。iOS 的推送:就是 Apple 官方的 APNs (Apple Push Notification service)。Android
的推送:Google 官方的是 GCM (Google Cloud Messaging)。本质上,APNs 与 GCM 是类似的技术实现原理:即系统层有一个常驻的 TCP 长连接,一直保持的长连接,即使手机休眠的时候也在保持的长连接。这里对于大部分人来说,最不理解的就是,休眠时候都保持在那里的 TCP 长连接,不会耗电很厉害么?答案是:不会。这是手机的设计来做到的。TCP长连接有个心跳的时间,在国外可以很长比如30分钟,在国内则因为网络环境复杂一般10分钟。客户端发起的心跳,会短暂地消耗手机电能,但在这个心跳间隔期间,则消耗电能是很少的。当在心跳期间服务器端有推送信息过来时,客户端可以收到并做处理。这里有篇文章以 Android 为例做原理解释:再说 APNs 的设计成功处。iOS 为了真正地为用户体验负责,不允许应用在后台活动。有了这个限制,但是对于终端设备,应用又是有必要“通知”到达用户的,随时与用户主动沟通起来的(典型的如聊天应用)。这就是 APNs 的逻辑所在:iOS 自己做个长驻后台保持连接。所有应用,有必要(申请)并且被允许(用户可以改设置)的话,可以通过 APNs 中转到达用户。这样就完善了!有可能很多人没有真正地体会到 iOS 不允许后台应用的好处。我是 Android 开发人员,Android 手机上一般只保留几个常用的应用,不常用就卸载。但是我的 iPhone / iPad 上则是,除非空间不足,一般不会删除应用。Android 就像 Windows,你要真的很费心去维护:有软件在干背后干坏事么?设备又给拖慢了,要清理。要考虑杀毒了。。。Android 因为后台可以长驻,尤其是国内的 Android 的手机上 Google自家的推送服务 GCM 处于基本不可用的状态。所以,各App各显神通。聊天类应用的话,大多数直接借用 XMPP 规范里的一些成果。少量如微信有IM底子的,自己开发协议。这些在实现原理上与 APNs / GCM 没有本质的区别,但有一定的技术门槛。而大多数普遍应用,要使用推送的话,则使用轮询的方式简单实现。其实,国外如 Urban Airship 自己实现了 Android 上的第三方提供的推送平台。近期国内如极光推送也实现了第三方的推送平台(技术与微信、GCM、APNs类似)。理论上,如果一个 Android 设备上多款应用都使用极光推送这种第三方推送平台的话,也可以如 APNs 一样达到节省电量、流量消耗的效果。
现在手机主流的几个平台都有自家提供Push的功能,让应用开发者能够很方便地把Push能力集成到应用中。Android 上有 GCM (Google Cloud Messaging)iOS 上有 APNs(Apple Push Notification service)Windows Phone 上有 MPNs(Microsoft Push Notification service)。但是由于Windows Phone的市场占比不高,所以一般也就没有人会专门做wp系统的推送。至于Android的GCM在国内基本上是不可用的。原因主要有以下两点: 一、国内大部分Android手机都不带Google服务,也就用不了GCM,这是主要的问题。 二、在国内Google的服务一般都不太稳定,原因你懂的。所以现在在做消息推送的时候Android平台采用服务器与设备直接拉一条长连接的方式实现功能,而IOS平台则采用苹果自己的APNs服务。在分别说这两个平台推送原理的时候,先回答一下题主关于服务器如何先找到设备、再找到app的问题。每一个设备都有一个自己的设备号,而设备中的app又都有一个唯一的包名。所以服务器只需要找到设备号与包名就可以定位到某个设备的某个应用,而这设备号与包名会一起构成一个标识符,叫做device_token,因此问题就简化为把device_token与消息内容等信息交给服务器,服务器把内容发到唯一的device_token上。这就好像你在上海要通过顺丰寄送一个快件儿给某某小区的某某房间,那么快件儿首先会邮递到顺丰公司在北京的总站点,之后再根据小区的地址投递/路由到某某房间,这样一个寄件过程就算完成了。在这里,你要寄送的快件儿就是你要发的“消息”,送达房间相当于最终“接收消息的App”,顺丰公司在北京的总站点相当于这里提到的“设备”,送达房间的房间号就相当于这个环节里面提到的“包名”。接下来分别简单说一下这两个平台的推送实现原理。首先是IOS平台,IOS的推送是通过苹果自己的APNs服务进行的,用户需要将device_token以及消息内容等推送信息交给APNs服务器,剩下的均由苹果自己来完成。iOS应用的推送大部分情况下都要依赖苹果生态提供的APNs()服务。下边用两幅图来简要说明其推送原理首先作为设备标识的device-token是由APNs颁发的,App开发者或者第三方推送平台(图中的Provider)做的工作是收集这个device-token,APNs的推送是要求基于APNs颁发的device-token来推送的。只有正确的device-token会被APNs接受,如果是一个错误的、或者无效的device-token(比如App已经卸载了),APNs就不会接受。接着开发者使用第三方推送平台(图中的Provider)在将推送内容与范围选定之后进行推送,第三方推送平台将信息提交给APNs,剩下的操作全部都由APNs来进行完成,整个过程第三方推送平台就不能控制了。但是如果提供的device_token是失效的(app被卸载、系统版本升级导致device_token变化等情况)那么推送过程就会被中断,频繁的断线重连甚至会被APNs认为是一直DoS攻击。详情可以参考接下来是Android平台,Android平台在不使用GCM的情况下就需要将自己的服务器或是第三方推送服务提供商的服务器与设备建立一条长连接,通过长连接进行推送。但是不建议自己设置服务器实现推送功能,一是因为成本太高(开发成本、维护成本),自己搭建的服务器无论是稳定性还是速度上都比不了第三方推送服务提供商的效果。另一个是因为自己的数据量较小,使用第三方推送服务提供商可以用他们的维度进行推送,实现精准推送。友盟推送就是做的比较好的,可以根据用户分群、地区、语言等多维度进行推送,最大程度减少对于用户的干扰,仅把消息推送给相关用户。下图是Android平台消息推送的简单示意图。开发者通过第三方推送服务提供商将信息直接下发给需要的设备,第三方推送服务提供商与设备建立一条长连接通道,并且将消息路由到APP中(图中的设备1与设备2),对于像设备3这种无网络连接或是没有成功建立长连接通道的设备,会在设备3连网且推送消息没有过期的情况下自动收到由第三方推送服务提供商推送过来的消息,保证消息不会丢失。对于消息推送想要了解更多,可以关注各推送服务提供商(友盟推送、百度云推送、极光推送等)的官网及论坛。、
以jar的方式出现,集成于第三方客户端,解析第三方下行的数据,并把结果透传给第三方客户端;也可以上行第三方定制的客户端信息。服务器:一侧负责维护与成千上万的个推SDK的长时连接,另一侧与第三方服务器对接,将第三方定制数据下行推送至个推SDK。第三方服务器:数据推送的发起者,通过对接服务器,将数据发送至第三方客户端。第三方客户端:第三方集成SDK的客户端,推送数据正真的接收者和展现者。
iOS 系统的推送(APNS,即 Apple Push Notification Service)依托一个或几个系统常驻进程运作,是全局的(接管所有应用的消息推送),所以可看作是独立于应用之外,而且是设备和苹果服务器之间的通讯,而非应用的提供商服务器。你的例子里面,腾讯 QQ 的服务器(Provider)会给苹果公司对应的服务器(APNs)发出通知,然后再中转传送到你的设备(Devices)之上。当你接收到通知,打开应用,才开始从腾讯服务器接收数据,跟你之前看到通知里内容一样,但却是经由两个不同的通道而来。而 Android,就不同,更像是传统桌面电脑系统做法。每个需要后台推送的应用有各自的单独后台进程,才能和各自的服务器通讯,交换数据。另外其实 Android 也有类似 APNS 的 GCM(Google Cloud Message),属于开发者可选,非强制。推送服务因为支持平台的不同和链路,耗流量等指标不同而受众也不同,这里有很多的推送服务,你也可以通过他们的特点和配置过程了解对比下,
做过DAU有50w以上的聊天功能的网络层的Android开发。任何push都是基于长连接,实现方式就是socket和comet。ios的推送仅仅推送一条push消息,假如做聊天的功能,聊天消息是推不到客户端的。iOS的push个人感觉比较鸡肋。android就方便多了,开一个service,启动一个socket连接,定期发发心跳。补充下:我说的这些,只是表明我之前是这么做推送的,iOS和Android平台的优劣大家都心知肚明,这方面没必要再起纷争。推送的难点在于推送协议,没想到这块儿没人问及。。。唉。。。举个例子,微信的协议?ActiveSync?XMPP?MQTT?协议升级的兼容方案,多点登录的同步问题,消息及时性可靠性的保证等等。哈哈,最近又做了一个Push系统,上线之后DAU大概10w左右吧。抛弃了Comet方式,目前运营商的wap网络直接连着net网络了,核心思路和之前的都差不太多,但是推送协议是我们自己自定义的二进制协议,比之前的纯文本好多了洒~
Android的消息推送有AndroidPN,极光推送,推聊等,可以看下这个
国内也有不少做类似于google的开发平台,我业余做app都是用bmob的后端云服务平台,里面提供很多功能,比如推送,云存储等等,都是免费的,你可以去看看
已有帐号?
无法登录?
社交帐号登录我浏览网页时,旁边的广告推荐都是我最近搜... | 问答 | 问答 | 果壳网 科技有意思
我浏览网页时,旁边的广告推荐都是我最近搜索过、浏览过的商品,是谁出卖了我?
不知道是通过什么监控我的浏览记录的,但是总是觉得很不爽
+ 加入我的果篮
数学系博士生,TBBT资深爱好者
这个要看广告的投放渠道是什么了。例如百度和谷歌都有自己的广告平台,一些网站加盟之后会在自己的网页上显示广告平台的广告,然后和百度/谷歌分成。以百度为例,你平时进入百度网站或者用百度搜索条的时候,他们都会用cookie或者其他手段记住你是谁(确切地说是记住这台电脑),并且记录你搜索的内容。当有广告商来百度投放广告的时候,百度就会根据你的搜索记录、对方的覆盖要求等等因素来决定显示哪些广告,如果技术够好的话,应该和你感兴趣的内容恰好是一致的。在这个过程中,理论上:1.百度不知道你的真实身份,但是认识这台电脑并且知道使用它的人对什么感兴趣。2.广告投放商不需要知道你的任何信息,只要知道百度把他们的广告投放到感兴趣的人群了。但是实际上:1.百度可能不仅知道电脑的使用者对什么感兴趣,通过其他方式也可能知道你是谁,至少在他们想知道的时候能挖掘出来。2.百度可能向广告投放商出卖了你的部分资料。3.百度可能向其他广告平台出售用户资料,或者与他们共享用户资料。
乘法口诀表背诵比较熟练
没有什么追踪IP,记录cookie那么复杂。google这样的广告是content match 。是根据你当前打开页面的内容,来提供相匹配的广告。至于推送的广告是之前感兴趣甚至购买过的商品,我认为是巧合。抱歉,后来有机会找搜索引擎行业的人有了解了下,的确现在主要是根据浏览行为来推荐,我之前的说法过时了。
把浏览器的安全设置设定为拒绝一切cookies就可以了。原来看过谷歌广告投放系统的说明,隐约记得里面说世界上大致30%的电脑是这样的设置。但是我觉得必要性不大。
譬如百度联盟的广告,他基本上是根据你的IP在最近百度搜索框输入的关键词推荐的。谷歌关键字广告可能是根据你浏览的网站页面关键词推荐的,也可能是根据你在谷歌搜索框输入的关键词推荐。如果说有人出卖你,就是搜索引擎
广告投放时会按兴趣,年龄,按搜索过这些词等的人群投放的。目前谷歌,百度都可以按人群去细分投放
当你之前浏览网站的时候如果有广告 它们会把你浏览页面的信息传回广告商 广告商会根据这些信息组织广告再投放出去 于是新广告就切合你浏览的内容 (符合你的需求)提高广告投放的效率。
电影媒体人、中二程序猿
你这个ip登陆 百毒 搜索 搜索结果 你点了那个结果跳转的这些过程百毒都是自动记录的 然后根据你的搜索内容 浏览的网页在百毒联合推广里给你展现 这并不是什么新鲜技术 google 淘宝都在用 尤其是淘宝 推荐相关产品挺好用
这种玩意儿叫搜客(大概吧= =我们叫他搜客百度和 谷歌会记下来你搜索过的词语一些商家会找这百度和谷歌购买这些词语,然后他们系统会根据你搜索的记录去像你推荐广告百度联盟和谷歌联盟有各种各样的广告渠道,天涯猫扑小论坛大论坛各种各样的广告渠道都是他们的,所以你走到哪儿都能看到那右下角弹框以及两边广告位什么的医院游戏等广泛应用哟=、=
楼主感兴趣可以了解一下机器学习和数据挖掘,据我所知Amazon在商品推荐方面做得比较好
电子信息硕士/回国后彻底转行…
你在网络上的大部分行为都是被监控的 而这些数据被用起来 成为有意义的信息 通过一些算法刻画出你个体的Image
现在是市场营销上很有效的途径…
已经把基本的原理解释的非常清楚了。做个补充:搜索引擎是靠广告挣钱的,从盈利模式的角度讲,百度是中国最大的广告公司。搜索引擎的广告就是依据用户搜索的结果,精准推荐付费的推广链接。曾用过百度的商业产品,如:百度统计、百度商桥。百度的推广有两种,一种是网盟推广,一种是搜索推广。搜索推广的设定很高级,可以设定关键词、推广创意、推广地区、时段、每日限额、ip黑名单等等,还会有各种统计分析工具优化推广结果。搜索推广就是搜索的时候看见的展示广告,在搜索结果中,标注为「搜索推广」的,都是付费的,你们点一下广告主就要付一点钱。还有一些展示是在右侧专门的推广窗口,这些都是广告,点一下别人也要付钱。(我心情不好的时候专门搜「妇产科医院」,然后猛点推广链接的事情会随便乱说么?哼!谁叫那些医院经常跑来果壳发小广告。)“医院”这种关键词超级贵,最高,点一下要好几百。帮别人花钱的快感,你也可以拥有!题主见到的可能是“网盟推广”,这种方式不是在搜索中见到的,而是在网页中展示的各种静态或动态图片,还有各种链接。还有很多地方网站,站长也需要挣钱糊口的,就参与网盟。帮忙打广告。这里头也有许多挣钱的方法,具体什么情况,我也不知道。可以请教
的回答结尾有一个观点可能欠缺考证,想做一下说明「百度可能向广告商卖了你的资料」这个基本上是不会的。1. 有搜索记录,有cookie ,基本上可以做到广告的精准投放了,不需要再多此一举;2. 百度是值500亿美金的上市公司,搜索引擎本身带来了巨大现金牛,卖用户隐私有各种巨大风险不说,卖资料的钱跟现金牛比起来,简直是太少了,所以也不屑于做这些;3. 搜索引擎要抓你的隐私,也只能是根据你输入的关键词即你主动告诉他的,而不能侵入你的各种帐号和浏览记录,因为 Baidu 再怎么着也是基于 Web 的,根本触及不到系统记录涉及你隐私数据的层面。倒是什么 金山呀、360 呀、QQ电脑管家呀,要小心,这种「端」产品比较狠,还有浏览器,浏览器想采集你的数据,比百度更easy了。。
click stream~
国外类似的有家叫quantcast的公司 正规公司很早以前就发现打开很多网站的广告位都是我感兴趣或最近浏览的物品的广告 一开始觉得很贴心 后来很不爽 老子被跟踪了 然后在看完#八点二十有点意思#晚会之后这种愤怒就被放大了= =
老子也有这个感觉。。。怒
有没有什么防护软件的设置可以屏蔽这些跟踪广告功能的?还有,淘宝那个王八蛋的“淘乐网”还是什么的,总是自动弹出页面,到底是怎么回事?是电信部门跟他们合作的吗?
经常遇到 不知有木有解
这个东西具体叫什么名字
人机手谈小组管理员
我估计是DNS劫持。也就是电信网通干的。他们最近换花样了么?
后回答问题,你也可以用以下帐号直接登录
(C)2016果壳网&&&&京ICP证100430号&&&&京网文[-239号&&&&新出发京零字东150005号}

我要回帖

更多关于 阴道找不到在哪里 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信