Google将统一Android后台任务调度,弃用旧有函数库

2019-11-22 03:48发布

Google宣布要统一Android背景任务调度的方法,从2020年11月1日起,Android应用程序需要使用统一可推延背景任务WorkManager API,而原先的GCMNetworkManager将会被弃用不再支持,且在部分设备FirebaseJobDispatcher和GcmNetworkManager API调用将不再有效。

Google提到,Android移动设备的用户高度在意手机电池的寿命,而要让手机省电,与应用程序调度可推延后台任务有很大的关系。而为此,Google推出了WorkManager API,来作为统一的后台任务调度解决方案,以满足推延背景处理程序的需求。WorkManager API结合了Firebase Job Dispatcher(FJD)和GcmNetworkManager解决方案的功能,并向后兼容至API等级14,为广泛的各式设备提供一致的任务调度功能。

比起FJD和GcmNetworkManager,WorkManager的功能更加强大,不需要使用Google Play服务,且让可推延与异步任务的调度变得简单,即便用户关闭应用程序或是重新启动设备后,这些预先调度的任务仍然可以被确实执行。

而且对于没有立即需要执行的任务,像是发送日志或是分析数据到后端服务,也能提供良好的支持,Google举例,当开发者的应用程序要将日志文件上传至服务器,这项工作没有急迫性,可以在用户设备充电并且连上WI-FI再执行,则WorkManager可以确保满足条件时执行日志同步任务。另外,WorkManager还可用来安排一次性或是定期重复的任务,并且能够监控与管理任务,也能将任务链结在一起执行。

由于WorkManager目前已经成熟,因此Google决定弃用替代的解决方案,专注于发展WorkManager的功能与稳定性。Google已经在今年4月宣布弃用FJD函数库,并将于2020年存档,不再提供支持,另外,Google也要弃用GCMNetworkManager,Google表示,这个函数库不会有新功能加入,并在2020年11月弃用,之后不会再提供任何的支持,而且当应用程序更新使用API​​等级29,在Android Marshmallow版本以上的设备,FJD和GcmNetworkManager API调用将不再有效。

无论应用程序是使用FJD抑或是GCMNetworkManager,Google都提供了升级指南,帮助开发者更新应用程序,并提到,自家YouTube应用程序因为后台调度的需要,转而使用WorkManager,应用程序启动时间以及崩溃率都下降了8%。

文章来源: https://www.toutiao.com/group/6761755658636247565/