仗劳勤学网

android应用启动过程(android app启动)

本篇目录:

Android输入法IMMS服务启动流程(3)(启动IMS应用)

文件:/ frameworks / base / services / core / java / com / android / server / wm / WindowState.java 能看到实际上这个过程诞生了一个很重要的对象InputWindowHandle,输入窗口的句柄。

Android启动过程深入解析

Android内核与桌面linux内核启动的方式差不多。内核启动时,设置缓存、被保护存储器、计划列表,加载驱动。当内核完成系统设置,它首先在系统文件中寻找”init”文件,然后启动root进程或者系统的第一个进程。

android应用启动过程(android app启动)-图1

Android系统中具备6个模式,分别为一般启动模式(normal mode)、安全模式(safe mode)、恢复模式(recovery mode)、引导模式(bootloader mode)、fastboot模式和诊断模式(diagnostic mode)。

Android init.rc文件由系统第一个启动的init程序解析。是启动系统服务使用的文件。主要包含了四种类型的语句:Action和services显式声明了一个语句块,而commands和options属于最近声明的语句块。

Android系统启动流程: 首先会从ROM中预定义的地方加载引导程序BootLoader到RAM中,并执行BootLoader程序启动Linux Kernel,然后启动用户级别的第一个进程init进程。

如果是同一个App中启动某个设置了此模式的Activity的话,如果栈中已经存在该Activity的实例,那么就会将该Activity上面的Activity清空,并将此实例放在栈顶。

android应用启动过程(android app启动)-图2

系统开机后,系统产生并发送开机广播,同时设置开机广播的Flag为FLAG_excluds_stopped_packages,即对于之前未启动过的应用不发送开机广播。

AMS启动过程分析

IPC过程:双方都是通过对方的代理对象来进行通信。

其中 startService 的启动方式是不能进行通信的,而且其Service的生命周期不跟调用方同步。 binderService 启动方式则可以通过Binder进行通信。

普通Activity的启动就是通过调用startActivity方法启动一个新的Activity,总体流程如下图:其中涉及到了两个进程,一个是App进程和AMS进程。整体的步骤是:启动者Activity向Instrumentation请求启动目标的Activity。

android应用启动过程(android app启动)-图3

scheduleServiceArg()方法最终通过调用handleServiceArgs()方法,回调Service.onStartCommand()方法。至此,Service的启动过程分析完毕。

如果音响系统处于mp3模式,按此按钮选择mp3菜单。Ams由电池、发电机、调节器、充电状态指示器、开关和电线连接的电气系统组成。ams的工作原理:发动机正常工作时,发电机给用电设备供电,给蓄电池充电。

无论是点击桌面图标调用 startActivitySafely 还是直接调用 startActivity 在源码中都是调用的 startActivityForResult 方法。由于 Activity 的启动流程有些复杂,因此本文先从进程的 fork 创建过程来入手分析。

Android系统启动之init.rc文件解析过程

Android init.rc文件由系统第一个启动的init程序解析。是启动系统服务使用的文件。主要包含了四种类型的语句:Action和services显式声明了一个语句块,而commands和options属于最近声明的语句块。

init是第一个进程,我们可以说它是root进程或者说有进程的父进程。init进程有两个责任,一是挂载目录,比如/sys、/dev、/proc,二是运行init.rc脚本。init进程可以在/system/core/init找到。

在 Zygote 一文中说过, init 进程启动的第二阶段会解析 init.rc 文件。在这之后会触发 trigger init 。结合 init.rc 看看 action init 做了什么。

到此,以上就是小编对于android app启动的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

分享:
扫描分享到社交APP
上一篇
下一篇