美文网首页
Android进程分类

Android进程分类

作者: Visualing | 来源:发表于2018-03-19 21:07 被阅读0次

    进程的创建

    当程序启动运行时,系统就会为之创建相应的进程。在进程当中,调用系统资源,执行程序的逻辑。

    进程的销毁

    进程什么时候会销毁呢?进程的销毁场景有两种,1.程序不需要继续执行代码,运行结束;2.系统为回收内存,强制销毁。

    进程类型

    系统强制销毁进程时,面临一个问题:系统当中可能会运行多个进程,销毁哪些进程合适呢? 这就是我们要讨论的进程的优先级问题。进程被系统强制销毁时,是按照进程的优先级进行的。而进程的优先级主要和应用包含的组件相关。进程优先级从高到低可分为四种:前台进程可视进程服务进程缓存进程

    前台进程(foreground process):需要用户当前正在进行的操作。一般满足以下条件:

    1. 屏幕顶层运行Activity(处于onResume()状态),用户正与之交互
    2. 有BroadcastReceiver正在执行代码
    3. 有Service在其回调方法(onCreate()、onStart()、onDestroy())中正在执行代码
      这种进程较少,一般来作为最后的手段来回收内存

    可视进程(visible process):做用户当前意识到的工作。一般满足以下条件:

    1. 屏幕上显示Activity,但不可操作(处于onPause()状态)
    2. 有service通过调用Service.startForeground(),作为一个前台服务运行
    3. 含有用户意识到的特定的服务,如动态壁纸、输入法等
      这些进程很重要,一般不会杀死,除非这样做可以使得所有前台进程存活。

    服务进程(service process):含有以startService()方法启动的service。虽然该进程用户不直接可见,但是它们一般做一些用户关注的事情(如数据的上传与下载)。
    这些进程一般不会杀死,除非系统内存不足以保持前台进程和可视进程的运行。
    对于长时间运行的service(如30分钟以上),系统会考虑将之降级为缓存进程,避免长时间运行导致内存泄漏或其他问题,占用过多RAM以至于系统无法分配充足资源给缓存进程。

    缓存/后台进程(cached/background process):一般来说包含以下条件:

    1. 包含多个Activity实例,但是都不可见(处于onStop()且已返回)。
      系统如有内存需要,可随意杀死。

    引用自CSDN——Android-四种进程类型

    相关文章

      网友评论

          本文标题:Android进程分类

          本文链接:https://www.haomeiwen.com/subject/bhepqftx.html