游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

Android面试必备SystemAppActivity启动

  Android系统启动过程
  从系统层看:linux系统层Android系统服务层Zygote
  从开机启动到HomeLauncher:启动bootloader(小程序;初始化硬件)加载系统内核(先进入实模式代码再进入保护模式代码)启动init进程(用户级进程,进程号为1)启动Zygote进程(初始化DalvikVM等)启动Runtime进程启动本地服务(systemservice)启动HomeLauncher详细解析
  Android系统完整的启动过程,从系统层次角度可分为Linux系统层、Android系统服务层、Zygote进程模型三个阶段;从开机到启动HomeLauncher完成具体的任务细节可分为七个步骤,下面就从具体的细节来解读Android系统完整的初始化过程。
  一、启动BootLoader
  Android系统是基于Linux操作系统的,所以它最初的启动过程和Linux一样。当设备通电后首先执行BootLoader引导装载器,BootLoader是在操作系统内核运行之前运行的一段小程序。通过这段小程序初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境引导进入合适的状态,以便为最终调用操作系统内核准备好正确的运行环境。
  而Linux系统启动时:首先要加载BIOS的硬件信息,并获取第一个启动设备的代号读取第一个启动设备的MBR的引导加载程序(lilo、grub等)的启动信息。加载核心操作系统的核心信息,核心开始解压缩,并且尝试驱动所有的硬件设备。
  。。。。。
  在嵌入式系统中,通常不会有像BIOS那样的固件程序,因此整个系统的加载任务都是通过BootLoader完成的。
  二、加载系统内核
  Linux内核映像通常包括两部分代码,分别为实模式代码和保护模式代码。当BootLoader装载内核映像到代码段内存时,分别放置实模式代码和保护模式代码到不同的位置,然后进入实模式代码执行,实模式代码执行完成后转入保护模式代码。
  实模式和保护模式的概念再次不做过多解释,读者可以自行查阅资料。
  三、启动Init进程
  当系统内核加载完成之后,会首先启动Init守护进程,它是内核启动的第一个用户级进程,它的进程号总是1。Init进程启动完成之后,还负责启动其他的一些重要守护进程,包括:
  Usbd进程(USBDaemon):USB连接后台进程,负责管理USB连接。
  adbd进程(AndroidDebugBridgeDaemon):ADB连接后台进程,负责管理ADB连接。
  debuggerd进程(DebuggerDaemon):调试器后台进程,负责管理调试请求及调试过程。
  rild进程(RadioInterfaceLayerDaemon):无线接口层后台进程,负责管理无线通信服务。
  四、启动Zygote进程
  Init进程和一些重要的守护进程启动完成之后,系统启动Zygote进程。Zygote进程启动后,首先初始化一个DalvikVM实例,然后为它加载资源与系统共享库,并开启Socket监听服务,当收到创建DalvikVM实例请求时,会通过COW(copyonwrite)技术最大程度地复用自己,生成一个新的DalvikVM实例。DalvikVM实例的创建方法基于linux系统的fork原理。
  其实,我个人理解,Zygote进程就相当于Linux系统中的fork进程。由它可以在系统运行期间,接收到创建虚拟机请求时,孵化DalvikVM实例。Zygote进程孵化DalvikVM实例流程如下图所示:
  图1Zygote进程孵化DalvikVM实例流程
  五、启动Runtime进程
  在Zygote进程启动完成之后,Init进程会启动Runtime进程。Runtime进程首先初始化服务管理器(ServiceManager),并把它注册为绑定服务(Binderservices)的默认上下文管理器,负责绑定服务的注册与查找。然后Runtime进程会向Zygote进程发送启动系统服务(SystemService)的请求,Zygote进程收到请求后,会孵化出一个新的DalvikVM实例并启动系统服务进程。Runtime进程的启动流程如下图所示:
  图2Runtime进程启动流程图
  六、启动本地服务
  SystemService会首先启动两个本地服务(由C或C编写的native服务),SurfaceFlinger和AudioFlinger,这两个本地系统服务向服务管理器注册成为IPC服务对象,以便在需要它们的时候很容易查找到。然后SystemService会启动一些Android系统管理服务,包括硬件服务和系统框架核心平台服务,并注册它们成为IPC服务对象。本地服务进程的启动流程如下图所示:
  图3SystemService启动本地服务流程图
  七、启动HomeLaucher
  当SystemService加载了所有的系统服务后就意味着系统就准备好了,它会向所有服务发送一个系统准备完毕(systemready)广播。SystemService系统服务进程的启动流程如图3所示。当ActivityManagerService接收到systemready广播后,会向Zygoute进程发送创建Dalvik虚拟机实例的请求,Zygoute进程会负责生成一个新的Dalvik虚拟机实例,然后ActivityManagerService在系统中查找具有属性的Activity,并启动它。ActivityManagerService同时也会使用同样的方法启动Contact应用程序。
  图4启动HomeLaucher流程图APk安装过程
  Android应用安装有如下四种方式:
  1。系统应用安装开机时完成,没有安装界面
  2。网络下载应用安装通过market应用完成,没有安装界面
  3。ADB工具安装没有安装界面。
  4。第三方应用安装通过SD卡里的APK文件安装,有安装界面,由packageinstaller。apk应用处理安装及卸载过程的界面。
  应用安装的流程及路径
  应用安装涉及到如下几个目录:
  systemapp:系统自带的应用程序,获得adbroot权限才能删除
  dataapp:用户程序安装的目录。安装时把apk文件复制到此目录
  datadata:存放应用程序的数据
  datadalvikcache:将apk中的dex文件安装到dalvikcache目录下(dex文件是dalvik虚拟机的可执行文件,其大小约为原始apk文件大小的四分之一)
  安装过程
  复制APK安装包到dataapp目录下,解压并扫描安装包,把dex文件(Dalvik字节码)保存到dalvikcache目录,并在datadata目录下创建对应的应用数据目录。App启动过程
  这里以启动微信为例子说明Launcher通知AMS要启动微信了,并且告诉AMS要启动的是哪个页面也就是首页是哪个页面。AMS收到消息告诉Launcher知道了,并且把要启动的页面记下来。Launcher进入Paused状态,告诉AMS,你去找微信吧。
  上述就是Launcher和AMS的交互过程AMS检查微信是否已经启动了也就是是否在后台运行,如果是在后台运行就直接启动,如果不是,AMS会在新的进程中创建一个ActivityThread对象,并启动其中的main函数。微信启动后告诉AMS,启动好了。AMS通过之前的记录找出微信的首页,告诉微信应该启动哪个页面。微信按照AMS通知的页面去启动就启动成功了。Activity启动过程
  Activity启动过程是由ActivityMangerService(AMS)来启动的,底层原理是Binder实现的最终交给ActivityThread的performActivity方法来启动它
  ActivityThread大概可以分为以下五个步骤通过ActivityClientRecoed对象获取Activity的组件信息通过Instrument的newActivity使用类加载器创建Activity对象检验Application是否存在,不存在的话,创建一个,保证只有一个Application通过ContextImpl和Activity的attach方法来完成一些初始化操作调用oncreat方法。最后
  在这里我再分享一份由多位大佬亲自收录整理的Android学习PDF架构视频面试文档源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料
  这些都是我现在闲暇时还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效地帮助大家掌握知识、理解原理,帮助大家在未来取得一份不错的答卷。
  当然,你也可以拿去查漏补缺,提升自身的竞争力。
  如果你有需要的话,只需私信我【进阶】即可获取

虎啸龙吟司马伦发生的结局,虎啸龙吟里面司马伦是谁演的战争剧《虎啸龙吟》给带来司马伦用离间计,所把太子司马遹被皇后贾南风害死,还鼓动司马遹旧部和齐王司马冏起兵,还用废黜杀死贾南风,不过最后有晋惠帝复位,使得刘家祎出演司马伦被惠帝赐……鸿蒙系统发布,华为的野心终露!不造车是因为要做票大的?6月2日,华为正式发布了鸿蒙操作系统。华为官方的微博名也由华为EMUI改为了HarmonyOS,连华为字样都去掉了,可以看作是一个新的时代正式开启了。鸿蒙系统的涵盖范围极……五菱宏光MINI真的会出燃油版本吗?五菱一直是汽车圈话题的引爆者,特别是五菱宏光MINIEV的出现,销量更是逐渐地攀升。而且之前还超越了特斯拉成为了国内新能源的月度销冠车型。今年还推出了更可爱的马卡龙版本,颜色的……琅琊榜乔欣到底是第几集出现,乔欣可能演琅琊榜的谁琅琊榜说出来很多人不清楚,可琅琊榜剧情中乔欣到底在第几集出现,很多网友就想去了解一下有关的故事,看琅琊榜里面乔欣出现,好让观众感觉她演公主样子会于众不同,但有的网友就不清楚乔欣……人民的名义李达康结局,人民的名义李达康演员反腐剧《人民的名义》给带来李达康做为汉东省省委常委和京州市市委书记的职业,还表现是一个正义无私的好官,可他对待身边的亲人和朋友显得过于无情,最后吴刚表演的李达康没当上省长,也没……电视已被手机取代了到年三十,有谁提出看春晚,才想起来家里买了二十年的创维液晶电视!这个电视以前还打开看看,近来起码有一年没有打开过了,己经很久都没看电视了。现在先要打开电视连接机顶盒,调出……手机全面屏的突破直入主题。现在手机发展到当前阶段各大手机厂商都在朝着真正的全面屏去发展。我有一个很好方案。在这里说一下希望可以得到参考。手机前置摄像头直接去掉,研发一个配套外设摄像无线耳机一样……开发者通过无线电进行第一笔狗狗币交易2022年4月22日,在全球星链卫星网络的帮助下,第一笔狗狗币(DOGE)交易通过无线电传输完成。这一消息是由狗狗币开发者MichiLumin于周五在推特上发布的。狗狗币的支持……雪豹大结局怎么样了雪豹真的有第二部吗革命剧《雪豹》给带来周卫国从富家子弟走上抗日道路,后期他组建雪豹特战部队,慢慢他成长为优秀指挥官的抗日英雄,最后结局陈怡和周卫国在一起去坟前看望死去的战友,往后第二部等段时间进……这款耳机甚得我心三星GalaxyBudsPro深度体验现在真无线越来越红火,并且3。5mm耳机接口似乎也在慢慢成为一个稀罕物件,因此现在耳机市场的销量霸主的宝座,已经被真无线耳机给牢牢坐稳了。无论是手机厂商还是专业厂商甚至是配件厂……寂寞空庭春欲晚结局什么意思,寂寞空庭春欲晚结局是悲剧吗宫廷剧《寂寞空庭春欲晚》前期铺垫的爱情进行没有多好,主要产生相爱而差缘分没有来到,始终没有走一起给展现出悲剧的情况,总给观众带来一定的遗憾,无法给完全给弥补好呈现。1寂寞空庭春……重生结局是什么意思,重生结局秦队死了刑侦剧《重生》给带来714枪案有着唯一幸存者西关支队副支队长秦驰在遭遇重创后跟失忆抗争,不断去破解疑案,慢慢他寻找到714枪案的真相,最后找到714枪案的真相把案子破解,所进行……
刷爆汽车圈!恒驰1路跑视频曝光视频加载中。。。继前不久恒驰1实车曝光,近日一段30秒的恒驰1路跑官方视频火爆全网!从视频来看,恒驰1实车最大限度还原了此前公布的概念车型,修长灵动线条、典雅双色车身、优……我的姐姐海报首曝光!张子枫升级成为姐姐开启全新角色挑战星关系7月28日讯近日,由殷若昕执导,金像奖最佳编剧游晓颖亲自操刀剧本,张子枫领衔主演央特别主演的温情电影《我的姐姐》近日于成都开机。《我的姐姐》主要围绕失去父母的姐姐在……给老师的便签祝福语编辑简洁祝福语的方法今天是2021年的9月10日,这是一个特殊的日子,因为这个日子是教师节。每逢到了教师节的时候,学生们为了表达自己的良好心愿和祝福,会用各种各样的方式祝福老师。给老师写便签祝福语……国产799元双频动铁降噪耳机来了与AirPods相比就差还这现如今真无线蓝牙耳机,就国内品牌已经多得数不过来了,消费者在这些鱼龙混杂的耳机品牌早已经不知所措,其实买蓝牙耳机倒也不是什么难事,适合自己最重要,对于一些高端玩家,看得懂参数以……时隔5年,小米手机将重新用回2K屏最近关于小米手机的屏幕出现了一些曝光,其表示明年小米将在屏幕上发力,会出现曲面屏、四曲屏、微曲直屏,而在挖孔上也会出现居中挖孔、左上角挖孔、以及屏下摄像头量产,而最关键的一点,……张朋主演只羡鸳鸯不羡仙爆笑上线演技升级作品高产星关系11月5日讯近日,张朋主演的电影《只羡鸳鸯不羡仙》正在热映,该片由苏明执导,安琥、张朋、李欣颖、大宝哥等演员强势加盟。一部接一部的电影作品,张朋可算非常高产。该片讲述了张……张朋现身电影代号忠诚开机仪式演绎热血退伍队员星关系11月1日讯10月31日电影《代号忠诚》剧组在泰国举行开机仪式。该片由导演刘尔康执导,骆达华、黄征、李海娜(泰)、张朋主演。男一号张朋在该片中饰演一名退伍特勤队员秦……全球企业风投高速增长,百度与联想位列最活跃榜单Top5资本实验室今日投资关注聚焦前沿科技创新与传统产业升级李鑫企业风险资本(由企业设立的风险投资部门或公司)正在成为风险投资界不断崛起的重要力量。据CBIns……唐人街探案3厦门举办发布会尚语贤与唐探主创亮相金鸡奖闭幕式11月22日,电影《唐人街探案3》于厦门举办发布会。尚语贤与陈思诚、王宝强、刘昊然、妻夫木聪、邱泽等众多主创集体着唐探风衣出席发布会现场,中日泰三国演员组成的亚洲侦探联盟……国货彩瞳品牌可啦啦再获连续两轮超4亿元融资(8月18日,上海讯)近日,线上销量第一的国货彩瞳品牌可啦啦对外宣布已连续完成B轮及B轮融资,累计募集资金超4亿元,创下彩瞳赛道单次披露的最大融资金额记录。本次融资,由创……建党百年华诞献礼片革命者点映党员主题观影开启暑期热潮6月26日19:01,电影《革命者》党员主题观影活动正式开启,省会各大媒体、党员代表及部分影迷在郑州奥斯卡大上海影城第一时间观看了这部庆祝中国共产党成立100周年献礼巨制。影片……特斯拉未来12个月内生产超50万辆全系配备自动驾驶仪上海工厂的加速建设,让马斯克有了充足的信心,而他也是在推特上表示,特斯拉将在未来12个月内生产超过50万辆汽车。今天早些时候,马斯克在自己的推特上表示,特斯拉将在未来12……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网