自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 梳理android中设置线程优先级底层原理

android中设定线程优先级通常有两种方式,一种是通过Process.setThreadPriority方法来实现,另一种是通过Process.setThreadScheduler方法来实现。这两个方法最终会通过系统调用,分别通过执行linux中的setpriority、sched_setscheduler函数来实现线程优先级的置。

2024-06-18 23:22:43 481

原创 android中常用绑核方式及其原理

android中应用进程可以在多个cpu上运行,当操作系统在cpu之间频繁切换应用时,可能会引起缓存失效、降低缓存命中率,导致cpu的使用效率下降。此外,手机soc芯片通常是大小核架构,相同的任务,大核的处理时间要小于小核的处理时间。因此,为了追求更好的性能表现,android中经常需要在某些时候把一些关键线程/进程绑定在某个或某些指定的cpu上运行,这种操作俗称“绑核”。

2024-05-19 22:48:07 737

原创 WMS中BLASTSyncEngine机制与Transaction处理流程

WMS中的窗口绘制与显示的载体是Surface,而Surface在底层SurfaceFlinger中的存在形式为Layer,Layer的显示受到上层Surface状态的影响:当Surface被设为可见、且alpha不为0、没有被hidden时,底层Layer才会被判断为可见、进而参与Layer合成流程并在下一帧显示在屏幕上;当上层Surface被销毁时,底层Layer也会从SurfaceFlinger所维护的Layer列表中移除。而上层WMS需要实时的、通过binder通信跨进程将Surface信息更新至S

2024-05-04 23:38:52 1001

原创 探索Surface同步机制

Surface同步机制为android13新增,相关核心代码为SurfaceSyncer.java,主要作用为提供ViewRootImpl与SurfaceView(假如窗口存在SurfaceView的情况下)同步服务,实现在主Surface与SurfaceView均完成绘制时再去上报至WMS进行窗口状态的切换,避免主Surface绘制完成上报至WMS后、同时SurfaceView迟迟没有绘制完成使得startingWindow过早移除从而产生黑屏的现象。

2023-12-10 15:28:07 599 2

原创 总结与探讨:anr产生原因与应对方法

上一篇文章梳理了android中窗口触发anr的机制与处理流程,这一篇文章将对anr产生的直接原因以及应对anr的方法做一个总结与探讨。

2023-10-28 22:35:19 455

原创 anr触发机制与处理流程

本文主要是针对窗口发生anr的情况进行梳理,其他情况诸如 Service、Broadcast等发生anr不在本文关注范围内。

2023-10-22 14:12:22 187 1

原创 InputDispatcher中窗口列表的更新逻辑

本文主要介绍InputDispatcher中的窗口列表更新原理

2023-10-15 21:29:56 474

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除