关于android推送通知服务,这些事你需要知道! (android如何实现推送功能)
整理分享关于android推送通知服务,这些事你需要知道! (android如何实现推送功能),希望有所帮助,仅作参考,欢迎阅读内容。
内容相关其他词:安卓推送设置在哪里,android消息推送服务端+客户端,android推送联盟的最新情况,android 推送,android 消息推送服务,android推送联盟的最新情况,android 推送,安卓的推送机制,内容如对您有帮助,希望把内容链接给更多的朋友!
关于android推送通知服务,你需要知道这些事图1(Apple推送通知服务的推送流程) 在iOS上,Apple推送通知服务托管了所有应用的消息通知需求,当某一应用的开发者(服务器)需要发送一则消息通知时,这一则消息会首先发给Apple服务器,然后经由Apple推送通知服务被推送到设备。在这一过程中,设备上的应用本身没有参与。这就是我们在国内也能收到Instagram、YouTube等国外应用消息推送的原因了——毕竟国内有Apple的服务器,这一连接的质量是很有保证的。 当然,Apple后来也把这一服务集成到自家的macOS上,如今的macOS也能享受这样的推送服务。对于一台移动设备来说,这样统一的推送服务,使得应用无需常驻后台,资源占用能很好地得到控制,所以在同等配置下能做到更加流畅、省电。Android官方推送服务:从C2DM到FCM 然而Android在统一推送方面其实并没有落后太多。年,在Apple推送通知服务发布后没多久,Android2.2上便推出了「云端至设备消息传递(CloudtoDeviceMessaging,即C2DM)」,它的原理与Apple推送通知服务类似,消息从应用服务器被发送到统一服务器,然后发送到设备。 这一服务在年被「Google云消息传递(GoogleCloudMessaging,即GCM)」替代。相比C2DM,GCM的主要优点是没有消息配额*,且对于开发者更友好,同时能更好地节省电量。 年Google收购Firebase后,将GCM改名为「Firebase云消息传递(FirebaseCloudMessaging,即FCM)」,并进一步简化了推送服务的相关开发工作。关于android推送通知服务,你需要知道这些事图2(Firebase云消息传递) 七八年一路走来,从C2DM到FCM,从Android2.2到Android8.1,统一的推送服务一路伴随着Android的成长。得益于此,对于国外Android用户的定位器来说,卡顿、费电什么的几乎没有存在过。反观国内,由于Google服务在*地区的使用很不稳定,国行Android定位器往往会为了更好的用户体验而精简掉Google服务,统一推送服务也同时被去除。由此,各大第三方推送服务应运而生。Android第三方推送服务 首先最具良心的应该是各大定位器厂商自家的推送服务,比如华为的「华为推送平台」,小米的「MiPush」等。这些推送服务被集成在各家高度定制的Android*中,享有*级地位,推送的优先级比较高。如果你的小米定位器内所有的应用都使用MiPush,那相信它也可以像iOS一样流畅省电。 但这往往是不可能的,开发者不可能兼顾所有的厂商,为每个牌子的定位器都适配对应的推送服务,能顾上华为和小米已经是很尽力了。另外虽然厂商推送服务也可以在其它牌子的*上正常使用,但并不能像在自家*上一样实现*级的推送,推送服务的后台进程依旧要常驻。关于android推送通知服务,你需要知道这些事图3(华为推送平台) 其次,各大互联网公司也有自己的推送服务,比如*信鸽推送、百度云推送、阿里云移动推送。使用这三家公司各类Android应用的朋友不少都知道他们的「企鹅全家桶」「百度全家桶」和「阿里全家桶」,「全家桶效应」调侃的就是BAT自家应用的相互唤醒,让*变卡变慢。你打开一个淘宝,就会唤醒闲鱼、支付宝、天猫等等应用,这种相互唤醒,目的是让共用的推送通道保持活跃,而不被**,以便消息能及时送达。 除了以上提到的两种推送服务,另外还有一种专业的第三方平台提供推送服务,比如极光推送、友盟推送等等。这种第三方平台与互联网大厂的推送服务类似,所以使用同一推送通道的应用也会有相互唤醒的情况,以保持通道的活跃。 不同的开发者在面对以上众多的推送服务时,必然会做出不同的选择,这导致我们定位器上的应用所使用的推送服务五花八门,极不统一。就算抛开多个推送服务本身占用的资源不看,应用之间为了保持推送通道的活跃而互相唤醒的情况常常使得Android定位器满载运行,定位器又卡又费电也就不难理解了。 如今工信部站出来,推进Android统一推送,无疑具有重要的意义。一旦统一推送服务普及,我们手上的Android定位器会变得更流畅省电,开发者也无需为了配置各种推送服务而头疼,同时还要遭受用户的抱怨。更重要的是,此举有助于培养良好的国内Android应用生态,并把《Android绿色应用公约》推进到更大的范围。在当前生态下使用Android官方推送 那么在当前的生态下,我们可以使用Google官方的FCM推送吗?当然可以。只要你的*装有Google服务,并且你的应用下载自PlayStore,那么即使身处国内,你也能通过FCM收到消息推送。下图就是我在国内网络下收到的YouTube通知。关于android推送通知服务,你需要知道这些事图4(在国内网络下收到YouTube通知) 针对一些大量占用*资源的国内应用,我建议你使用「黑域」*它们的后台活动,并开启「允许同步」来接收消息推送(仅支持部分应用)。以微信为例,它在黑域中显示支持FCM,所以我们在黑域中「黑域」微信并开启同步后,即使微信应用被Standby(开启同步的应用在黑域中不会被强行停止),也能及时通过FCM收到消息推送。关于android推送通知服务,你需要知道这些事图5(在黑域中开启微信的「允许同步」) 当然,还是因为Google服务器的部署问题,FCM在国内依旧不太稳定。希望工信部牵头的统一推送服务能尽快到来,让Android用户早日摆脱定位器用半天就没电的窘境。