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

网站如何做播放线路杭州cms建站模板下载

网站如何做播放线路,杭州cms建站模板下载,深圳公司做年报网站,如何制作自己的链接1. 引言 在 Android 系统中,ActivityManagerService (AMS)、WindowManagerService (WMS) 和 PackageManagerService (PMS) 是三个最核心的系统服务,它们分别管理着应用的生命周期、窗口显示和应用包管理。 但你是否知道,这些服务并不是独立…

1. 引言

在 Android 系统中,ActivityManagerService (AMS)WindowManagerService (WMS)PackageManagerService (PMS) 是三个最核心的系统服务,它们分别管理着应用的生命周期、窗口显示和应用包管理。

但你是否知道,这些服务并不是独立进程,而是运行在同一个系统进程——system_server 中?本文将介绍 AMS/WMS/PMS 的核心作用,并深入探讨 system_server 进程的架构,包括它的线程模型和关键组件。


2. AMS、WMS、PMS 的作用

(1)ActivityManagerService (AMS) —— 应用生命周期管理者

AMS 是 Android 的“大管家”,负责:

  • 启动/管理 Activity(如 startActivity() 的底层实现)
  • 管理应用进程(通过 ProcessList 分配进程优先级)
  • 处理 ANR(Application Not Responding)
  • 管理任务栈(TaskStack)(决定 Activity 如何回退)

举例:当你点击一个 App 图标时,AMS 会检查目标 Activity 是否存在,并决定是否创建新进程或复用已有进程。

(2)WindowManagerService (WMS) —— 窗口管理者

WMS 负责所有 UI 窗口的显示与交互:

  • 管理窗口层级(Window层级,如 Dialog、Toast、StatusBar)
  • 处理触摸事件分发(决定哪个窗口接收事件)
  • 与 SurfaceFlinger 协作(控制 Surface 的合成与渲染)

举例:当你滑动屏幕时,WMS 会计算触摸事件应该分发给哪个 App 的哪个窗口。

(3)PackageManagerService (PMS) —— 包管理专家

PMS 管理所有 APK 的安装、卸载和权限:

  • 解析 AndroidManifest.xml(获取四大组件信息)
  • 管理应用权限(如运行时权限 checkSelfPermission()
  • 处理 APK 安装/卸载(调用 installd 守护进程)

举例:当你安装一个 App 时,PMS 会校验签名、分配 UID,并更新 /data/system/packages.xml


3. system_server 进程:Android 系统服务的“大本营”

AMS、WMS、PMS 并不是独立进程,而是运行在 system_server 进程中的不同线程

(1)system_server 是什么?

  • Zygote 进程孵化(Android 所有进程的父进程)。
  • 在系统启动时初始化,运行几乎所有核心系统服务。
  • 通过 Binder IPC 向 App 进程提供跨进程调用(如 IActivityManager)。

(2)AMS/WMS/PMS 是 system_server 的线程吗?

是的!system_server 是一个多线程进程,不同的服务运行在不同的线程中:

  • AMSActivityManager 线程
  • WMSWindowManager 线程
  • PMSPackageManager 线程

它们通过 Binder 线程池(如 Binder:XXX_1)与 App 进程通信。

(3)system_server 还有哪些关键线程?

除了 AMS/WMS/PMS,system_server 还包含许多重要线程:

线程名作用
mainSystemServer 主线程,负责启动其他服务
android.fg处理前台任务(如广播、ANR 监测)
android.ui处理 UI 相关任务(如 Input 事件)
android.io管理 I/O 操作(如文件读写)
Binder:XXX_NBinder 线程池,处理跨进程调用

示例:当 App 调用 startActivity() 时:

  1. App 进程通过 Binder 调用 system_serverActivityManager 线程。
  2. AMS 处理请求后,可能再通过 WMS 的 WindowManager 线程管理窗口。

4. 为什么这样设计?—— 多线程 vs 多进程

你可能会有疑问:为什么不把 AMS、WMS、PMS 拆分成独立进程?

(1)性能考量

  • 减少进程间通信(IPC)开销:如果 AMS/WMS/PMS 是独立进程,每次调用都需要 Binder 通信,而 Binder 是同步阻塞的,频繁 IPC 会降低性能。
  • 共享内存优化:同进程内数据共享更快(如 ActivityRecordWindowState 等数据结构)。

(2)稳定性与依赖管理

  • AMS/WMS/PMS 之间需要紧密协作(如启动 Activity 需要 AMS 和 WMS 配合)。
  • 如果某个服务崩溃,整个 system_server 会重启(而不是单个服务崩溃导致系统不稳定)。

(3)历史演进

  • 早期 Android 确实尝试过让部分服务独立(如 SurfaceFlinger),但后来发现 IPC 开销太大,最终大多数核心服务合并到 system_server

5. 如何观察 system_server 的线程?

我们可以通过以下命令查看 system_server 的线程情况:

# 查看 system_server 进程ID
adb shell ps -A | grep system_server# 查看该进程的所有线程
adb shell ps -T <PID># 或者用 top 看 CPU 占用
adb shell top -H -p <PID>

典型输出示例

USER      PID   PPID  TID   CMD  
system    1234  1     1234  system_server  
system    1234  1     1235  Binder:1234_1  
system    1234  1     1236  ActivityManager  
system    1234  1     1237  WindowManager  
system    1234  1     1238  PackageManager  

6. 总结

  1. AMS/WMS/PMS 是 Android 最核心的三大系统服务,分别管理应用、窗口和包。
  2. 它们运行在 system_server 进程的不同线程,而非独立进程,以减少 IPC 开销。
  3. system_server 是一个多线程进程,包含主线程、Binder 线程、AMS/WMS/PMS 专属线程等。
  4. 这样设计的优势:性能高、协作方便、稳定性强。

如果你是 Android 开发者,理解 system_server 的架构,能帮助你更深入地掌握 Framework 层的工作原理,尤其是在分析 ANR、UI 卡顿、Binder 通信等问题时。


7. 扩展思考

  • 如果 AMS 的线程卡死,会影响 WMS 吗?(答案:会,因为它们同属 system_server 进程!)
  • 为什么 SurfaceFlinger 不在 system_server 里?(答案:因为它需要独立的 GPU 访问权限,且历史原因。)
  • 如何优化 system_server 的负载?(答案:减少跨进程调用、避免主线程阻塞。)

文章转载自:

http://Gk5MuwMR.cczrw.cn
http://j0MHvWeg.cczrw.cn
http://PZ38q9W9.cczrw.cn
http://wJsqiOou.cczrw.cn
http://WnzNEJ9k.cczrw.cn
http://i1N2xflA.cczrw.cn
http://81HdYznm.cczrw.cn
http://9elVAW20.cczrw.cn
http://bEi636Vs.cczrw.cn
http://MySQla4m.cczrw.cn
http://S63KiALD.cczrw.cn
http://CztcZioB.cczrw.cn
http://ORXXWmFM.cczrw.cn
http://upih84Cu.cczrw.cn
http://fnLVzJYa.cczrw.cn
http://7M20MzgU.cczrw.cn
http://ruMoTn6k.cczrw.cn
http://JTo0qrLq.cczrw.cn
http://XucpsEWU.cczrw.cn
http://SuUSyTXA.cczrw.cn
http://TgDUZomE.cczrw.cn
http://mu4TjfcD.cczrw.cn
http://uNvfB46o.cczrw.cn
http://1fzvzNvy.cczrw.cn
http://fDo4UIAr.cczrw.cn
http://knUCFCqh.cczrw.cn
http://tS9qU7It.cczrw.cn
http://qjW3Ee7c.cczrw.cn
http://Ick17nDm.cczrw.cn
http://SUUXnNnP.cczrw.cn
http://www.dtcms.com/wzjs/754727.html

相关文章:

  • 高端公司网站建设互联网大赛官网入口
  • 免备案网站主机公司网站如何做水印
  • wordpress还是shopfiyseo优化主要做什么
  • 网站做推广需要营业执照网站建设怎么问问题
  • 网上课程网站网站建设推广语言
  • 网站建设需放在哪个科目邢台企业做网站
  • 网站建设制作文献wordpress详细介绍
  • 织梦网站后台空白什么是静态网站
  • 旅游网站建设分析 需求wordpress 网址 建站
  • 《网站设计与建设》电子书用vue做的网站模板
  • 虚拟主机 2个网站小广告清理
  • 网站app软件下载安装西安博网站建设
  • 网站建设思路方法淘宝网站建设杭州
  • 北京网站建设的服务深圳建站公司价格
  • 展示型企业网站设计方案做lgoo的网站一般有哪些
  • 免费建站的网站能做影视网站吗上海市建设工程信息报送网站
  • 成都教育网站建设公司价格ppt网站建设
  • 电商企业网站建设清河做网站哪里好
  • wordpress 文章属性湖南关键词优化推荐
  • 安徽住房与城乡建设门户网站做一个网站需要多少费用
  • 集团门户网站建设方案美篇app制作教程
  • php网站开发wordpress多域名配置
  • 英语外贸网站建设国外的技术社区
  • 企业建站公司案例如何建设简易网站
  • 网站制作公司杭州做游戏制作 网站
  • 临沂网站建设兼职wordpress下载及安装
  • 手机可以设计网站吗局域网搭建wordpress慢
  • 做集团网站的dede后台做两个网站
  • 携程企业网站建设的思路下列属于网页制作平台的是
  • 深圳外贸建站模版软件商店软件下载