news 2026/8/21 13:33:31

Android 进程简析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Android 进程简析

进程管理

  • Out of Memory Killer:每一个进程的oom_adj初始值都等于其父进程的oom_adj值。oom_adj值越小,越不容易被杀死。内存紧张时,OOM Killer综合进程的内存消耗量、CPU时间、存活时间和oom_adj值来决定是否要杀死一个进程来回收内存
  • Low Memory Killer:进程的oom_adj值由ActivityManagerService根据运行在进程里面的组件的状态来计算。内存紧张时, LMK基于oom_adj值来决定是否要回收一个进程
    • Empty Process 空进程
    • Hidden Process
    • Perceptible Process
    • Visible Process 可见进程
    • Foreground Process 前台进程
  • 组件管理服务ActivityManagerService和窗口管理服务WindowManagerService也会在适当的时候主动进行进程回收。WindowManagerService在处理窗口的过程中发生Out Of Memroy时,也会通知ActivityManagerService杀掉那些包含有窗口的应用程序进程

重要进程

  • APP进程
    • 通过Process.start启动App进程, ActivityThread.main是入口
  • Launcher进程
  • System Server进程
    • 系统各大服务的载体。负责启动和管理整个Java framework,包含ActivityManager,WindowManager,PackageManager,PowerManager等服务。
    • 是由Zygote进程fork而来,System Server是Zygote孵化的第一个进程
    • 1350号线程是其主线程。
    • PackageManager线程(1454)是system_server进程里的一个子线程。
  • Zygote进程
    • 是Android系统的第一个Java进程(即虚拟机进程),Zygote是所有Java进程的父进程
    • Zygote进程本身是由init进程孵化而来的。
    • 有64位和32位两种。zygote64的主线程是451号线程。
  • servicemanager
    • binder服务管家
    • 守护进程循环运行在binder_loop
  • init进程(pid=1)
    • 用户空间的第一个进程,也是所有用户态进程的父进程
    • 负责创建和管理各个native进程。
  • kthreadd进程(pid=2)
    • 是Linux系统的内核进程,会创建内核工作线程kworkder,软中断线程ksoftirqd,thermal等内核守护线程。
    • kthreadd进程是所有内核线程的父进程。
  • swapper进程(pid=0)
    • 该进程又称为idle进程, 系统初始化过程Kernel由无到有开创的第一个进程
    • 用于初始化内核进程管理、内存管理,加载Display,Camera Driver,Binder Driver等相关工作
    • 创建init进程和ktheadd进程,最后进入idle循环,负责idle的管理和cpu热插拔之类的事务。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 22:53:12

Mermaid时序图完全指南

Mermaid时序图完全指南 前言:时序图在技术文档中的价值 在系统设计、接口文档和故障排查中,时序图(Sequence Diagram)是描述对象间交互过程的最佳可视化工具。与Mermaid其他图表相比,时序图特别擅长展示时间维度上的…

作者头像 李华
网站建设 2026/8/21 22:57:07

金仓数据库:从“兼容”到“超越”,部署、安全、性能三重跃迁

兼容是对企业历史投资的尊重是确保业务平稳过渡的基石然而这仅仅是故事的起点在数字化转型的深水区,企业对数据库的需求早已超越“语法兼容”的基础诉求。无论是核心业务系统的稳定运行,还是敏感数据的安全防护,亦或是复杂场景下的性能优化&a…

作者头像 李华
网站建设 2026/8/21 16:08:04

揭秘Docker Scout自动化测试集成:如何实现镜像漏洞秒级响应

第一章:揭秘Docker Scout自动化测试集成:如何实现镜像漏洞秒级响应Docker Scout 是 Docker 官方推出的镜像安全分析工具,能够在镜像构建和部署的每个阶段自动检测潜在的安全漏洞。通过与 CI/CD 流程深度集成,Scout 实现了从代码提…

作者头像 李华
网站建设 2026/8/21 21:40:19

深度解析:易知微数字孪生如何破解园区数字化转型深水区难题

在数字经济与国家战略双重驱动下,智慧园区已从概念落地走向规模化建设,成为推动区域经济高质量发展的核心载体。当前我国产业园区虽已实现基础信息化升级,但传统模式下的低效运营、系统孤立、管理粗放等问题仍未根治,叠加低碳转型…

作者头像 李华
网站建设 2026/8/21 19:56:39

运维系列数据库系列【仅供参考】:达梦数据库 使用ODBC创建DBLINK

达梦数据库 使用ODBC创建DBLINK 使用ODBC创建DBLINK 一、下载并安装unixODBC 二、配置ODBC 三、创建并测试DBLINK 使用ODBC创建DBLINK 一、下载并安装unixODBC 使用地址http://www.unixodbc.org/可下载unixODBC源码包,这里下载unixODBC-2.3.9版本。 下载完成后将包上传至源…

作者头像 李华