当前位置: 首页 > news >正文

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热插拔之类的事务。
http://www.jsqmd.com/news/105127/

相关文章:

  • 2025年环氧地坪施工方案厂家权威推荐榜单:环氧地坪工程/环氧地坪公司/环氧耐磨地坪专业机构精选 - 品牌推荐官
  • HLS.js AV1播放指南:如何在浏览器中实现下一代视频编码
  • AI提示词写作全攻略:告别无效指令,精准拿捏AI输出
  • Mini Pupper四足机器人开发指南:从硬件部署到ROS应用
  • 大模型时代来袭:大学生如何把握学习与就业的新机遇?大模型或成大学生最佳选择!
  • UV紫外老化试验箱哪家好?紫外老化试验箱优质厂家排名 - 品牌推荐大师1
  • dupeGuru重复文件清理神器:智能识别与高效管理全攻略
  • IndexTTS2:突破传统语音合成的革命性技术
  • 2025年质量好的密封件氢化丁腈橡胶/高耐磨氢化丁腈橡胶厂家推荐及选购指南 - 品牌宣传支持者
  • Docker部署JumpServer堡垒机
  • ThinkPad T480黑苹果实战:7天从零到精通完整攻略
  • Howler.js音频开发终极指南:从入门到精通的10个实用技巧
  • 5分钟掌握Inpaint-web:浏览器端智能图像修复神器
  • 计算机专业 CTF 比赛全攻略:从新手参赛到实战拿分,附工具 + 赛事清单
  • 追光者的“速度游戏“:光伏测试设备的技术迭代之路
  • Agent服务频繁失联?教你快速定位Docker健康报告中的隐藏问题
  • 2025年口碑不错的市政路灯生产厂家推荐:太阳能市政路灯厂家 - myqiye
  • 缠论可视化终极指南:简单构建专业量化分析平台
  • 2025年度专业高速漆包机厂家排行榜,环保高速漆包机哪家好? - mypinpai
  • 量子计算入门必看,VSCode+Jupyter参数设置常见问题全解析
  • COLMAP GPS数据融合技术:实现3D模型与地理坐标的精确定位
  • 为什么顶尖量子工程师都在用VSCode运行Jupyter模拟内核?真相揭晓
  • 《60天AI学习计划启动 | Day 57: 长文技术总结输出(博客 / 文章)》
  • DAIR-V2X车路协同数据集:从零到精通的终极实战指南
  • Windows任务栏分组管理完全手册:告别混乱,拥抱高效工作流
  • Windows系统安全防护新选择:OpenArk免费反Rootkit工具全面解析
  • 2025年热门的帐篷布牛津布厂家最新推荐排行榜 - 品牌宣传支持者
  • 2025年口碑好的钢板预处理线实力厂家TOP推荐榜 - 品牌宣传支持者
  • Tiptap协作编辑完全指南:从零构建实时协同应用
  • 如何用5步完成dupeGuru无障碍测试:NVDA屏幕阅读器兼容性终极指南