ZKX's LAB

android服务和进程的区别 android进程 服务

2021-03-23知识3

android系统中,“进程”和“服务”哪个对系统运行内存消耗比较大? 到底进程还是服务消耗内存大,取决于具体的程序,也取决于程序的运行状态安卓中的进程是前台程序,也就是通常看到的软件界面和软件本身,进程不能在后台执行,当一个进程转入后台时,自动休眠,内存占用量很低安卓中的服务是后台程序,提供提供对应用程序处于后台时继续运行的条件,因为安卓系统规定进程不允许后台运行,转入后台的进程都一律进入休眠模式,不再占用CPU,所以对于一些希望后台还能继续执行的程序,就会带有服务所有程序都对应一个或多个进程,但不是所有程序都有服务,服务只针对那些需要后台继续运行的程序提供必要的环境,例如杀毒软件、通讯软件、流量监控软件等等服务一般来说内存占用都是恒定的,波动不会很大,而进程则不一定,例如一些安卓网络游戏的进程内存占用可以达到上百M,转入休眠后可能只有几M甚至几百K,但它们的服务程序可能只消耗几M的内存,而对于杀毒软件这类需要强大后台支撑的,其进程可能只占用几M内存,而后台服务却可能占用几十M之多因此进程和服务谁占用内存大没有一个固定标准,与具体程序有关PS:纯手打,如有问题欢迎追问

[Android]当APP主进程被“清理”,如何让Service在需要的时候被唤起? 有需求为:用户的定时任务,推送,需要在第一时间提醒。目前我的做法是:推送用的信鸽。定时任务是Remote…

关于Android进程间通信 先来解释一下AIDL,这东西其实算是提供了一种自定义客户端和服务器之间RPC通信协议的通用方法,并由Android的编译器自动生成这个协议的接口实现程序,包括客户端的interface和服务器端的stub。其实你的需求用AIDL和socket都可以实现,AIDL比socket强的一点就是,用它定义了协议之后,客户端和服务器程序直接把aidl文件拿过去就可以自动生成实现这个协议的部分框架代码,而不需要自己重头写,而如果你用socket来做这个,那么可能客户端和服务器端分别需要写一些代码来把函数调用和socket通信之间做转换,这不光带来工作量的增加,也增加了因为客户端和服务器端代码不匹配造成的bug风险。当然,反过来说,socket也有灵活的优势,比如你的客户端和服务器可以不光是Android程序,也可以是其他支持同一协议的比如linux程序。然后说服务器程序的启动,其实不管用AIDL还是socket,跟服务器启动都是两码事,一般如果用service组件实现服务器,启动它是使用Context.startService方法,service组件自己提供了避免重复启动的机制,与AIDL和socket无关,service启动之后,如果是socket方式则由service程序开socket端口(但这个端口需要由其他方法通知客户端,因为想用的端口有。

android服务和进程的区别 android进程 服务

#android进程保活#android进程管理#android进程 服务#android进程权限#android进程

随机阅读

qrcode
访问手机版