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

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.jsqmd.com/news/258511/

相关文章:

  • Java实习模拟面试复盘:深入HashMap线程安全、Spring Boot核心机制与分布式系统设计(实在智能终面45分钟)
  • Mybatis-Plus更新操作时的一个坑
  • Postman发送POST请求,模拟请求头界面的响应信息
  • Linux内核是怎么发现内存泄漏的?深入kmemleak源码,揭秘检测原理
  • Java实习模拟面试复盘:深度剖析高并发数据库设计、Redis去重与Agent系统架构(百度日常实习后端二面)
  • Java版LeetCode热题100之二叉树的中序遍历:从递归到Morris遍历的深度解析
  • 供电系统:TN系统、TT系统、IT系统
  • Jmeter分布式压测详解
  • Java版LeetCode热题100之二叉树的最大深度:从DFS到BFS的全面解析
  • 贾子智慧AI战略五五三三落地细则(2025‑2035):认知破壁、生态重构与文明适配三阶段系统部署
  • 5分钟Pytest快速入门
  • 基于贾子智慧理论体系的中国 AI 发展与竞争国家战略(2025-2035)
  • AI 时代文明跃迁的贾子智慧评估指标体系(Kucius Wisdom Assessment System for Civilization Transition, KWACTS)
  • 能源监测管理平打造工业园区“智慧能源大脑”
  • 人类社交场合
  • 心智革命——AI搜索如何重塑人类认知与知识未来
  • 污水处理DCS数据采集组态监控系统方案
  • 基于深度学习神经网络YOLOv4目标检测的口罩识别系统
  • 群雄逐鹿——AI搜索产业竞争与商业模式变革
  • 沃尔玛购物卡回收靠谱平台TOP3推荐 - 京顺回收
  • 学Simulink--基础MPPT控制场景实例:基于Simulink的双模式MPPT(快速追踪+稳态优化)仿真
  • 基于Simulink的储能参与黑启动过程控制仿真
  • 技术深潜——AI搜索的架构演进与开源生态
  • 基于深度学习神经网络的验证码识别系统
  • 2026年AI智能办公鼠标排行榜,分析鸿容智能办公鼠标公司介绍 - 工业品牌热点
  • 基于Pytorch框架的深度学习Vision Transformer神经网络蝴蝶分类识别系统源码
  • 手把手教你学 GPU KMD--1.1:UMD、KMD 与 DDK 的协作关系——从应用到硬件的完整数据流解析
  • 吃尾巴
  • centos stream9:设置系统时区
  • 基于keras框架的LeNet/AlexNet/Vgg16深度学习神经网络花卉/花朵分类识别系统源码