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

  • 快手作品封面图片怎么设置(快手作品封面图片怎么自定义)

    快手作品封面图片怎么设置(快手作品封面图片怎么自定义)

  • 苹果手机怎么截图(苹果手机怎么截全屏长图)

    苹果手机怎么截图(苹果手机怎么截全屏长图)

  • 红米10x呼吸灯在哪里(红米10x呼吸灯在哪里设置)

    红米10x呼吸灯在哪里(红米10x呼吸灯在哪里设置)

  • 苹果11分辨率是(苹果11分辨率是多少)

    苹果11分辨率是(苹果11分辨率是多少)

  • ipv4和ipv6哪个网速快(ipv4与ipv6比较哪个更好)

    ipv4和ipv6哪个网速快(ipv4与ipv6比较哪个更好)

  • 手机微信怎么弄主题壁纸(同步手机微信怎么弄)

    手机微信怎么弄主题壁纸(同步手机微信怎么弄)

  • 小米专注模式怎么退出(小米专注模式怎么强制退出)

    小米专注模式怎么退出(小米专注模式怎么强制退出)

  • 华为手机本地相册在哪里找得到(华为手机本地相册在哪里怎么找到)

    华为手机本地相册在哪里找得到(华为手机本地相册在哪里怎么找到)

  • 云相册缩略图删除后有什么影响(相册云缩略图是怎么回事)

    云相册缩略图删除后有什么影响(相册云缩略图是怎么回事)

  • 表格怎么插入一列(表格怎么增加一行一模一样的表格)

    表格怎么插入一列(表格怎么增加一行一模一样的表格)

  • iphonexr有没有原彩显示(苹果xr有原彩吗)

    iphonexr有没有原彩显示(苹果xr有原彩吗)

  • 一个身份证可以申请几个抖音号(一个身份证可以绑定几个zfb账号)

    一个身份证可以申请几个抖音号(一个身份证可以绑定几个zfb账号)

  • 苹果ipad7是什么型号(ipad7代是ipad2019吗)

    苹果ipad7是什么型号(ipad7代是ipad2019吗)

  • qq音乐包下载的歌是永久的吗(qq音乐包下载的歌到期了还能听吗)

    qq音乐包下载的歌是永久的吗(qq音乐包下载的歌到期了还能听吗)

  • 人脸识别不了怎么解决(人脸识别不了怎么解绑健康码)

    人脸识别不了怎么解决(人脸识别不了怎么解绑健康码)

  • wps打印教程(wps打印小技巧)

    wps打印教程(wps打印小技巧)

  • 苹果小圆点怎么设置ios13(苹果小圆点怎么设置里面的内容)

    苹果小圆点怎么设置ios13(苹果小圆点怎么设置里面的内容)

  • ipad pro电池损耗查询(ipadpro电池损耗快吗)

    ipad pro电池损耗查询(ipadpro电池损耗快吗)

  • 找回手动删除聊天记录(手动误删聊天记录恢复)

    找回手动删除聊天记录(手动误删聊天记录恢复)

  • 酷狗30秒模式在哪里(酷狗30秒听歌从哪进入)

    酷狗30秒模式在哪里(酷狗30秒听歌从哪进入)

  • 如何快速应对超星网课?(如何快速应对超载行为)

    如何快速应对超星网课?(如何快速应对超载行为)

  • 苹果手机怎么设置动态壁纸(苹果手机怎么设置密码锁屏)

    苹果手机怎么设置动态壁纸(苹果手机怎么设置密码锁屏)

  • buffalo路由器设置方法(buffalo wcr-gn路由器设置)

    buffalo路由器设置方法(buffalo wcr-gn路由器设置)

  • 电话声音小怎么回事(电话声音小怎么调)

    电话声音小怎么回事(电话声音小怎么调)

  • 网页游戏打不开(电脑网页游戏打不开了怎么办)

    网页游戏打不开(电脑网页游戏打不开了怎么办)

  • IDEA如何运行Eclipse项目(超详细图解)(idea如何运行springboot项目)

    IDEA如何运行Eclipse项目(超详细图解)(idea如何运行springboot项目)

  • 项目部署,一点也不难!(项目部署计划)

    项目部署,一点也不难!(项目部署计划)

  • c语言二级指针是什么(c语言二级指针详解)

    c语言二级指针是什么(c语言二级指针详解)

  • React props全面详细解析

    React props全面详细解析

  • 金税盘抵减增值税的账务处理
  • 收取承包费如何交税
  • 什么是土地使用权终结
  • 个人所得税是什么费用
  • 预付账款退回怎么做凭证
  • 税务季报利润表的本年累计可以更改吗
  • 资产处置收益是什么意思
  • 应纳税额关于进项和销项的计算公式
  • 开具发票时如何选择对应的商品分类编码?
  • 企业所得税汇算清缴账务处理
  • 什么叫经纪代理服务
  • 物业公司代收水电费会计分录
  • 医院业务支出包括哪些内容科目
  • 合并报表中长期股权投资包括
  • 新办建筑劳务公司有资质证书吗
  • 汽车修理厂如何做账
  • 简易计税方法是什么意思
  • 金税四期上线了吗?
  • 个体户进项发票多开出发票少怎么办
  • 银行利息现金流量表什么科目
  • 通用机打发票属于什么发票
  • 电子发票收款人和复核人可以是一个人吗
  • 电器供应
  • 我的初级备考经历怎么写
  • 纳税人指什么意思
  • 过期未抵扣的发票对企业有什么影响
  • 增加采购发票的方法
  • 按照税收一般规定计算的折旧摊销金额
  • 年折旧率怎么计算折旧几年
  • 支付职工培训费的现金流量项目
  • php错误日志
  • 公司微信转账要上税么
  • openeuler安装gnome
  • 税收筹划的风险性
  • 加拿大巨石
  • 代境外汇款收的什么费用
  • vue3 + ts
  • 暂估原材料的数量怎么算
  • php curl_init
  • windows2022下载
  • 微信小程序下拉菜单怎么做
  • vue脚手架配合springsecurity
  • 大前端技术
  • Laravel4中的Validator验证扩展用法详解
  • phpcms视频教程
  • 建筑工程企业所得税预缴
  • 印花税应计入哪里
  • 小微企业所得税税率2.5% 10% 25%
  • 分公司需要做纳税申报吗
  • 海关票怎么做账
  • 增值税专用发票的税率是多少啊
  • 固定资产的入账时间应该是什么时间
  • 资产减值准备如何影响利润
  • 政府补助收入的会计处理
  • 每月材料进出库明细表
  • 上市公司股票增发条件
  • 公司水电费分摊怎么算
  • 固定资产不可以搬走,那什么资产能搬走的?
  • 从农民手中购买粮食税率
  • 商业承兑到期对方不付款会计分录
  • 建筑业外包工程包括哪些
  • 收入与费用配比也就是费用要由收入补偿
  • 装修费用摊销计入什么科目
  • 礼品费属于什么费用
  • 固定资产清理费用账务处理
  • 残保金怎么办理
  • 中小企业做账
  • 工业企业的材料
  • mysql 含有关键字
  • sqlsever修改数据
  • 微软官方操作系统叫什么
  • 手工设置源泉设计
  • nginx 虚拟ip
  • win10盘符怎么看
  • 详细说明什么是支撑
  • unity strangeioc
  • js图形图表
  • 安徽残疾人补助过年有多少钱
  • 重芳烃闪点70,初馏点是多少
  • 青岛市崂山区地税局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设