源码分析之——WMS启动流程

2023-10-30

1.源码分析之——AMS启动流程
2.源码分析之——WMS启动流程
3.源码分析之——SharedPreferences
4.源码分析之——Retrofit
5.源码分析之——OKHttp
6.源码分析之——Android事件分发机制

前言

上一节讲了Activity启动流程,下面针对WMS启动做一个简单的介绍。以Android10.0 aosp为基础进行梳理。
谨以此记录下学习流程,欢迎广大博友交流指正。是时候提高一波了。。。

启动流程

在这里插入图片描述

简单分析

SystemServer类中run()方法在执行的时候会启动三类服务,分别为:startBootstrapServices(),startCoreServices(),startOtherServices()。其中WMS启动就是在startOtherServices()中执行。
在这里插入图片描述
如图所示分为四个步骤(无关代码已经省略)。
1.main()方法用来创建一个WindowManagerService实例。
2.onInitReady()方法主要调用initPolicy()用来初始化PhoneWindowManager。
3.displayReady()主要初始化UI尺寸。
4.systemReady()启动准备工作完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

源码分析之——WMS启动流程 的相关文章

  • getItem 与 getItemAtPosition

    有两种方法可以获取列表视图中的选定项目 list getAdapter getItem position list getItemAtPosition position 我的问题是 哪一种是首选的做法 我见过人们同时使用这两种方法 您可以使
  • Android第一次动画不流畅

    我正在尝试一个动画将 imageView 从屏幕底部滑动到屏幕中心 但是当我第一次执行此动画时 它不平滑 但当第二次执行动画时 它是正常且平滑的 我几乎尝试了所有方法 但无法解决我的问题 这是我的动画文件
  • Android 应用程序在后台运行时保存数据

    目前我正在开发 xmmp 客户端 当应用程序位于前台时 该客户端工作得很好 但由于事实上 当应用程序处于后台时 我在 Application 类中保存了大量数据 复杂的 ArrayList 字符串和布尔值作为公共静态 每个字段都被垃圾收集
  • Android SoundPool 堆限制

    我正在使用 SoundPool 加载多个声音剪辑并播放它们 据我所知 它的功能 100 正确 但在 load 调用期间 我的日志中充斥着以下内容 06 09 11 30 26 110 ERROR AudioCache 23363 Heap
  • 在自定义对象中创建时粘性服务不会重新启动

    我有一个具有绑定服务的单例对象 我希望它重新启动 当我从启动器启动应用程序时 单例对象将初始化并绑定到这个现有的服务实例 以下是在单例中创建和绑定服务的代码 public class MyState private static MySta
  • Android libgdx 首选项丢失

    我在 Libgdx 引擎中创建了 Android 游戏 一段时间后 我注意到在某些应用程序杀手中杀死该应用程序后 或者如果我在 Android 设置中执行 强制关闭 操作 我保存到首选项中的游戏选项就会丢失 有办法防止这种情况吗 我从来没有
  • 无法在自定义 AOSP 上安装 Google Play 中的某些应用程序:项目不可用。理由:9

    我在尝试从 Google Play 安装某些应用程序时收到以下错误 LibraryUtils isAvailable not available restriction 9 DocUtils getAvailabilityRestricti
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • 应用程序未安装在 Android 模拟器上

    我正在 android Geocoder 中开发一个应用程序 当我运行该应用程序时 它会显示 2011 01 11 11 08 13 GeoTourProject 自动目标模式 使用现有模拟器 emulator 5554 运行兼容的 AVD
  • Android 版 Robotium - solo.searchText () 不起作用

    我在使用 Robotium 时遇到 searchText 函数问题 我正在寻找这个字符串
  • MediaCodec 创建输入表面

    我想使用 MediaCodec 将 Surface 编码为 H 264 使用 API 18 有一种方法可以通过调用 createInputSurface 然后在该表面上绘图来对表面中的内容进行编码 我在 createInputSurface
  • 检查 Android 手机上的方向

    如何查看Android手机是横屏还是竖屏 当前配置用于确定要检索的资源 可从资源中获取Configuration object getResources getConfiguration orientation 您可以通过查看其值来检查方向
  • Android Studio:无法启动守护进程

    当我尝试在 Android Studio 中导入 gradle 项目时 遇到以下错误 Unable to start the daemon process This problem might be caused by incorrect
  • 如何在不更改手机语言的情况下更改Android应用程序语言?

    我希望用户在应用程序内选择一种语言 选择语言后 我希望字符串使用特定语言 如果我更改手机语言 那么我的应用程序将以设置的语言运行 我无法找到任何在不更改手机语言的情况下设置语言的方法 此外 一旦设置了语言 更改就应该反映出来 有人可以建议一
  • 如何创建像谷歌位置历史记录一样的Android时间轴视图?

    我想设计像谷歌位置历史这样的用户界面 我必须为我正在使用的应用程序复制此 UIRecyclerView 每行都是水平的LinearLayout其中包含右侧的图标 线条和视图 该线是一个FrameLayout具有圆形背景和半透明圆圈Views
  • Android 设备上的静默安装

    我已经接受了一段时间了 在 Android 上静默安装应用程序是不可能的 也就是说 让程序安装捆绑为 APK 的应用程序 而不提供标准操作系统安装提示并完成应用程序安装程序活动 但现在我已经拿到了 Appbrain 快速网络安装程序的副本
  • Android - 将 ImageView 保存到具有全分辨率图像的文件

    我将图像放入 ImageView 中 并实现了多点触控来调整 ImageView 中的图像大小和移动图像 现在我需要将调整大小的图像保存到图像文件中 我已经尝试过 getDrawingCache 但该图像具有 ImageView 的大小 我
  • Android中webview的截图方法

    我在 webview 中的 html5 canvas 上画了一些线 并尝试使用下面的代码截取 webview 的屏幕截图 WebView webView WebView findViewById R id webview webView s
  • 用于推送通知的设备令牌

    我正在实施推送通知服务 我需要创建一个数据库来存储 4 个移动平台的所有设备令牌 我想根据他们的平台 iOS Android BlackBerry WP7 来组织它们 但是有什么方法可以区分平台 这样如果我只想向 Android 用户发送消
  • 找到 Android 浏览器中使用的 webkit 版本?

    有没有办法知道某些特定手机上的 Android 浏览器使用的是哪个版本的 webkit 软件 如果有一个您可以浏览以获取该信息的 URL 那就太好了 但任何其他方式也很好 如果你知道 webkit 版本 你就知道 html5 支持多少 至少

随机推荐

  • kafka扩容数据自动重分配脚本

    本文章记录使用kafka reassign partitions sh脚本来重新分配节点分区 kafka节点扩容后 已经存在的旧的topic的分区是不会伴随节点的增加而变动的 所以需要我们手动的去调整分区 下面提供了一套脚本 可以实现自动化
  • ViewPage配合FragmentPagerAdapter

    http blog sina com cn s blog 881875e70101m648 html 先说一段题外话 我们在进行android开发的时候发现 activity是与界面相关的 view及其派生类也是与界面相关的 fragmen
  • clickhouse优化使用clickhouse-keeper替代zookeeper

    ClickHouse Keeper 是 ZooKeeper 的替代品 与 ZooKeeper 不同 ClickHouse Keeper 是用 C 编写的 并使用 RAFT 算法实现 该算法允许对读写具有线性化能力 clikhouse kee
  • 关于 char 初始化多个字符问题

    心血来潮试了试 给一个字符赋多个字母回如何 include
  • Swift语法学习--数组

    Swift语法学习 数组 一维数组 多维数组 数组遍历 数组与字符串转换 数组过滤 数组截取 多维数组转一维 一维数组 多维数组 数组遍历 数组与字符串转换 数组过滤 数组截取 多维数组转一维
  • IPv6 MTU issue

    IPv6中间的路由器不会对过通的IPv6报文进行分片 分片只会在源节点进行 中间的防火墙可能会阻止ICMP too big的报文 导致源端无法获知MTU失效 Since modern networks use MTUs of 1500 by
  • Opencv-C++笔记 (10) : opencv-图像像素计算

    文章目录 一 概率 二 寻找图像像素的最大值和最小值 三 计算图像的均值和标准方差 4 两张图片的比较运算 5 两张图片的逻辑运算 一 概率 我们可以将数字图像理解成一定尺寸的矩阵 矩阵中每个元素的大小表示了图像中每个像素的亮暗程度 因此统
  • 笔记本电脑的键盘突然用不了怎么办(┬_┬)?!

    作为一个铁打的程序员 如果突然键盘用不了 那无异于打断了我们的双手 脑海中一大堆的代码想要溢出却无法打出来 简直无法想象 今天晚上由于手贱下载了个VMware的清理软件 不小心把键盘驱动的注册表信息也删除了 然后就各种GG 瞎紧张了半个多小
  • C++基本数据类型

    C 基本数据类型 第一章 C 基本数据类型 文章目录 C 基本数据类型 前言 一 整形 二 实型 浮点型 三 字符和字符串 四 布尔类型 五 附录 转义字符表 六 附录 算数运算符 七 附录 赋值运算符 八 附录 比较运算符 九 附录 逻辑
  • ASO和ASM的关系与区别

    很多刚入行的从业者 都被ASO ASM这两个行业专属词搞混了 特别是ASM 接下来就由冠智ASO带你了解一下这两者的区别 一 ASO ASM的定义 ASO App Store Optimization 即应用商城优化 由美国传入中国的App
  • 宏碁使用UltraISO制作启动盘,装win10系统

    目录 前言 事先准备 第一步 制作启动盘 第二步 U盘装系统 第三步 安装必要的驱动 前言 今天想用软碟通来制作一个启动盘 安装win10系统 特此记录一下 事先准备 宏碁暗影骑士pro 32G U盘 Windows 10 LTSC 201
  • 由于系统限制了文件目录的读/写权限,程序将会退出,你可以重新安装百度网盘到有权限的目录或以管理员身份运行百度网盘。

    由于系统限制了文件目录的读 写权限 程序将会退出 你可以重新安装百度网盘到有权限的目录或以管理员身份运行百度网盘
  • Firefox,火狐about:config设置详解

    1 accessibility accesskeycausesactivation accesskey 允许用户通过Alt accesskey的方法来打开页面中的超链接 其中的accesskey需要网页编写者预先定义好 并且不能与浏览器的快
  • 井下设备类毕业论文文献包含哪些?

    本文是为大家整理的井下设备主题相关的10篇毕业论文文献 包括5篇期刊论文和5篇学位论文 为井下设备选题相关人员撰写毕业论文提供参考 1 期刊论文 变频器在井下设备中的应用 期刊 内蒙古煤炭经济 2019 年第 020 期 关键词 变频器 节
  • uni-app 的坑

    最近在开发一个新项目 使用的vue3 之前用的都是vue2 这不用不知道 一用吓一跳 看代码 data return searchText data 存储数据库的数据 methods async getData const db uniCl
  • git 上传任务用户显示错误修改方法

    目 录 0 问题描述 1 原因 2 步骤 3 总结 0 问题描述 使用git时候登陆自己的账号但每次提交任务显示的是其他人的信息 1 原因 git配置信息中用户名及用户邮箱显示是其他人 可以通过git config l进行查看 git co
  • ADW300物联网电表支持MODBUSTCP协议、MQTT协议-安科瑞黄安南

    摘要 随着通信技术的应用越来越广泛 具有通信功能的电子产品越来越多 同时也随着Wi Fi无线覆盖网络区域的形成 如何利用无线网络覆盖广 带宽高 低使用费率的优势组建物联网系统 变成了一个很实际的问题 安科瑞也紧跟趋势推出了满足客户需求的支持
  • git客户端安装并配置GitLab配置ssh key

    一 安装git客户端 打开Git的安装程序 点击Next之后 安装路径我保持默认选项 然后继续下一步 继续下一步 提示你创建开始菜单 我们继续下一步 上图默认的是第二项 但是我改成了第一项 不想在CMD下使用Git命令 继续下一步 继续下一
  • 【华为OD机试真题2023B卷 JAVA&JS】食堂供餐

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 食堂供餐 知识点编程基础循环 时间限制 1s 空间限制 32MB 限定语言 不限 题目描述 某公司员工食堂以盒饭方式供餐 为将员工取餐排队时间降低为0 食堂的供餐速度必须要足够快 现在
  • 源码分析之——WMS启动流程

    1 源码分析之 AMS启动流程 2 源码分析之 WMS启动流程 3 源码分析之 SharedPreferences 4 源码分析之 Retrofit 5 源码分析之 OKHttp 6 源码分析之 Android事件分发机制 前言 上一节讲了