android 一个程序可以启动多少个服务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 一个程序可以启动多少个服务相关的知识,希望对你有一定的参考价值。
理论上讲一个程序可以启动无限制个服务,因为android并没有在这方面进行限制,但是Android系统对应用申请的内存数有限制,启动的服务申请的内存总和不能大于系统对软件的限制。另外一个服务可以让一个应用程序分为很多独立的模块,可以很好的管理应用,但是却不建议滥用。Android的服务仍然是运行在主线程中的,且非常占用资源,过多的服务会让软件卡顿。
参考技术A 首先多个service 启动时初始化申请的资源肯定要更多。但是多个service可以将你的项目功能模块分离开来。一个服务就做一件事情。这样对于代码的维护修改更好。举个例子比如你的项目要更新桌面部件要上传日志或者要保持长连接推送等等。如果你写在一起那以后不仅维护困难,而且当有个地方出错导致service崩溃时则所有的功能都会无法使用,这样耦合就很不好。而且每个功能模块的执行时间又不同可能想部件更新执行完后service立刻关闭等待下次启动。有的则是一直运行着像长连接推送。所以需求也不一样。所以多个service也不是什么问题只要不太离谱。
再者就要看你用的是普通的service还是intentservice 如果是普通service 是在主线程中运行的。当你的任务量繁重的时候你就需要在service用线程来操作防止ANR。不然占用主线程太多时间会出现应用程序无响应。 而如果用intentservice 可能api不熟悉但是能更好的解决这种现象
以上是关于android 一个程序可以启动多少个服务的主要内容,如果未能解决你的问题,请参考以下文章
Android 进阶——系统启动之Framework 核心ActivitityManagerService服务启动
Android 进阶——系统启动之Framework 核心ActivitityManagerService服务启动