Android 线程梳理

Android 线程梳理

Android 进程梳理


APP 进程的线程

  • Heap thread poo 异步的HeapWorker, 包含5个
  • Signal Catcher 捕捉Kernel信号,比如SIGNAL_QUIT
  • JDWP 虚拟机调试的线程
  • ReferenceQueueD 用于GC
  • FinalizerDaemon 用于GC
  • FinalizerWatchd 用于GC
  • HeapTrimmerDaem 用于GC
  • GCDaemon 用于GC
  • Binder_1 用于IPC
  • Binder_2 用于IPC
  • pool-m-thread-n 线程池m中的第n个线程,包含若干个
  • AsyncTask #1 异步任务
  • RenderThread 渲染线程
  • WifiManager 管理wifi的线程

SystemServer 进程的线程

  • Input

    • 是 SystemServer 线程里面非常重要的一部分,主要是由 InputReader 和 InputDispatcher 这两个 Native 线程组成
  • 窗口动画

    • 由于窗口归 SystemServer 来管,那么窗口动画也就是由 SystemServer 来进行统一的处理,其中涉及到两个比较重要的线程,Android.Anim 和 Android.Anim.if 这两个线程
    • Android P 里面,应用的启动动画由 Launcher 和应用自己的第一帧组成,之前是在 SystemServer 里面的,现在多任务的动画为了性能部分移到了 Launcher 去实现
  • ServiceThread:ServiceThread 继承自 HandlerThread ,下面介绍的几个工作线程都是继承自 ServiceThread。每个 Thread 都有自己的 Looper 、Thread 和 MessageQueue,互相不会影响。

    • UiThread
    • IoThread
    • DisplayThread
    • AnimationThread:名字叫 android.anim。WindowAnimator 的动画执行也是在 AnimationThread 线程中的,Android P 增加了一个 SurfaceAnimationThread 来分担 AnimationThread 的部分工作,来提高 WindowAnimation 的动画性能
    • SurfaceAnimationThread:名字叫 android.anim.lf。分担 android.anim 线程的一部分动画工作,减少由于锁导致的窗口动画卡顿问题
    • FgThread
  • RenderThread 渲染线程

  • ActivityManagerService

    • 与 AMS 相关的 Trace 一般会用 TRACE_TAG_ACTIVITY_MANAGER 这个 TAG,在 Systrace 中的名字是 ActivityManager
  • WindowManagerService

    • 与 WMS 相关的 Trace 一般会用 TRACE_TAG_WINDOW_MANAGER 这个 TAG,在 Systrace 中 WindowManagerService 在 SystemServer 中多在对应的 Binder 中出现,比如下面应用启动的时候,relayoutWindow 的 Trace 输出
    • 在 Window 的各种场景一般都会有对应的 Trace 点来记录,比如大家熟悉的 relayoutWIndow、performLayout、prepareToDisplay 等
  • PackageManager PKMS线程

  • PowerManagerSer PMS线程

  • HandlerThread

    • BackgroundThread,om/android/internal/os/BackgroundThread.java。BackgroundThread 在系统中使用比较多,许多对性能没有要求的任务,一般都会放到 BackgroundThread 中去执行
  • Binder

    • 很多时候当后台有大量的 App 存在的时候,SystemServer 就会由于 Binder 通信和锁竞争,导致系统或者 App 卡顿
    • Binder_ IPC线程, 包含16个
  • system_server 包含4个此同名线程

  • Heap thread poo 异步的HeapWorker, 包含5个

  • Signal Catcher 捕捉Kernel信号,比如SIGNAL_QUIT

  • JDWP 虚拟机调试的线程

  • watchdog 看门狗线程

  • CpuTracker 统计进程CPU信息

  • PerformanaceCont system_server专有

  • FileObserver system_server专有

  • WifiMonitor system_server专有

  • UEventObserver system_server专有

  • Thread_ 普通线程,包含若干个

  • AsyncTask # 异步任务,包含若干个

JVM 中的线程

  • Mutator 修改器线程,指任何可以修改Heap的线程,一般指应用业务线程。往往是Java线程
  • Collector 垃圾回收的线程,往往不是Java线程
  • JIT编译线程,单独的线程
  • 处理finalization和weak-referencing的线程,往往是单独的线程

Zygote 进程的线程

  • ReferenceQueueD 引用队列的守护线程
  • FinalizerDaemon 析构的守护线程
  • FinalizerWatchd 析构监控的守护线程
  • HeapTrimmerDaem 堆整理的守护线程
  • GCDaemon 执行GC的守护线程

mediaserver 进程的线程

  • mediaserver
  • ApmTone
  • ApmAudio
  • ApmOutput
  • Safe Speaker Th
  • AudioOut_2
  • FastMixer
  • AudioOut_4
  • FastMixer
  • AudioOut_6
  • Binder_1
  • Binder_2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1173874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML与CSS核心概念详解

一、HTML:超文本标记语言 什么是“超文本”? 超文本(HyperText) 的核心是“链接”。传统文本是线性的(像一本书,一页接一页),而超文本通过可点击的链接,让信息能够非线…

Java实习模拟面试复盘:深入HashMap线程安全、Spring Boot核心机制与分布式系统设计(实在智能终面45分钟)

Java实习模拟面试复盘:深入HashMap线程安全、Spring Boot核心机制与分布式系统设计(实在智能终面45分钟)关键词:Java面试 | HashMap | 线程安全 | Spring Boot | 分布式ID | JWT鉴权在近期参加的实在智能公司Java开发工程师终面中…

Mybatis-Plus更新操作时的一个坑

Mybatis-Plus更新操作时的一个坑在 MyBatis-Plus开启逻辑删除 的情况下,updateById更新逻辑删除字段时, “看起来执行了但实际上没有更新”的问题是一种较为常见但不易察觉的问题。背景:项目中使用mybatis-plus且已开启逻辑删除:1…

Postman发送POST请求,模拟请求头界面的响应信息

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快postman发送POST请求示例:微信公众平台创建用户标签接口,业务操作如下:1、打开微信公众平台,微信扫码登录&#xff1…

Linux内核是怎么发现内存泄漏的?深入kmemleak源码,揭秘检测原理

用户态内存泄漏好查,有Valgrind、ASan这些神器。但内核态?那完全是另一回事。 内核模块一旦泄漏内存,不会像用户进程那样被OOM Killer干掉,而是一直占着内存,直到系统重启才能释放,更麻烦的是内核没有独立的地址空间隔离,一个驱动的泄漏可能把整个系统拖垮。 那Linux内…

Java实习模拟面试复盘:深度剖析高并发数据库设计、Redis去重与Agent系统架构(百度日常实习后端二面)

Java实习模拟面试复盘:深度剖析高并发数据库设计、Redis去重与Agent系统架构(百度日常实习后端二面)关键词:Java面试 | 数据库设计 | Redis | 分布式系统 | Agent架构 | 百度面试在参加百度日常实习后端开发岗位的第二轮技术面试中…

Java版LeetCode热题100之二叉树的中序遍历:从递归到Morris遍历的深度解析

Java版LeetCode热题100之二叉树的中序遍历:从递归到Morris遍历的深度解析 本文将全面、深入地剖析 LeetCode 第94题「二叉树的中序遍历」,不仅提供三种主流解法(递归、迭代、Morris),还涵盖算法原理、复杂度分析、面试…

供电系统:TN系统、TT系统、IT系统

TN系统 对于TN方式供电系统而言,它主要指的是一种将电气设备的金属外壳与工作零线进行有效相接的保护系统,因此TN方式供电系统又被称作为接零保护系统。值得一提的是,在TN方式供电系统当中,又可以根据其保护零线是否与工作零线向…

Jmeter分布式压测详解

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 一、什么是压力测试? 压力测试(Stress Test),也称为强度测试、负载测试,属于性能测试的范畴。 压力…

Java版LeetCode热题100之二叉树的最大深度:从DFS到BFS的全面解析

Java版LeetCode热题100之二叉树的最大深度:从DFS到BFS的全面解析本文将深入剖析 LeetCode 第104题「二叉树的最大深度」,涵盖递归(DFS)与层序遍历(BFS)两种主流解法,并延伸至算法原理、复杂度分…

贾子智慧AI战略五五三三落地细则(2025‑2035):认知破壁、生态重构与文明适配三阶段系统部署

贾子智慧AI战略五五三三落地细则(2025‑2035):认知破壁、生态重构与文明适配三阶段系统部署摘要: 本细则以贾子智慧“四大支柱五五三三定律”为内核,按“认知破壁期(2025‑2027)—生态重构期&am…

5分钟Pytest快速入门

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 Pytest的入门操作使用Pytest特点非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考能够支持简单的单元测试和复杂的…

基于贾子智慧理论体系的中国 AI 发展与竞争国家战略(2025-2035)

智慧主导智能:基于贾子智慧理论的中国AI发展与竞争国家战略(2025‑2035) 摘要 本战略以贾子智慧“四大支柱五五三三定律”为框架,确立“智慧主导智能、可控优于领先”的核心原则,旨在构建区别于美国技术霸权的新范式。…

AI 时代文明跃迁的贾子智慧评估指标体系(Kucius Wisdom Assessment System for Civilization Transition, KWACTS)

AI 时代文明跃迁的贾子智慧评估指标体系(Kucius Wisdom Assessment System for Civilization Transition, KWACTS)本体系以贾子智慧理论体系的四大支柱 五五三三定律为核心,融合 “认知 - 技术 - 能源 - 经济 - 社会 - 文明” 六维协同逻辑&…

能源监测管理平打造工业园区“智慧能源大脑”

场景痛点:随着“双碳”目标深入推进及能源成本持续攀升,传统工业园区普遍面临用能“黑箱”困境:能源数据分散、依赖人工抄表、无法实时掌握整体与各企业用能情况;缺乏有效的能效分析与预警手段,用能浪费严重&#xff1…

人类社交场合

人类社交场非逻辑、非系统特征列表特征类别特征名称核心悖论/模糊性表现形式/潜规则社会功能运作逻辑权力关系映射情感维度风险与代价文化差异性关系距离的模糊弹性可进可退的距离艺术既需要亲密又需要边界,距离无固定刻度1. 身体距离的微妙调整(半步之差…

心智革命——AI搜索如何重塑人类认知与知识未来

引言:当外部记忆成为认知器官公元前4000年,苏美尔人发明了文字,人类开始了将记忆外化的历程。公元前300年,亚历山大图书馆试图收集所有人类知识。1440年,古登堡印刷机让知识大规模复制成为可能。1998年,谷歌…

污水处理DCS数据采集组态监控系统方案

某污水处理厂采用DCS系统对污水处理流程进行集中监控与控制,具备手动、自动、维护等多种运行模式,并在中控室实现工艺参数的实时展示与设备状态管理。为进一步提升管理效率与智能化水平,现需对现有系统进行数字化升级,将污水处理关…

群雄逐鹿——AI搜索产业竞争与商业模式变革

引言:万亿美元战场的全新博弈 2023-2024年,全球科技巨头在AI搜索领域的总投入超过2000亿美元。这个数字不仅体现了技术转型的规模,更揭示了一个残酷现实:传统搜索市场每年超过3000亿美元的广告收入蛋糕正在重新分割,而…

基于深度学习神经网络YOLOv4目标检测的口罩识别系统

第一步:YOLOv4介绍 YOLOv4是一种目标检测算法,它在精度和速度之间取得了最佳的平衡。它是YOLO(You Only Look Once)系列算法的最新版本,通过将目标检测任务转化为一个回归问题,实现了实时目标检测。YOLOv4…