当前位置: 首页 > news >正文

怎么维护网站教程宁波网站建设

怎么维护网站教程,宁波网站建设,做国外网站的站长,菏泽营销网站建设前言 AMS(Activity Manager Service)即活动管理器服务,是Android系统中的一个核心服务。它主要负责管理应用程序的生命周期,包括启动应用程序、切换应用程序、管理任务栈等。 Android启动流程 Android程序的启动流程可以概括为…

前言

AMS(Activity Manager Service)即活动管理器服务,是Android系统中的一个核心服务。它主要负责管理应用程序的生命周期,包括启动应用程序、切换应用程序、管理任务栈等。

Android启动流程

Android程序的启动流程可以概括为以下几个步骤:

Boot Room(引导程序):

当我们按下手机的电源键时,Boot Room会首先运行,它会检测并初始化硬件设备,加载引导程序和启动内核。在这一步中,Boot Room需要确保设备能够正常地启动,并加载能支持Android系统的Bootloader引导程序。

Bootloader:

在手机启动过程中先运行,它负责控制系统的引导流程,包括检测硬件、初始化系统资源和加载内核等操作。

内核启动:

内核(Kernel)是Android系统的核心组件,它管理硬件设备、内存、进程和线程等系统资源。在内核启动的过程中,它会分配内存和初始化各种设备驱动程序。在完成初始化后,内核会启动init进程。

Init进程:

Init进程是Android系统的第一个用户空间进程,也是整个系统进程的父进程。它会在内核启动后立即启动,并负责初始化Android系统的各种服务和应用程序。在这一步中,Init进程会检查系统分区是否挂载成功,启动Zygote进程和Android的各个服务。

Zygote进程:

Zygote进程是专门为应用程序进程创建而设计的进程。它会在启动时读取预先编译过的Java核心库,并创建一个Android运行时环境。当一个新的应用程序进程需要启动时,Zygote进程会复制自己的状态并使用其作为模板来快速创建一个新的应用程序进程。

应用程序进程:

最后,Android系统会启动各种应用程序和服务的进程,如Launcher、Settings、Phone、SMS等。这些进程通常是由Zygote进程和其他系统服务创建的,它们通过Android API访问系统资源,并提供用户界面和功能。


内核主要任务

在系统启动过程中,内核是第二个被加载并运行的程序,它主要负责以下几个方面的任务:

硬件资源管理:

内核需要检测和识别设备硬件,并根据相关驱动程序来初始化和管理硬件资源。这些硬件资源包括CPU、内存、屏幕、键盘、USB口、Wi-Fi等,内核需要保证这些硬件设备能够正常工作。

内存管理:

内核需要分配并管理系统的物理内存和虚拟内存。在内核启动过程中,它会从系统中分配一部分物理内存,在内存中建立页表映射关系,并创建内核堆栈和用户进程堆栈。此外,内核还要实现内存保护机制、内存回收机制、内存压缩和释放机制等。

进程和线程管理:

在Android系统中,每个应用程序都运行在独立的进程中。内核需要创建和管理进程和线程,实现进程间通信和资源共享。在内核启动过程中,它会启动init进程作为系统的根进程,并在init进程中创建其他系统服务和应用程序进程。

设备驱动程序初始化:

内核需要加载并初始化各种设备驱动程序,包括输入输出设备驱动、系统总线设备驱动、网络设备驱动等。这些设备驱动程序与硬件相关联,将硬件和软件有效地联系在一起。


Init进程任务

Init进程是Android系统的第一个用户空间进程,也是整个系统进程的父进程。它会在内核启动后立即启动,并负责初始化Android系统的各种服务和应用程序。在这一步中,Init进程会检查系统分区是否挂载成功,启动Zygote进程和Android的各个服务。

挂载文件系统

在Linux系统中,文件系统需要以某种方式挂载到根目录下才能被访问。在Android系统启动时,Init进程会根据fstab文件配置,挂载根文件系统以及各种类型的文件系统,如proc、sysfs、tmpfs等。

设置SELinux策略

SELinux是一种基于内核的安全机制,可以限制应用程序的权限,提高系统的安全性。在Android系统启动时,Init进程会设置SELinux策略,并限制应用程序的权限。

开启属性服务,并注册到epoll中

在Android系统中,属性服务用于存储系统和应用程序的一些属性信息,如屏幕分辨率、设备名称等。在Init进程启动过程中,它需要开启属性服务,并将其注册到epoll中,以便其他进程可以访问这些属性信息。

解析init.rc脚本

在Android系统中,init.rc脚本用于定义系统启动时需要执行的命令和服务。在Init进程启动过程中,它会解析init.rc脚本,并按照其中的命令和服务依次执行。

循环处理脚本 - 启动Zygote

在执行完init.rc脚本后,Init进程会循环处理脚本并启动一些服务,包括启动Zygote进程、启动SystemServer等。

循环等待

在完成所有初始化工作之后,Init进程会进入一个循环等待状态,监听系统事件。当发生某些事件时,Init进程会根据事件类型执行相应操作,如启动或停止某个服务等。


Zygote进程任务

Zygote进程是专门为应用程序进程创建而设计的进程,在Android系统中起着至关重要的作用。它会在启动时读取预先编译过的Java核心库,并创建一个Android运行时环境。当一个新的应用程序进程需要启动时,Zygote进程会复制自己的状态并使用其作为模板来快速创建一个新的应用程序进程。

Zygote进程可以简单总结为以下几点:

初始化运行环境,创建JVM

在Zygote进程启动时,native代码会先初始化运行环境,包括创建Java虚拟机、加载Android Framework等。这些操作会在C++层面完成,然后通过JNI接口与Java层进行交互。

注册监听器

Zygote进程会注册一个监听器,用于等待其他进程的消息通知。当其他进程需要创建新的应用程序进程时,它们可以通过向Zygote进程发送消息来通知它。

调用ZygoteInit.main函数

在Zygote进程启动之后,native代码会调用ZygoteInit类中的main函数。这个函数的作用是解析传递给Zygote进程的参数,设置Zygote进程的一些属性,如用户ID、内存分配策略等。

预加载 - 加快进程启动

为了加快应用程序进程的启动速度,Zygote进程会预加载一些常用的类和库,如ActivityThread、SystemServer等。这样,在应用程序进程启动时,就可以直接使用这些已经加载好的类和库,而不必再重新加载和初始化它们,从而提高系统性能。

Socket - 等待通知

Zygote进程会创建一个Unix域套接字,并等待其他进程的连接请求。当其他进程需要创建新的应用程序进程时,它们会通过该套接字与Zygote进程进行通信,传递启动参数和选项等信息。

循环等待

在完成所有初始化工作之后,Zygote进程会进入一个循环等待状态,监听其他进程的连接请求。当其他进程发送消息给Zygote进程时,它会根据消息内容创建新的应用程序进程,然后再次进入循环等待状态。


http://www.tj-hxxt.cn/news/62577.html

相关文章:

  • 网站运营小白可以做吗信息流广告有哪些投放平台
  • 自己做网站 服务器seo品牌
  • 正规网站建设空间怎样进行网络推广效果更好
  • 如何把网站做成appseo平台代理
  • 工程建设信息官方网站网络营销出来可以干什么工作
  • 广州专业网站设计公司app开发定制
  • 网站建设需求调研方法网销平台排名
  • 网站开发天晟合益网络营销专业代码
  • 做字典网站开发免费网站自助建站系统
  • 成都网站建设公司创新互联搜索网站哪个好
  • 广州哪些做网站的公司seo服务是什么意思
  • 上海地铁最新公告安徽seo顾问服务
  • 外包网站建设报价海南百度推广电话
  • 韩国建筑网站东莞seo优化排名推广
  • 学院网站开发wbs图营销号
  • 0基础如何快速做网站深圳seo优化外包
  • 如何使网站能被百度搜到外贸网站免费推广
  • 精品网站建设公司百度一下你就知道了百度
  • 珠海pc网站建设朝阳seo建站
  • 怎样拍照产品做网站2023网站推广入口
  • 做微商有什么好的货源网站百度站长工具平台登录
  • 视频网站的嵌入代码是什么上海网站seo
  • 高端网站建设推来客网络百度投诉电话24小时
  • 吴江网站制作企业网站策划
  • 集团网站制作公司怎样联系百度客服
  • 小程序网站google下载官方版
  • 网站建设视频教程互联网培训机构排名前十
  • 搭建本地网站环境企业网站注册
  • wordpress注册不了东莞网站建设优化技术
  • iss怎么做网站百度推广排名代发