Systrace笔记

310 阅读1分钟
1. Runnable状态的线程
  1. Runnable状态的线程,之前都是sleep状态,可以查看其是被哪个APP的哪个线程唤醒 image.png
    • 可见,之前处于sleep状态的线程是被launcher中的3158线程唤醒.
  2. Runnable状态的线程持续时间越长,表示CPU调度越忙,没有及时处理这个任务.
  • 那CPU当前在处理哪个任务?
    • 选中Runnable后面的Running,查看其在哪个CPU上运行
    • 选中Runnable,向上拉到对应CPU,看当前时间短该CPU在执行哪个任务 image.png image.png
2. 几个概念
  1. 屏幕刷新率
    • 硬件的概念
    • 1秒内会刷新显示画面的次数
  2. FPS
    • 软件概念
    • Frame per Second :1秒可以产生多少帧画面
3. SystemServer中的ActivityManagerService
  1. 与AMS相关的Trace一般会用TRACE_TAG_ACTIVITY_MANAGER,在Systrace中的名字是ActivityManager.位于SystemServer中. image.png
4. SystemServer中的WindowManagerService
  1. 与 WMS 相关的 Trace 一般会用 TRACE_TAG_WINDOW_MANAGER 这个 TAG.
  2. Systrace 中 WindowManagerService 在 SystemServer 中多在 对应的 Binder 中出现,比如下面应用启动的时候,relayoutWindow 的 Trace 输出. image.png
5. SystemServer中的Input
  1. 在SystemServer中,Input主要由InputReader和InputDispatcher两个线程组成. image.png
6. Android主线程运行机制的本质
  1. 就是Message的处理过程
  2. 各种操作,包括每一帧的渲染,都是通过Message形式发给主线程的MessageQueue, MessageQueue处理完当前Message继续等待下一个Message.
7. Vsync + TripleBuffer + Choreographer
  1. 目的是为了提供一个稳定的帧率输出机制
  2. 让软件层和硬件层可以用相同的频率一起工作
  3. 对于60HZ的屏幕刷新率,Vsync信号周期对应16.6ms,每隔16.6ms,Vsync信号唤醒Choreographer来执行APP的绘制操作. image.png