最近身为小菜的我开始研究android 系统源码,刚好研究到启动模式这一块,特此记录下来,希望各位大大不要怼我。
首先,我们都知道android 系统分为 应用程序层,framework层,系统运行库层和linux内核层。
其中framework层中其实就是由系统级的app堆砌起来的,在launcher 中Click事件会调用startActivity(Intent), 会通过Binder IPC机制, 最终调用到ActivityManagerService。
ActivityManagerService 此时会通过intent 拿到当前应用的信息,从而检查是否有打开应用的权限,如果在有权限的情况下,就会进一步判断ProcessRecord是否为空,为空的话就会创建一个新的进程去启动。
此时启动一个新的进程就属于冷启动,反之如果 是用户通过home键从前台进程进入到后台进程,这个时候进程存在,在启动app 就属于热启动。
网友评论