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

  • 2017 年,网络营销的新趋势(2017年10月网络经济与企业管理)

    2017 年,网络营销的新趋势(2017年10月网络经济与企业管理)

  • 如何查看红包封面(如何查看红包封面有多少)

    如何查看红包封面(如何查看红包封面有多少)

  • 魅族 18 Pro共有几个摄像头(魅族18 pro型号)

    魅族 18 Pro共有几个摄像头(魅族18 pro型号)

  • 魅族 18 Pro是双卡双待吗(魅族18是双频gps吗)

    魅族 18 Pro是双卡双待吗(魅族18是双频gps吗)

  • 淘宝卖家蓝色钻什么意思(淘宝店铺的蓝钻是什么意思)

    淘宝卖家蓝色钻什么意思(淘宝店铺的蓝钻是什么意思)

  • 小米8手机收音机在哪里(小米手机收音声音小)

    小米8手机收音机在哪里(小米手机收音声音小)

  • 打印图形的键盘命令是(键盘按打印按哪个)

    打印图形的键盘命令是(键盘按打印按哪个)

  • 苹果压tp什么意思(苹果压tp多少钱)

    苹果压tp什么意思(苹果压tp多少钱)

  • magicbook是什么牌子(magicbook是mac吗)

    magicbook是什么牌子(magicbook是mac吗)

  • 华为平板显示充电但充不进去(华为平板显示充电但是充不进去怎么回事)

    华为平板显示充电但充不进去(华为平板显示充电但是充不进去怎么回事)

  • 下标怎么打快捷键(快捷键打下标)

    下标怎么打快捷键(快捷键打下标)

  • 每次下载app都要输入密码怎么取消(每次下载app都要输入密码怎么设置华为)

    每次下载app都要输入密码怎么取消(每次下载app都要输入密码怎么设置华为)

  • cpu一直90多度正常吗(cpu温度一直在90以上)

    cpu一直90多度正常吗(cpu温度一直在90以上)

  • 苹果6白屏出现苹果标志开不了机(苹果6白屏出现苹果标志开不了机,我里面的资料怎么办)

    苹果6白屏出现苹果标志开不了机(苹果6白屏出现苹果标志开不了机,我里面的资料怎么办)

  • 微信电话录音如何打开(微信电话如何录音)

    微信电话录音如何打开(微信电话如何录音)

  • 前端ui是什么(ui设计前端干什么的)

    前端ui是什么(ui设计前端干什么的)

  • 苹果手机减弱动态效果有什么用(苹果手机减弱动态效果要开吗)

    苹果手机减弱动态效果有什么用(苹果手机减弱动态效果要开吗)

  • 苹果6p建议升级ios12吗(苹果6p建议升级ios12.5吗)

    苹果6p建议升级ios12吗(苹果6p建议升级ios12.5吗)

  • 苹果手机如何给照片画线(苹果手机如何给应用上锁密码)

    苹果手机如何给照片画线(苹果手机如何给应用上锁密码)

  • 如何辨别叠瓦式硬盘(如何辨别叠瓦式移动硬盘)

    如何辨别叠瓦式硬盘(如何辨别叠瓦式移动硬盘)

  • iphonexr软件会闪退是什么原因(苹果手机软件闪烁)

    iphonexr软件会闪退是什么原因(苹果手机软件闪烁)

  • 爱奇艺会员到期了怎么查看(爱奇艺会员到期会自动续费吗)

    爱奇艺会员到期了怎么查看(爱奇艺会员到期会自动续费吗)

  • cad加文字(cad加文字命令是什么)

    cad加文字(cad加文字命令是什么)

  • 知乎怎么匿名提问(知乎怎么匿名提问看不见)

    知乎怎么匿名提问(知乎怎么匿名提问看不见)

  • 小飞智能无线音箱如何配网(小飞连接)

    小飞智能无线音箱如何配网(小飞连接)

  • 苹果蓝牙耳机二代和一代的区别(苹果蓝牙耳机二代上市时间)

    苹果蓝牙耳机二代和一代的区别(苹果蓝牙耳机二代上市时间)

  • dede后台左侧菜单空白或不显示的解决办法(完美解决)

    dede后台左侧菜单空白或不显示的解决办法(完美解决)

  • 稽查局和税务局的关系
  • 专利权的入账价值计算公式
  • 社保所属期和缴费期相差一个月吗
  • 缴纳销项税额要交税吗
  • 委托开发的定义
  • 银行的电子退库是什么,怎么做账
  • 财政拨款收入年底结转到本期盈余
  • 企业销售赠券的增值税如何处理
  • 事业单位结余如何做分录
  • 汽车的高速公路是指
  • 本月采购下月付款怎么记账
  • 产权转移书据印花税申报期限
  • 营改增建筑业税率是多少
  • 失控发票已取得怎么处理
  • 税负原则
  • 机打发票要不要税号
  • 建筑公司资源税的征税
  • 农产品增值税免税
  • 原始凭据
  • 认证专票税务处理怎么做?
  • 提前支付一年费用怎么算
  • 其他货币资金明细科目有哪些
  • 内帐应收应付款坏账年末怎么处理?
  • 自然人独资企业交什么税
  • 递延所得税资产和递延所得税负债
  • win10设置系统启动
  • 缴纳当月增值税30000元
  • 如何断开微软账户与电脑的链接
  • 分公司是小微企业总公司是一般纳税人,如何做合并报表
  • 融资租赁和经营租赁哪个更常见
  • php操作json文件
  • php的核心
  • 黄石国家公园的英语怎么读
  • 加拿大克卢恩国家公园
  • php代码大全及其含义
  • window.location.href返回值
  • 负债大于资产是逆差还是顺差
  • Android 10.0 framework中关于Activitity的生命周期的源码讲解
  • 发票校验码不清晰
  • list集合过滤
  • java如何导出
  • 贸易净利润
  • mysql一次io
  • 出版社出版带有编码吗
  • 分批发货分批付款
  • 综合保税区可以随便进出吗
  • 跨年租金收入如何入账
  • 劳动仲裁经济补偿金写多了
  • 国有控股企业和国有参股企业的区别
  • 水电费没有收到怎么处理
  • 一个月没钱
  • 免抵退税和留抵退税计算题
  • 购入钢材
  • 固定资产的后续计量
  • 专用发票过期未认证最新规定
  • 企业向个人借款利息如何缴纳增值税
  • 金蝶当月没有账如何结转到下月
  • 购买食品应注意哪些问题?
  • 建筑公司直接把钱打到个人账户怎么走账
  • 增加委托代理人
  • xampp修改mysql默认密码的方法
  • centos直接安装
  • ubuntu14.04挂载硬盘
  • wfxctl32.exe - wfxctl32是什么进程
  • Linux系统安全配置包括
  • 苹果mac 最新系统
  • win8系统修改密码
  • linux主要充当什么样的服务角色
  • opengl绘制点线面
  • jQuery插件安装教程
  • nodejs跳转到指定页面
  • 巧用dos命令合并图层
  • 手机截取电脑屏幕
  • 力所能及之处,定当竭尽所能
  • jquery跨域请求有哪些方式
  • 增值税发票税控开票软件客服
  • 电子办税服务厅怎么开电子发票
  • 兼营增值税应税项目和免税项目
  • 北京的个人所得税怎么算
  • 银行是不是要交社保
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设