0
点赞
收藏
分享

微信扫一扫

-bash: ./1.sh: /bin/bash^M: bad interpreter: No such file or directory解决方法

洲行 03-22 06:00 阅读 1
android

在Android 11系统启动流程中,系统启动主要经历了以下几个阶段:

  1. 引导加载程序(Bootloader)启动:

    • 当设备加电后,首先运行的是ROM Bootloader,它负责验证操作系统映像的完整性、初始化基本硬件并加载内核镜像。
  2. Linux内核启动:

    • Bootloader加载Linux内核并将其放入内存,内核开始执行,进行自我初始化,包括检测和配置硬件设备、挂载根文件系统(ramdisk)、启动第一个用户态进程——init进程。
  3. init进程启动:

    • init进程(pid为1)是Android系统中所有其他进程的父进程。init在启动时会解析init.rc配置文件,按照文件中的指令顺序启动必要的系统服务、守护进程、以及其他的init服务脚本。
  4. 启动Zygote进程:

    • init会启动Zygote进程,Zygote是Android系统中所有应用程序进程的母进程。Zygote预先加载了Dalvik/ART虚拟机和大部分Android框架库,它通过 fork() 系统调用快速创建新的应用程序进程。
  5. SystemServer启动:

    • Zygote接下来会孵化SystemServer进程,SystemServer负责启动系统服务,如ActivityManagerService、PackageManagerService、WindowManagerService等核心服务,构建Android系统的运行时环境。
  6. 启动SurfaceFlinger服务:

    • SystemServer会启动SurfaceFlinger服务,负责管理和合成各个应用窗口,为显示输出做好准备。
  7. 启动Launcher及其他应用:

    • ActivityManagerService负责启动系统桌面(Launcher),以及其他必要的系统应用和服务。当Launcher启动并加载完毕后,用户就可以看到并操作主屏幕。
  8. 用户登录及解锁屏幕:

    • 用户输入密码、图案或生物识别信息解锁设备,系统完成认证后展示完整的用户界面。
  9. 应用加载与启动:

    • 当用户点击应用图标时,通过Binder IPC机制,AMS与Zygote合作创建新的应用程序进程,加载并启动目标应用。

在整个启动流程中,Android系统采取了一系列优化措施,如预先加载共享库、缓存系统服务等,以加快系统启动速度和应用加载效率。随着版本迭代,Android系统启动流程的具体细节可能会有所调整和优化。

举报

相关推荐

0 条评论