位置: IT常识 - 正文

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

编辑:rootadmin
腾讯一面—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仿真)(路径规划的基本流程和方法)

  • 苹果13支持无线充电吗(苹果13支持无线投屏到车载屏幕吗)

    苹果13支持无线充电吗(苹果13支持无线投屏到车载屏幕吗)

  • 支付宝养老金怎么退保(支付宝养老金怎么交费)

    支付宝养老金怎么退保(支付宝养老金怎么交费)

  • p40是不是鸿蒙系统的(华为p40用的是鸿蒙吗)

    p40是不是鸿蒙系统的(华为p40用的是鸿蒙吗)

  • 小米手机1亿像素手机发布时间(小米手机1亿像素怎么拍)

    小米手机1亿像素手机发布时间(小米手机1亿像素怎么拍)

  • 笔记本电脑不关机就盖上盖子,这样好吗 (笔记本电脑不关机只休眠好不好)

    笔记本电脑不关机就盖上盖子,这样好吗 (笔记本电脑不关机只休眠好不好)

  • 苹果手机怎么写字(苹果手机怎么写门禁卡啊)

    苹果手机怎么写字(苹果手机怎么写门禁卡啊)

  • 快手创作者服务中心是什么(快手创作者服务中心怎么开通)

    快手创作者服务中心是什么(快手创作者服务中心怎么开通)

  • 笔记本wlan启用不了怎么办(笔记本wlan启用后又会自动禁用)

    笔记本wlan启用不了怎么办(笔记本wlan启用后又会自动禁用)

  • 支付宝注销后手机号还可以注册吗(支付宝注销后手机号)

    支付宝注销后手机号还可以注册吗(支付宝注销后手机号)

  • 怎么注册苹果id账号(没有电子邮件怎么注册苹果id)

    怎么注册苹果id账号(没有电子邮件怎么注册苹果id)

  • 为什么苹果手机的邮件无法使用(为什么苹果手机屏幕亮度突然变暗)

    为什么苹果手机的邮件无法使用(为什么苹果手机屏幕亮度突然变暗)

  • qq自动回复会回复群消息吗(qq自动回复会回群消息吗)

    qq自动回复会回复群消息吗(qq自动回复会回群消息吗)

  • j9g29r是kindle的哪个型号(j9g29r kindle售价)

    j9g29r是kindle的哪个型号(j9g29r kindle售价)

  • 电子邮件常用的传输协议(电子邮件常用的传输协议是)

    电子邮件常用的传输协议(电子邮件常用的传输协议是)

  • 美版apple watch5蜂窝国内能用吗(apple watch series 5 美版蜂窝)

    美版apple watch5蜂窝国内能用吗(apple watch series 5 美版蜂窝)

  • 华为手机关机键失灵了怎么办(华为手机关机键挂电话怎么设置)

    华为手机关机键失灵了怎么办(华为手机关机键挂电话怎么设置)

  • 我的淘宝人生在哪里看(淘宝人生我的家在哪)

    我的淘宝人生在哪里看(淘宝人生我的家在哪)

  • 滴滴服务分最高是多少(现在滴滴服务分最高是多少)

    滴滴服务分最高是多少(现在滴滴服务分最高是多少)

  • 微信投票异常多久解除(微信投票异常会恢复吗)

    微信投票异常多久解除(微信投票异常会恢复吗)

  • 小度在家能安装微信吗(小度在家能安装米家吗)

    小度在家能安装微信吗(小度在家能安装米家吗)

  • 苹果微信视频悬浮窗怎么设置(苹果微信视频悬浮窗怎么在别的应用界面显示)

    苹果微信视频悬浮窗怎么设置(苹果微信视频悬浮窗怎么在别的应用界面显示)

  • vivo如何强制关机(vivo如何强制关机手机后如何进入安全界面)

    vivo如何强制关机(vivo如何强制关机手机后如何进入安全界面)

  • 音频(一)时域图、 频谱图 Spectrum(音频的时域波形)

    音频(一)时域图、 频谱图 Spectrum(音频的时域波形)

  • php中的算法有哪些?(php算法有哪些)

    php中的算法有哪些?(php算法有哪些)

  • 个人所得税全年一次性奖金优惠政策
  • 公司户和个人户卖车的时候价格差多少
  • 增值税勾选统计后怎么申报
  • 印花税和增值税一起扣款有影响吗
  • 应收股利在资产负债表中填在哪里
  • 自然人独资公司和个人独资企业区别
  • 出口未报关收到外汇怎样处理
  • 财政补助结转会计处理
  • 基础设施特许权包括
  • 营改增的范围包括
  • 企业购买机械设备是否需要进行过户登记
  • 制作费算什么费用
  • 买粽子会计怎么做账
  • 季节性停工算作固定资产停止使用吗?
  • 网上办税服务厅app下载
  • 什么时候计入其他综合收益什么时候计入投资收益
  • 收到公司投入的土地使用权
  • 午餐补贴多少钱
  • 新版edge浏览器如何恢复设置
  • win11如何多窗口
  • 电脑怎么更新系统日期
  • 贴现到期不获付款
  • 事业单位工资及薪酬好的单位有哪些
  • 房地产企业能申请破产吗
  • 补交上一年度的养老保险
  • 收到银行退回余款
  • php的数组函数
  • vue3+ts写法
  • 收到银行开具的手续费的专票会计分录
  • 深度学习实战——不同方式的模型部署(CNN、Yolo)
  • thinkphp assign函数
  • php获取post请求参数
  • Yii2中hasOne、hasMany及多对多关联查询的用法详解
  • hive dt
  • json_server
  • vue框架搭建步骤
  • dos命令怎么转到d盘
  • 建筑业成本核算流程
  • 事业单位接受捐赠物资会计处理
  • 固定资产的原价包括增值税吗
  • 小规模增值税减按1%的政策
  • spring security例子
  • 办公室装修 会计分录
  • 跨月的凭证出错如何处理
  • 本年利润总分类账怎么写
  • 收款收据写着投诉有用吗
  • 个体户超额
  • 债务重组与资产重组
  • 长期股权投资损失可以税前扣除吗
  • 公司名下没有车可以办油卡吗
  • 物流托运不给发货
  • 科目余额表没有本年累计怎么办
  • 锅炉设备销售
  • 增值税税控系统专用设备费及技术维护费抵扣
  • 银行对账单怎么打印
  • windows web server 2008
  • 深入理解mysql主从原理32讲
  • mac桌面日历 记事本
  • pcards
  • windows 8怎么样
  • linux分区顺序详解
  • c++全局变量赋值
  • cocos2d游戏源码
  • Unity3D游戏开发引擎
  • jQuery实现ctrl+enter(回车)提交表单
  • bat批处理删除文件
  • 批处理 /b
  • document.getElementByTagName
  • ecmascript6教程
  • excel替换一行内容
  • 基于JavaScript的图书管理系统
  • python文本怎么运行
  • centos6.5设置网络
  • 深入理解新发展理念
  • js延时加载方式
  • 车险专票怎么做账
  • 可以跨区办理税务ukey更换吗
  • 耕地被占用税怎么交
  • 购置税周天上班吗
  • 征管法 追征期起如何界定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设