位置: IT常识 - 正文

腾讯一面—Android 系统启动流程详解(腾讯一面问什么)

发布时间:2024-01-17
腾讯一面—Android 系统启动流程详解 正文

推荐整理分享腾讯一面—Android 系统启动流程详解(腾讯一面问什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:腾讯一面和二面的区别,腾讯一面问什么,腾讯一面和二面的区别,腾讯一面问什么,腾讯一面结果,腾讯一面面什么,腾讯一面到二面大约几天,腾讯一面面什么,内容如对您有帮助,希望把文章链接给更多的朋友!

AMS 是 Android 中最核心的服务之一,主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作,其职责与操作系统中的进程管理和调度模块相类似,它本身也是一个 Binder 的实现类,应用进程能通过 Binder 机制调用系统服务

在大多数情况下,每个 Android 应用都在各自的进程中运行;当需要运行应用的一些代码时,系统会为应用创建此进程,并使其保持运行,直到不再需要它且系统需要回收其内存以供其他应用使用

所以熟悉 Android 启动流程不仅决定了大厂永恒敲门砖,更能体现出工作中最能突显价值的金字招牌

再者近几年面试官也是进一步向深、向广

问题1:你了解Android系统系统启动流程吗?问题2:system_server为什么要在Zygote中启动,而不是由init直接启动呢?问题3:为什么要专门使用Zygote进程去孵化应用进程,而不是让system_server去孵化呢?问题4:能具体说说是怎么导致死锁的吗?问题5:Zygote为什么不采用Binder机制进行IPC通信?... ...

Android系统启动流程图

下面给大家依次分析一下图中各个层次的含义

Loader层

系统电源以及系统启动

当电源按下,引导芯片代码开始从预定义的地方(固化在ROM)开始执行;加载引导程序到RAM,然后执行

引导程序

引导程序是在Android操作系统开始运行前的一个小程序,是运行的第一个程序,因此它是针对特定的主板与芯片的,可以使用redboot,uboot,qibootloader或者开发自己的引导程序,它不是Android操作系统的一部分,引导程序是OEM厂商或者运营商加锁和限制的地方

引导程序分两个阶段执行:

检测外部的RAM以及加载对第二阶段有用的程序

引导程序设置网络,内存等,这些对于运行内核是必要的,为了达到特殊的目标,引导程序可以根据配置参数或者输入数据设置内核

Kernel层

Kernel层指的就是Android内核层,这里一般开机刚结束进入Android系统,Kerner层的启动流程如下:

启动swapper进程(pid=0),这是系统初始化过程kernel创建的第一个进程,用于初始化进程管理、内存管理、加载Display、Camera、Binder等驱动相关工作

腾讯一面—Android 系统启动流程详解(腾讯一面问什么)

启动kthreadd进程,这是Linux系统的内核进程,会创建内核工作线程kworkder、软中断线程ksoftirqd和thermal等内核守护进程。kthreadd是所有内核进程的鼻祖

Native层

这里的native层主要包括有init进程孵化的用户空间的守护进程,bootanim开机动画和hal层等。init是Linux系统的守护进程,是所有用户空间进程的鼻祖。init进程是Linux系统中用户空间的第一个进程,进程号固定为1

init进程会孵化出ueventd、logd、healthd、installd、adbd、lm这里写代码片kd等用户守护进程

init进程还会启动ServiceManager(Binder服务管家)、bootanim(开机动画)等重要服务

init进程孵化出zygote进程,Zygote进程是Android系统的第一个Java进程(虚拟机进程),zygote进程是所有Java进程的父进程

Framework

Zygote进程,是由init进程通过解析init.rc文件后fork生成的,Zygote进程主要包含: - 加载ZygoteInit类,注册Zygote Socket服务端套接字; - 加载虚拟机; - PreloadClasses; - PreloadResouces

Zygote进程fork出System Server进程,System Server是Zygote孵化的第一个进程,地位非常重要

System Server进程:负责启动和管理整个Java framework,包含ActivityManager,PowerManager等服务。

Media Server进程:负责启动和管理整个C++ framework,包含AudioFlinger,Camera Service等服务

App

Zygote进程孵化出的第一个App进程是Launcher,这是用户看到的桌面App

Zygote进程还会创建Browser,Phone,Email等App进程,每个App至少运行在一个进程上

所有的App进程都是由Zygote进程fork生成的

现如今Android 工程师的竞争环境越来越激烈,但 Andorid 开发仍然是一个刚需的工种,行业对人才的需求从未终止,但与此同时也对我们提出了更高的要求;如果你仍然只是在日常开发过程中复制粘贴,或者仍以完成一个项目需求为唯一目的,已经不能算是合格的工程师了

Android核心知识点笔记:

Android开发核心知识点笔记

Android Framework核心知识点笔记

音视频开发笔记,入门到高级进阶

Android Flutter核心知识点笔记与实战详解

性能调优核心知识点笔记

本文链接地址:https://www.jiuchutong.com/zhishi/299495.html 转载请保留说明!

上一篇:Oracle系列之十:Oracle正则表达式(“oracle”)

下一篇:路径规划 | 图解LPA*算法(附ROS C++/Python/Matlab仿真)(路径规划的基本流程和方法)

  • 小米12没有呼吸灯怎么提示(小米12没有呼吸灯怎么看充电满没满)

    小米12没有呼吸灯怎么提示(小米12没有呼吸灯怎么看充电满没满)

  • 小米开发版内测怎么转公测(小米开发版内测答题答案2022)

    小米开发版内测怎么转公测(小米开发版内测答题答案2022)

  • qq换绑手机号需要多久时间(qq换绑手机号需要身份证吗)

    qq换绑手机号需要多久时间(qq换绑手机号需要身份证吗)

  • ip65级防水有多强(ip65级防水测试标准)

    ip65级防水有多强(ip65级防水测试标准)

  • 荣耀20s在哪里开启分屏功能(荣耀20s在哪里开小窗口)

    荣耀20s在哪里开启分屏功能(荣耀20s在哪里开小窗口)

  • 淘宝有英文版的吗(有英文版的淘宝吗)

    淘宝有英文版的吗(有英文版的淘宝吗)

  • 荣耀v30支持指关节截屏吗(荣耀v30指关节截屏怎么开启)

    荣耀v30支持指关节截屏吗(荣耀v30指关节截屏怎么开启)

  • qq私密说说别人能看到吗(qq说说设为私密别人能看到吗)

    qq私密说说别人能看到吗(qq说说设为私密别人能看到吗)

  • 为什么手机4g变成3g了(为什么手机4G变2G信号)

    为什么手机4g变成3g了(为什么手机4G变2G信号)

  • 小米手环3睡眠在哪看(小米手环3睡眠检测)

    小米手环3睡眠在哪看(小米手环3睡眠检测)

  • oppogps在哪里设置gps(oppoa11gps怎么打开)

    oppogps在哪里设置gps(oppoa11gps怎么打开)

  • mate30 5g什么时候上市(mate305g什么时候升级鸿蒙3.0体验版)

    mate30 5g什么时候上市(mate305g什么时候升级鸿蒙3.0体验版)

  • 腾讯微信会员怎么给别人用(腾讯微信会员怎么给别人登录)

    腾讯微信会员怎么给别人用(腾讯微信会员怎么给别人登录)

  • 红米手电筒怎么设置(红米手电筒怎么关)

    红米手电筒怎么设置(红米手电筒怎么关)

  • 小米手机降温设置(小米手机设置降温功能在哪里)

    小米手机降温设置(小米手机设置降温功能在哪里)

  • 苹果演示机值不值得买(苹果演示机能便宜多少)

    苹果演示机值不值得买(苹果演示机能便宜多少)

  • 快手怎么查自己的权重(快手怎么查自己被列入黑名单)

    快手怎么查自己的权重(快手怎么查自己被列入黑名单)

  • 打字输入法怎么设置(输入法怎么设置打字带拼音)

    打字输入法怎么设置(输入法怎么设置打字带拼音)

  • 迅雷收藏在哪里(迅雷收藏在哪里打开)

    迅雷收藏在哪里(迅雷收藏在哪里打开)

  • vue闪退怎么办(vue卡住退出会有草稿吗)

    vue闪退怎么办(vue卡住退出会有草稿吗)

  • 笔记本电脑任务栏没反应(笔记本电脑任务管理器快捷键ctrl+alt+)

    笔记本电脑任务栏没反应(笔记本电脑任务管理器快捷键ctrl+alt+)

  • 日落时的悬日现象,美国芝加哥 (© Razvan Sera/Amazing Aerial Agency)(日落时有什么变化)

    日落时的悬日现象,美国芝加哥 (© Razvan Sera/Amazing Aerial Agency)(日落时有什么变化)

  • 精选100个Python实战项目案例,送给缺乏实战经验的你

    精选100个Python实战项目案例,送给缺乏实战经验的你

  • 以前年度多交增值税
  • 小微企业所得税税率2.5% 10% 25%
  • 二手车固定资产
  • 未分配利润期末减期初等于什么
  • 向投资者支付股利
  • 罚款从工资扣除的说明
  • 收到汇算清缴退税账务处理
  • 企业资产净资产
  • 政府给的慰问金叫什么
  • 出口抵减内销产品
  • 投资款打到个人账户算诈骗吗
  • 劳务报酬算公积金基数吗
  • 普通发票离线限额为0
  • 房地产开发企业预收款预缴增值税
  • 销售废旧物资账务处理
  • 印花税税基含不含增值税
  • 开出技术服务费怎么结转成本
  • 进口货物如何缴增值税
  • 科研机构进口直接用于科学研究的仪器免征增值税吗
  • 购进产品样品怎么做分录
  • 2023年王者荣耀世界杯
  • 英雄联盟登录失效怎么回事
  • linux网络设置在哪里
  • 费用跨年的分录怎么做
  • 如何解决心脏供血不足
  • 期末损益类科目结转
  • php 生成缩略图
  • dc.exe是什么程序
  • php数组函数有哪些
  • typora修改背景颜色
  • 收到过期银行汇票怎么办
  • 个人签订的出租协议
  • 哈德良长城和中国长城的区别
  • php对数组进行排序
  • css字体设置渐变色
  • 前端工程师在大学学什么专业
  • mksysb命令
  • 买税盘的会计分录
  • 发票写的是信息怎么办
  • 哪些合同必须签订书面合同
  • 现金流量表企业所得税
  • 如果没有抄税就申报了
  • 采购货物没有发票开出去有发票有什么风险
  • 社会保险分割单怎么查
  • 合同可以盖财务章子吗
  • 民间非营利组织财务管理制度
  • 核定征收过了时间就不能申请了吧
  • 工程项目需要交5000万保证金合理吗
  • 公司对员工的罚款用途
  • 期末结转主营业务成本
  • 受疫情影响较大的上市公司
  • 公司接待考察团的费用入哪个科目
  • 差旅费一般包括往返及当地的交通费
  • 根据《增值税暂行条例》的规定,适用9
  • sql server dbcc
  • sysbench测试mysql,自带的测试套
  • bios怎么恢复出厂设置有什么后果?
  • SUSE Linux Enterprise Server 11 SP1 安装教程图文详解
  • win7桌面图标无法拖到任务栏
  • hookproxy.dll
  • win7右下角图标点了没反应
  • cortana win10
  • win7系统玩游戏怎么样
  • cocos2d教程
  • mingw 编译
  • android opengl绘图
  • python根据ip获取主机名
  • nodejs怎么读
  • vue.js computed
  • jquery json对象
  • scrollbottom用法
  • js中的tostring方法
  • 个税申报系统如何增加新单位
  • 怎么打印纳税申报清单
  • 税务局申请企业破产被告
  • 湖南省国家税务总局官网登录入口
  • 辽宁国家税务局公务员职位2023
  • 租赁设备能抵扣个税吗
  • 怎么看扣税明细
  • 注册地址和税务登记可以不一致吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号