- 博客(10)
- 收藏
- 关注
原创 AndroidQ SystemUI之锁屏加载(下)密码锁屏
本篇文章接着上一篇,上一篇主要分析了滑动锁屏加载流程,这篇我们分析密码锁屏也叫Bouncer的加载,看看系统如何加载不同密码锁屏以及如何动态添加的我们知道密码锁屏有三种,pin/password/pattern,还有两种SIM卡的bouncer,SIM PIN/SIM PUK,要显示密码锁屏,首先需要上滑滑动锁屏,我们就以上滑滑动锁屏为入口分析密码锁屏的出现通过上一篇文章我们知道滑动锁屏是一个id为notification_panel的自定义ViewGroup,对应类NotificationPanelV
2021-07-18 23:56:36
1148
1
原创 AndroidQ SystemUI之锁屏加载(上)滑动锁屏
本篇来分析下Android锁屏的加载流程,锁屏加载比较复杂,涉及framework和SystemUI,这篇主要分析SystemUI部分,锁屏有两种,一种滑动锁屏,另一种密码锁屏,也叫Bouncer。前面AndroidQ SystemUI之启动 中分析了SystemUI启动过程中会加载一个config数组,里面定义了SystemUI的重要的类,之后遍历此数组,以此调用其Start方法,我们就从StatusBar.start方法开始分析锁屏相关的流程StatusBar.startpublic void s
2021-07-18 23:48:59
1276
原创 AndroidQ SystemUI之power键灭屏锁屏流程
本篇接着分析锁屏相关流程,通常我们点击power键会灭屏,灭屏时就会加载锁屏,以便用户能在下次亮屏时第一时间看到锁屏,我们就来看看点击power键灭屏锁屏的流程Android的事件分发流程大概是:InputReader读取dev/input设备节点的原始事件->通过封装传递给InputDispatcher->InputDispatcher找到对应处理事件的窗口并将事件分发到上层ViewRootImpl->ViewRootImpl再进行上层的事件分发…对于Key事件,InputDispa
2021-07-18 23:46:12
1537
原创 Android Q安全锁屏下进入google photos不弹bouncer界面
复现步骤Andoird 10平台,设置锁屏密码(pin/passowrd/pattern)->双击power键启动camera->拍照->点击左下角预览->进入google photo->(KO,此时无法弹出bouncer界面输密码,而是直接返回锁屏界面)还有个比较奇怪的现象是当photos启动之后主activity未被销毁即没有点击back就不会复现此问题了,当主activity销毁后就会复现初步分析首先进行交叉验证确认是camera,google photos,还是
2021-07-18 23:43:21
413
原创 打印堆栈调试
打印堆栈是调试的常用方法,一般在系统异常时,我们可以将异常情况下的堆栈打印出来,这样十分方便错误查找。实际上还有另外一个非常有用的功能:分析代码的行为。android代码太过庞大复杂了,完全的静态分析经常是无从下手,因此通过打印堆栈的动态分析也十分必要。Android打印堆栈的方法,简单归类一下zygote的堆栈dump实际上这个可以同时dump java线程及native线程的堆栈,对于java线程,java堆栈和native堆栈都可以得到。使用方法很简单,直接在adb shell或串口中输入
2021-07-18 23:30:43
892
原创 AndroidQ 上滑解锁时锁屏退出与Window切换的源码分析
AndroidQ 上滑解锁时锁屏退出与Window切换的源码分析https://blog.youkuaiyun.com/qq_26825819/article/details/107555391锁屏界面时,touch事件触发界面上滑的动作此处就不再分析,网上已经有很多详细的信息供大家观看,本文主要分析上滑解锁后锁屏Window切换退出过程等.(1)PanelBar扩展完全关闭,通知StatusBar面板消失notifyBarPanelExpansionChanged(PanelView.java)==>
2021-07-18 23:10:15
936
原创 2021-07-18
最近由于工作上的需要,结合一些大神的相关博客与Android源码,大概的把WMS中的app Transition流程给熟悉了一遍,在此写下一些小结app Transition的主要流程app Transition代表activity组件的切换过程,启动或是退出activity都会执行app Transition,Android系统定义了多达十几种app Transition类型,这些类型定义在AppTransition.java中app Transition的过程可以用下图表示。image.png
2021-07-18 23:07:31
212
原创 AppTransition
前面的文章说过,AppTransition代表了activity组件的切换过程,其实解锁也是一种AppTrasition,只不过需要隐藏的activity组件是锁屏窗口罢了(严格来说并不是锁屏窗口被隐藏了,它只是调整了窗口的大小及相关参数,最后变成状态栏),解锁过程的窗口变化主要是以下几点改变锁屏窗口状态显示锁屏下方的窗口播放解锁动画1.解锁过程的appTransition解锁过程的核心实质上是锁屏启动了一个runnable,通知AMS和WMS显示锁屏下方的activity组件窗口以及调用该act
2021-07-18 23:04:46
605
原创 2021-07-18
上锁的主要是两个步骤设备加密,这块主要是与android管理设备密码服务相关显示锁屏界面,即展开通知面板,同时加载密码界面的布局,但是会隐藏起来,等到向上划去锁屏界面才显示更新activity stack的状态,锁屏下的activity会被置为onstop执行上锁的流程是调用KeyguardViewMediator的doKeyguardLocked函数来完成的private void doKeyguardLocked(Bundle options) {if (!mExternallyEnable
2021-07-18 22:58:55
200
转载 2021-07-18
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-07-18 22:54:48
270
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人