安卓系统里启动过程和应用进程

来源:互联网 发布:.net core java 编辑:程序博客网 时间:2024/04/28 09:52

在Android里,进程和程序是两回事,程序可以一直保留在系统里,但是没有任何进程在后台运行,也不消耗任何系统资源。所有的程序保留在内存中,这样可以更快的启动回到它之前的状态。当你的内存用完了,系统会自动帮你杀掉不用的应用或任务。

每一个Android应用都是以一个进程的方式运行的,其生命周期不是有自身控制,而是由系统根据运行的应用的一些特征来决定。
  Android在进程活动停止后,仍然把这些进程都保留在内存中;这些保留在内存中的进程通常情况下不会影响整体系统的运行速度,当用户再次激活这些进程时,可以快速的启动。
  所以,与Windows、Symbian不同,在Android里,RAM被用满了不是坏事,它意味着可以快速打开之前打开的软件。Android系统不需要经常纠结进程,也不用安装使用进程管理软件,因为进程管理软件本身也消耗了系统资源。

  独立虚拟机
  Android是以Linux为核心的平台,使用Java作为编程语言。Android上的应用都是java程序(也可以加入C++编写的.so库),这就需要虚拟机,而Android上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机。这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存。
  Android里每个进程都是基于虚拟机的,并且也要加载基本的库,实际上这些都是共享,所以Android启动一个新的程序实际上并不消耗很多的内存和CPU资源。

  安装时进行优化dex文件
  APK是AndroidPackage的缩写,即Android安装包,apk是类似Symbian Sis或Sisx的文件格式。将APK文件直接传到Android模拟器或Android手机中执行即可安装。Android的应用程序都打包成一个apk文件,其实是zip格式,但后缀名被修改为apk。
  apk文件通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序。Dalvik是Google公司设计专用于Android平台的Java虚拟机。
  系统第一次启动或应用程序第一次安装时,就把apk文件解压了,把可执行文件dex优化成odex文件并放在/data/dalvik-cache目录下。优化后的dex文件启动速度会加快。这就解释了为什么Android系统第一次启动是比较慢,以后起来很快了。

  Android系统在开机流程
  —启动BootLoader(初始化硬件设备和建立内存空间映射图)
  —加载系统内核kernel
  —启动Init进程
  —启动zygote后台进程(Dalvik虚拟机初始化和库的加载)
  —启动系统服务system_server
  —启动桌面launcher

0 0
原创粉丝点击