位置: 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仿真)(路径规划的基本流程和方法)

  • iqoo8怎么设置红包提醒(iqoo怎么设置红包来了)

    iqoo8怎么设置红包提醒(iqoo怎么设置红包来了)

  • 铁路12306密码格式怎么写(铁路12306的密码格式)

    铁路12306密码格式怎么写(铁路12306的密码格式)

  • 小米10如何关闭广告(小米10如何关闭开发者模式)

    小米10如何关闭广告(小米10如何关闭开发者模式)

  • 微信视频怎么定格封面(微信视频怎么定时发送)

    微信视频怎么定格封面(微信视频怎么定时发送)

  • 热敏打印怎么防止褪色(热敏打印如何不褪色)

    热敏打印怎么防止褪色(热敏打印如何不褪色)

  • 流量包怎么用(通勤流量包怎么用)

    流量包怎么用(通勤流量包怎么用)

  • 抖音怎么设置可以让别人保存(抖音怎么设置可以微信支付)

    抖音怎么设置可以让别人保存(抖音怎么设置可以微信支付)

  • qq默契问答是自动邀请吗(qq默契问答是自己问吗)

    qq默契问答是自动邀请吗(qq默契问答是自己问吗)

  • x5r与x7r区别(X5R与X7R区别)

    x5r与x7r区别(X5R与X7R区别)

  • 宽带路由器光信号红灯(宽带路由器光信号闪烁)

    宽带路由器光信号红灯(宽带路由器光信号闪烁)

  • 芒果视频弹幕怎么开(芒果视频弹幕怎么关闭)

    芒果视频弹幕怎么开(芒果视频弹幕怎么关闭)

  • 平板能用word文档吗(平板可以有word文档)

    平板能用word文档吗(平板可以有word文档)

  • 华为畅享6s怎么分屏(华为畅享6s怎么恢复出厂设置)

    华为畅享6s怎么分屏(华为畅享6s怎么恢复出厂设置)

  • 微信版本无法安装(微信版本无法安装怎么办)

    微信版本无法安装(微信版本无法安装怎么办)

  • 幻灯片怎么设置循环放映(幻灯片怎么设置位置水平)

    幻灯片怎么设置循环放映(幻灯片怎么设置位置水平)

  • 台式电脑不用音响有声音吗(台式电脑不用音响怎么外放)

    台式电脑不用音响有声音吗(台式电脑不用音响怎么外放)

  • 照片大小怎么改到20kb(照片大小怎么改到1m)

    照片大小怎么改到20kb(照片大小怎么改到1m)

  • 大数据应用安全策略包括什么(大数据应用安全策略包括)

    大数据应用安全策略包括什么(大数据应用安全策略包括)

  • 退货单号在哪里看(退货单号在哪里查拼多多订单)

    退货单号在哪里看(退货单号在哪里查拼多多订单)

  • 抖音里面怎么看访客记录(抖音里面怎么看直播)

    抖音里面怎么看访客记录(抖音里面怎么看直播)

  • iphone11双卡双待怎么用(iphone11双卡双待信号冲突)

    iphone11双卡双待怎么用(iphone11双卡双待信号冲突)

  • tmpaeucache是什么文件(tmpco)

    tmpaeucache是什么文件(tmpco)

  • 网络大数据多久清除(网络大数据多久恢复)

    网络大数据多久清除(网络大数据多久恢复)

  • 快手闪退是什么原因(快手闪退?)

    快手闪退是什么原因(快手闪退?)

  • ipad的airplay在哪里(iPad的AirPlay在哪里)

    ipad的airplay在哪里(iPad的AirPlay在哪里)

  • Win10系统瞬间释放系统资源的方法(win10一键释放内存)

    Win10系统瞬间释放系统资源的方法(win10一键释放内存)

  • hpztsb11.exe是什么进程 作用是什么 hpztsb11进程查询(hp是什么代码)

    hpztsb11.exe是什么进程 作用是什么 hpztsb11进程查询(hp是什么代码)

  • 房地产企业年报台账怎么填
  • 支票上哪里填付款人账号
  • 定期定额纳税申报表是个人所得税吗
  • 为职工提供免费午餐
  • 企业支付宝里面的钱可以随时提到个人银行卡吗
  • 屋面维修按定额预算明细表
  • 社会保险基金管理局是干什么的
  • 房产税的征收对象有哪些
  • 股票价格变化的原因
  • 进口设备的重置成本包括什么
  • 异地取款还有手续费吗
  • 固定资产审计目标
  • 财产行为税税种
  • 建筑行业当月无收入成本如何结转?
  • Win11 Dev Build 22000.65开发预览版推送(附更新修复已知问题汇总)
  • 企业对外捐赠设备会计分录
  • linux怎么添加命令
  • 鸿蒙工具栏在哪里
  • 报销冲借款是什么意思
  • 支付安装设备所有费用
  • php中字符串函数
  • dc.exe 病毒
  • php ftp函数
  • 减征增值税的项目
  • 应收债权换入无形资产
  • 企业借款费用处理不当会产生什么样的后果呢?
  • 购买股票会计分录怎么写
  • 涉及产权的案例
  • 微信小程序怎么制作自己的小程序
  • 汇兑损益计入什么科目
  • discuz手机标准版
  • 房租费可以一次性摊销吗
  • redis提供了对值进行运算的命令
  • 低值易耗品需要计提吗
  • 客户对账单应该哪个部门做
  • 计提和发放工资金额不一致
  • 购入已提足折旧的固定资产账务处理
  • 商业承兑汇票的流程
  • 综合保税区可以随便进出吗
  • 账面成本与账面余额
  • 股权并购与收购的区别
  • 专票认证之后怎么做账
  • sql server临时表的生命周期
  • 收到银行电子汇票已入账怎么做账
  • 公司员工入职的心得体会
  • 长期借款利息计入应付利息吗
  • 农业开发公司的名称有哪些
  • 会计科目中的财务费用
  • 债券分期付息到期还本的意思
  • 房地产企业如何结转成本
  • 分期付款进项税额怎么算
  • 企业出售投资性房地产应按照售价与账面价值
  • 数据库访问机制
  • MySQL通过触发器解决数据库中表的行数限制详解及实例
  • rsyslog 8.11.0 (v8-stable) 发布
  • win8.1怎么改win7系统
  • win8系统连接vpn失败提示错误代码807的解决方法
  • windows vista如何安装
  • 一键ghost的功能
  • FNPLicensingService.exe是什么意思
  • mac禁用标志
  • linux如何修改文件创建时间
  • 光纤拨号方式
  • fsa是什么文件格式
  • linux判断程序是否运行
  • win7系统怎么隐藏桌面
  • cocos 2d x
  • jquery Ajax 全局调用封装实例详解
  • python rgb转cmyk
  • javascript entries
  • bootstrap弹出表单
  • jquery lt
  • jquery 异步请求
  • activity生命周期包含哪几种状态
  • 简单Python代码
  • js咋用
  • 国税公告2016年14解读
  • 单位税额怎么算出来的
  • 仓库需要交房产税吗
  • 朝阳地税局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设