Recent 按键有三种,实体按键、虚拟导航键、手势导航。除了手势导航外(主要是launcher中监听滑动事件判断处理:Android 手势导航),实体按键和虚拟导航键流程基本一致,只有前面监听的方式不同:

一、实体按键监听

按键上报到 PhoneWindowManager.java 中,按照 KeyEvent.KEYCODE_APP_SWITCH 按键事件处理执行 statusbar.toggleRecentApps() ,实现在 StatusBarManagerService.toggleRecentApps() 方法中。

        @Overridepublic void toggleRecentApps() {if (mBar != null) {try {mBar.toggleRecentApps();} catch (RemoteException ex) {}}}

这里 mBar.toggleRecentApps() 通过 Binder 机制跨进程调用 SystemUI 中的 CommandQueue toggleRecentApps()

二、虚拟导航键监听

NavigationBarFragment 中对 RecentsButton 注册监听回调 onRecentsClick

    private void onRecentsClick(View v) {if (LatencyTracker.isEnabled(getContext())) {LatencyTracker.getInstance(getContext()).onActionStart(LatencyTracker.ACTION_TOGGLE_RECENTS);}mStatusBarLazy.get().awakenDreams();mCommandQueue.toggleRecentApps();}

点击虚拟导航栏的 RecentsButton 就执行 CommandQueue toggleRecentApps()

三、Recent 加载

Android 在9.0之前 Recents 是在 SystemUI 模块中,从9.0后 Recents 分开在 SystemUI 和 Launcher 中,最终由 Launcher 进行界面显示。

Android 11 Recent按键流程相关推荐

  1. Android 11 WiFi启动流程

    欢迎大家一起学习探讨通信之WLAN.本节重点基于Android11分析讨论WiFi开启流程.用户点击一下"WiFi"开关,WiFi开启了.看似如此简单操作,但系统流程调用还是相当复 ...

  2. Android 11 热点(softap)流程分析

    最近在做Android 11中热点的功能,主要是网络共享,一个是usb网络共享,一个是热点网络共享,本文只是记录热点分享的流程. 一. settings 里面打开热点的接口跟原来类似 packages ...

  3. Android 11 热点(softap)流程分析(二) WifiManager--AIDL

    Android 10以后引入了stable aidl方法,结合上一篇中WifiManager类中通过aidl调用到WifiServiceImpl类中方法,做个详细的记录. 一.frameworks/b ...

  4. Android添加一个按键流程及SELinux权限问题

    最近做高通平台P版本遇到一个添加按键问题,驱动在底层添加了节点,后面就不管了,刚好借此机会搞一下添加案件的整个流程下面写下流程,以做笔记 1.驱动添加节点:节点就是驱动添加的文件 ,sys/class ...

  5. Android 11 WiFi开启流程

    从刚接触WiFi时跟过wifi的开启流程,当时还是android9.到了Android11代码架构有了不小的改动,在这里重新梳理一遍,便于在工作中更快速的跟踪代码. 一.Settings里改动不大,还 ...

  6. Android 11 WiFi扫描流程梳理

    上一篇我们梳理了WiFi的开启流程,Android11 WiFi开启流程,在最后我们说到ActiveModeWarden中注册了ClientListener监听器.我们接着这个逻辑继续梳理一下打开Wi ...

  7. Android 11 自动亮度调试流程

    ⾃动背光调节主要过程是通过:监听light sensor 数据,得到对应的 Lux 值,再通过配置的背光曲线计算出当前的亮度,然后设置亮度值. Settings.System.putInt(mCont ...

  8. Android 4.0按键事件以及系统流程分析

    Android 4.0中按键的处理流程 按键在Android系统中,有着不同的代表意义.以前的全键盘的手机代码没有阅读过,所以也不是很了解.本人介绍的是在触摸屏的手机上的按键消息的处理流程. 在现在触 ...

  9. Android 11(platfrom 30)APP启动流程(含Activity)核心点记录

    前言:边分析,边记录 不断更新. 注意:阅读此文请同时打开android-30的源码,一步一步按文章同步跟进阅读源码,因为源码量太大,这里只能贴出部分核心代码. 场景一.从桌面点击APP图标进行启动 ...

最新文章

  1. LeetCode简单题之长按键入
  2. 小乐乐打游戏(BFS+曼哈顿距离)
  3. 破解人工智能系统的四种攻击方法!
  4. 守卫者的挑战(guard)
  5. go kegg_GO,KEGG富集分析工具——DAVID
  6. c++数字金字塔_“资金管理是投资最大的秘密”(超级干货),一生死记“金字塔加仓减仓法”,最安全稳健的操盘法方式!...
  7. 小程序组件库开发之抽奖游戏组件
  8. 用GVIM/VIM写Verilog——VIM配置分享
  9. 腾讯校园招聘笔试 2019-8-17 第五题
  10. 登录后主机名变成-bash-4.2解决
  11. Changing a remote's URL
  12. java中的常见算法
  13. 调通sina33m下的AP6212A0版本(分色排版)V1.0版本
  14. 无视任何限制和权限 强制删除文件夹/文件
  15. xp共享不同网络的win7计算机,windows7与xp怎么设置共享局域网_win7与xp共享局域网如何建立...
  16. 破解iOS微信骰子和猜拳
  17. Google Authenticator 原理及Java实现
  18. 嵌入式系统硬件体系设计(一)
  19. 【JAVA学习】java中怎么遍历HashMap(Iterator迭代器遍历)
  20. html封套成exe,一种使用方便的封套的制作方法

热门文章

  1. el-table合并单元格,合并行与列
  2. 中专学历自学前端找工作?也太真实了。。。
  3. 爬取百度搜索引擎的搜索结果
  4. c#—OpenFileDialog(打开文件对话框)
  5. ffmpeg——av_write_trailer写文件尾
  6. string find函数
  7. java项目中的classpath到底是什么
  8. wait,、WIFEXITED和WEXITSTATUS介绍
  9. 日常健身养生八大法宝
  10. VS qsort和sort函数