AMS启动过程分析

作者&投稿:闵孟 (若有异议请与网页底部的电邮联系)
~

AMS(ActivityManagerService)主要负责四大组件的启动、切换、调度以及应用进程的管理和调度工作。

Android系统启动流程: 首先会从ROM中预定义的地方加载引导程序BootLoader到RAM中,并执行BootLoader程序启动Linux Kernel,然后启动用户级别的第一个进程init进程。init进程会解析init.rc脚本做一些初始化工作,包括挂载系统文件、创建工作目录以及启动系统服务进程等,其中系统服务进程包括Zygote、ServiceManager、Media等。在Zygote中会进一步启动system_server进程,然后system_server进程中会启动AMS、WMS、PMS等服务,这些服务启动后,AMS就会打开Launcher应用的home Activity,最终就看到了手机桌面。

AMS是在SystemServer中被添加的

SystemServer类的main中初始化SystemServer对象,调用run方法:

1)createSystemContext:创建系统上下文
2)startBootstrapServices:启动引导服务
3)startCoreServices:启动核心服务
4)startOtherServices:启动其它服务
5)Looper.loop:loop循环

startBootstrapServices 中启动了AMS

①创建AMS实例:new ActivityManagerService

②启动AMS

1)removeAllProcessGroups:移除所有的进程组
2)mProcessCpuThread.start():启动CpuTracker线程
3)mBatteryStatsService.publish():启动电池状态服务
4)LocalServices.addService(ActivityManagerInternal.class, new LocalService()):创建本地服务并放入本地服务集合

③将AMS注册到ServiceManager中 setSystemProcess

1)添加了各种服务,如AMS
2)mSystemThread.installSystemApplicationInfo:最终调到LoadedApk,这是应用的基本信息

接着看 startOtherServices

installSystemProviders

1)installSystemProviders:安装系统Provider
2)new CoreSettingsObserver(this):创建CoreSettingsObserver,用于监听系统设置的改变

systemReady

小结:

1、new SystemServer()创建了ActivityThread
2、SystemServer的run方法中:
1)通过createSystemContext方法创建系统上下文对象
2)在startBootstrapServices方法中调用构造方法对AMS进行初始化,start方法启动AMS
3)调用setSystemProcess将AMS注册到ServiceManager中
4)在startOtherServices中安装了系统Provider
5)调用systemReady启动Launcher界面




系统基本组成MS-DOS系统文件介绍
BootMulti=0 (1--显示MS-DOS选项;0--不显示MS-DOS选项) BootMenu=1 (1--开机显示启动菜单;0--开机不显示启动菜单) 0BootMenuDelay=3 (启动菜单默认选项的等待时间:3秒) BootMenuDefault=7 (启动菜单的默认选项:第7项) 十一、在MS-DOS系统下访问WINDOWS系统: [1]如果在WIN的DOS里。可以用: net view ...

谁能把电脑从开机到正常工作,各硬件的工作顺序告诉我?
当检测正确时,再进行系统配置,输入输出设备初始化,然后引导操作系统,完成将MS-DOS系统的三个文件(IO.SYS,MSDOS.SYS和COMMAND.COM)装入系统内存,从而完成启动过程.最后给出DOS提示符和光标等待用户输入键盘命令.(在自检程序成功后显示系统配置界面)...

ms.dos.com病毒工作原理是什么?
病毒自运行机制分析:ms-dos.com病毒主要是通过优盘传播。在没有病毒防护的情况下,autorun.inf可以自动运行ms-dos.com病毒程序,也可以通过点击伪装的xxxx文件夹.exe(220K)运行后产生以上病毒文件,分布在不同的文件夹里,按Ctrl+Alt+Del键可以看到有:Global.exe、keyboard.exe、fonts.exe等病毒进程在...

应用启动流程梳理(二)-Input事件传递流程
大致流程:2.1. TP事件形成 :屏幕的Firmware按一定频率扫描到电流变化开始计算触摸的位置并上报,报点信息通过TP driver处理最终写入相关设备节点(\/dev\/input\/eventXXX)。2.2. 事件获取 :EventHub收集底层硬件设备tp报点。打开"\/dev\/input\/"目录下的input设备,并将其注册到epoll的监控队列中。一旦...

安装SQL2000时,出现错误“对于MSSQLServer服务,服务控制器操作失败:172...
使用SQL Server Service Manager启动MSSQLServer没有反应,启动MSDTC没有问题。使用控制面板中的<服务>启动时出现提示“无法启动MSSQLServer服务。错误2140:发生Windows NT 内部错误。”原因 经过询问操作人员得知,其在Enterprise Manager中,在SERVER的属性中有一个startup parameters中的parameter被删除掉,...

气相色谱法与质谱法的区别是什么?
2、特点不同 气-质联用将GC与MS联用,即气-质联用,彼此扬长避短,既弥补了GC只凭保留时间难以对复杂化合物中未知组分做出可靠的定性鉴定的缺点,又利用了鉴别能力很强且灵敏度极高的MS作为检测器,凭借其高分辨能力、高灵敏度和分析过程简便快速的特点。气相色谱法具有效能高、灵敏度高、选择性强...

请教电脑无法启动问题
4、WINDOWS98启动过程简介及故障分析1)、系统读取硬盘的MBR扇区内容,并分析执行代码,根据分区表中活动主分区的设置进行系统引导。2)、接下来系统读取当前活动主分区的引导扇区的内容,分析当前磁盘的分区参数表,并根据磁盘参数表读写该分区。如果我们误使用GHOST恢复硬盘或者病毒或人为的误写硬盘的引导区内容,这时我们...

电脑开机屏幕死机了怎么办
1、启动死机 启动死机主要包括硬件设备故障、BIOS设置不当、硬盘主引导记录受到损坏、系统分区受到损坏、系统文件受到破坏等。要分析电脑的启动死机,必须先分析电脑启动过程。 在开机时,系统BIOS程序将首先对所有组成部分作一次全面检测,这种检测叫上电自检(POST:Power On Self Test)。它依靠BIOS对系统进行检测,顺序...

电脑开机后点什么东西都没反映,怎么办
【启动过程中的死机】要分析计算机在启动时出现的死机现象,首先你得清楚计算机系统的启动顺序,从而分析出计算机是因软件问题还是硬件故障引起的死机。所以在这儿有必要简要介绍一下计算机系统的启动顺序:打开计算机电源→检测显卡→检测内存→执行bios→检测其它设备(cpu、硬盘等等设备)→执行操作系统(os)的初始化文件。而...

碳同位素测定
启动GC-C-MS在线分析程序,检测、贮存分析过程中CO2质量数(44)、(45)、(46)离子流信号与相应的(44)、(45)、(46)\/(44)同位素比值,经计算机数据处理获得所有检测到的CO2质谱峰的δ13数值。 e.质谱峰的确定。在整个在线试样分析过程中,电位仪记录CO2m\/z44(或45、46)离子流质谱图。该谱图与相应色谱条件下...

殷都区13728129052: BIOS启动过程分析 -
望包盐酸: 对于电脑用户来说,打开电源启动电脑几乎是每天必做的事情,但计算机在显示这些启动画面的时候在做什么呢?大多数用户都未必清楚了.下面就向大家介绍一下从打开电源到出现Windows 9X的蓝天白云,计算机到底干了些什么工作.电脑...

殷都区13728129052: linux怎么启动 ams服务 -
望包盐酸: 时间:2016-03-23来源:linux网站 作者:meteorite91 最近需要使用rtmp服务器,在red5和AMS之间选择了AMS来搭建,说先说明一下AMS全称是adobe media server,在5.0版本之前名称是FMS(flash media server).搭建的环境:64位的centos...

殷都区13728129052: linux dmesg怎么分析开机过程 -
望包盐酸: kernel会将开机信息存储在ring buffer中.若是开机时来不及查看信息,可利用dmesg来查看.开机信息亦保存在/var/log目录中,名称为dmesg的文件里. 最简单的就是把下面的脚本放到crontab里去定期运行: cat /var/log/dmesg >>/目录/dmesg.txt #将...

殷都区13728129052: 分析下列控制电路启动和停止时的工作步序 -
望包盐酸: 此电路为电阻降压启动电路,首先确认各元件的作用:SB1为停止按钮,SB2为启动按钮,FR为过流保护器,KM1降压启动接触器,KM2正常运转接触器,KT时间继电器,R大功率降压启动电阻,FU熔断器,M电动机.本电路工作过程如下:...

殷都区13728129052: 简述微型计算机系统的启动过程 -
望包盐酸: 1. 当按下电源开关时,电源就开始向主板和其他设备供电. 2. 系统 BIOS 的启动代码首先要做的事情就是进行 POST ( Power - on Self Test,加电自检). 3. 系统 BIOS 将查找显卡的 BIOS . 4. 查找完所有其他设备的 BIOS 之后,系统 BIOS 将...

殷都区13728129052: 有关AMS的论文 -
望包盐酸:当前位置:首页 << 材料化工 << 详细信息 AMS加氢催化剂的制备、表征及反应条件对催化剂活性的影响研究 【 论文字数:14517 论文价格: 】 α-甲基苯乙烯,亦称1---甲基乙烯基苯(以下简称AMS),属于苯乙烯的一种同系物.由于在芳环...

殷都区13728129052: 电机各种启动方式及原理. -
望包盐酸: 直接启动: 直接启动的优点是所需设备少,启动方式简单,成本低.电动机直接启动的电流是正常运行的5倍左右,理论上来说,只要向电动机提供电源的线路和变压器容量大于电动机容量的5倍以上的,都可以直接启动.这一要求对于小容量...

殷都区13728129052: 简述路由器的启动过程? -
望包盐酸: (1)开机自检(power-on self,POST) (2)如果(1)正常,IOS存在,将从闪存FLASH中查找和加载IOS到随机存储器RAM中(但2500系列不加载RAM中,直接从闪存中运行). (3)如果(1)和(2)正常,接下来它将在非易失存储器NVRAM中查找启动配置文件startup-config,假如没有找到任何启动配置文件,router将进入到SETUP模式. (4)如果在非易失存储器NVRAM中查找到启动配置文件startup-config,将按照启动配置文件startup-config启动路由器.

殷都区13728129052: 哪些有限元分析软件可以仿真调速PMSM的矢量控制启动过程 -
望包盐酸: 你可以试试flux+simulink,那个从你控制的角度会好些~

殷都区13728129052: Android 是怎么启动一个Acitivity的 -
望包盐酸: 可以把启动过程分为client端和server端.一、client端在启动一个Activity时进行的工作 备注:我个人理解,client端指的是相对后台ActivityManagerService 进程来说的前台用户可见的进程,如在界面启动某一个Activity的就是Laucher进程.这里则...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网