
Android框架相关
文章平均质量分 93
csbhwy
这个作者很懒,什么都没留下…
展开
-
Android ANR机制的原理以及问题分析(三)
文章目录一、前言二、Broadcast Timeout三、Broadcast 设置 定时器四、Broadcast 重置 定时器五、Broadcast 触发ANR一、前言上一篇我们对Service类型的ANR做了介绍,本篇我们将集合源码,对四种ANR类型中的Broadcast Timeout类型的触发机制做详尽的介绍。二、Broadcast Timeout在ActivityManagerService 中,构造了两种Broadcast timeout,分别是 前台FG 10s和后台BG 60s.m原创 2021-05-16 18:28:34 · 612 阅读 · 0 评论 -
Android ANR机制的原理以及问题分析(二)
文章目录一、前言二、Service Timeout三、 Service 设置定时器四、Service 重置定时器五、Service触发ANR六、总结一、前言ANR⼤致划分为Service、Broadcast、InputDispatch、Provider四中类型,下⾯⼀⼀解释他们各⾃的监测原理。本篇我们将集合源码,对四种Service类型的触发机制做详尽的介绍。二、Service TimeoutService Timeout是位于”ActivityManager”线程中的ActivityManage原创 2021-05-13 23:44:19 · 817 阅读 · 7 评论 -
Android ANR机制的原理以及问题分析(一)
文章目录一、前言二、 ANR的类型三、臭名昭著的ANR一、前言Android开发人员对ANR应该毫不陌生——Application Not Responding,即应用程序未响应。ANR的核心原理是消息机制的调度和超时处理,它要求主线程在限定时间内做完任务处理,比如:启动Activity/Service、发送广播、ContentProvider查询、Input事件分发等,否则就可能发生ANR引起性能问题。处理超时时,系统会认为当前主线程已经失去响应其他操作的能力。这些耗时操作包括:密集的CPU运算、大量原创 2021-05-13 22:47:12 · 2201 阅读 · 1 评论 -
Handler延时消息的实现机制
Handler是如何实现延迟消息的?针对这个问题,我们从源码的角度来剖析一下Handler延时消息的实现逻辑.handler核心的发送消息的方法是sendMessage,有的朋友会说那post呢?PS:post的话其实算是一个handler的语法糖,传入runnable后帮助我们构建一个message/** * Causes the Runnable r to be added to the message queue. * The runnable will be run o原创 2020-09-07 16:46:06 · 1315 阅读 · 0 评论 -
HandlerThread的使用场景和用法
相信很多同学都听说并使用过HandlerThread、Thread、Handler,但具体对这三种的用法和区别你真有认真总结过吗?本文帮你区别并了解三者的基本用法。Thread基本用法Thread类实现了Runnable接口,必须重写run()方法;//匿名内部类形式new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated原创 2020-09-07 14:59:10 · 16931 阅读 · 25 评论 -
Android自动背光调节机制分析
文章目录1. 手动背光调节1.1 在Settings/SystemUI中手动调节2.自适应背光调节2.1 类架构2.2 创建背光样条曲线2.3.AutomaticBrightnessController的初始化2.4 AutomaticBrightnessController的配置2.4.1 setBrightnessConfiguration():2.4.2 setDisplayPolicy()2.4.3 setAutoBrightnessAdjustment()2.4.4 setScreenBright转载 2020-05-25 14:44:23 · 11951 阅读 · 1 评论 -
Enhancement 4G mode流程
文章目录1. About Enhancement 4G mode2. Set on/off3. Save4. Setting on/off flow:5. 流程时序图1. About Enhancement 4G modeuse LTE services to improve voice and other communications2. Set on/offSettings->more->cellular networks->VoLTE3. Savethe setting原创 2020-05-22 17:40:43 · 638 阅读 · 0 评论 -
Zygote如何fork一个进程
文章目录1. Android系统启动流程图2. fork过程的流程图和调用堆栈3. Zygote fork过程源码跟踪4. fork成功之后ActivityThread及后续5. 小结上一篇我们对Launcher启动的过程做了一个跟踪,跟踪到AMS通过socket向Zygote请求fork新进程之后就停止追踪了,现在我们单独写一篇,接着上一篇,当然也不仅仅是针对Launcher,对进程的fork...原创 2020-05-07 11:24:35 · 2126 阅读 · 0 评论 -
Launcher启动过程分析
在systemReady()原创 2020-05-06 16:37:10 · 581 阅读 · 0 评论