news 2026/6/13 5:25:50

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/6/10 12:34:13

APKMirror终极指南:5步轻松获取安全安卓应用的完整教程

APKMirror终极指南:5步轻松获取安全安卓应用的完整教程 【免费下载链接】APKMirror 项目地址: https://gitcode.com/gh_mirrors/ap/APKMirror 在安卓应用生态中,APKMirror作为一个专业的第三方APK文件下载平台,为用户提供了安全可靠的…

作者头像 李华
网站建设 2026/6/10 14:11:38

Notion Linux 原生桌面版:为开源系统打造的专业笔记解决方案

Notion Linux 原生桌面版:为开源系统打造的专业笔记解决方案 【免费下载链接】notion-linux Native Notion packages for Linux 项目地址: https://gitcode.com/gh_mirrors/no/notion-linux 你是否曾经为在Linux系统上无法获得原生的Notion体验而感到困扰&am…

作者头像 李华
网站建设 2026/6/10 12:35:26

iOS设备支持文件终极解决方案:告别Xcode调试困境

作为一名iOS开发者,你是否经历过这样的场景:刚刚升级了手机系统,满怀期待地连接设备准备调试,结果Xcode无情地提示"Device not supported"?😫 这种突如其来的调试中断不仅打乱了开发节奏&#xf…

作者头像 李华
网站建设 2026/6/12 20:49:46

Agent服务上线前必做的7项Docker性能测试,少一项都可能引发生产事故

第一章:Agent服务Docker性能测试的核心意义在现代云原生架构中,Agent服务作为监控、日志采集或安全代理的关键组件,广泛部署于容器化环境中。对其开展Docker性能测试,不仅有助于评估资源消耗与响应延迟,更能提前暴露高…

作者头像 李华
网站建设 2026/6/12 14:32:15

为什么顶尖量子工程师都在用VSCode运行Jupyter模拟内核?真相揭晓

第一章:量子计算与开发环境的演进 量子计算作为下一代计算范式的代表,正逐步从理论研究走向工程实现。随着超导、离子阱和拓扑量子比特等技术路径的不断突破,配套的软件开发环境也在快速演进,为开发者提供了更高效的工具链支持。 …

作者头像 李华
网站建设 2026/6/11 19:04:03

Windows系统安全防护新选择:OpenArk免费反Rootkit工具全面解析

Windows系统安全防护新选择:OpenArk免费反Rootkit工具全面解析 【免费下载链接】OpenArk The Next Generation of Anti-Rookit(ARK) tool for Windows. 项目地址: https://gitcode.com/GitHub_Trending/op/OpenArk 你是否曾担心自己的电脑被恶意软件悄悄控制…

作者头像 李华