一、Android系统框架

android系统采用软件堆叠(software stack)的架构,主要由操作系统、中间件、核心应用程序组成。得益于android为应用开发者提供了一套定义良好的软件框架,开发者即使不具备特别高深的专业知识,也能在短时间内开发出强大的android应用程序。


上图是android系统框架图,android采用分层架构,分成了4个层,从上到下分别为:应用程序层、framework层、系统运行库层、Linux内核层。蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿色部分为C/C++语言编写的程序库,红色的代码内核(linux内核+driver)。android应用程序运行在framework层上,应用开发者借助android sdk调用android framework层提供的API。

二、Android启动流程

本文主要关注系统运行库层和framework层,android启动流程图如下所示:


1.Linux内核 Android是基于Linux内核的系统平台。Android启动时,首先启动bootloader,加载Linux内核,然后调用init进程。 2.init进程 init进程是内核启动的第一个用户态进程。init对各种设备进行初始化,运行android framework所需的各种守护进程(daemon)、Service Manager、Media Server、Zygote等。以下是init进程执行的daemon进程。 USB daemon:管理USB连接; Android Debug Bridge Daemon:管理adb连接; Radio Interface Layer Daemon(rild):管理无线通信连接; 3.Service Manager Service Manager是管理Android系统服务的重要进程。系统启动时,Android所有系统服务都要把各自的信息注册到Service Manager。 4.Media Server Media Server用于运行基于C/C++的本地系统服务,比如Camera等; 5.Zygote 在操作系统中存在一个全局监听创建新进程消息的监听进程,当它收到消息时,通知孵化进程进行孵化,Android中这个进程就是Zygote。每当执行Android应用程序时,Zygote就派生出一个虚拟机子进程来执行应用程序。 6.System Server System Server是android系统的一个核心进程,它是由Zygote进程创建。System Server进程中建立了Android的大部分服务,比如Activity Manager Service、Location Manager Service等,并且将这些服务注册到Service Manager中。



更多相关文章

  1. Android应用程序进程启动过程(前篇)
  2. Android开发人员的10大抱怨
  3. 在Android上授权Adobe AIR应用程序
  4. Android(安卓)核心分析 之八Android(安卓)启动过程详解
  5. Android应用程序请求SurfaceFlinger服务创建Surface的过程分析
  6. Android系统启动流程(3) —— 解析SystemServer进程启动过程
  7. 浅析Android线程模型
  8. Android内核开发:开发板选购
  9. Android应用程序怎么刷到手机上

随机推荐

  1. android布局属性详解
  2. Failed to sync vcpu reg
  3. android 数据库 备份还原
  4. android自带的drawable图标ico名称对应表
  5. Cocos2d-3.x Android环境搭建
  6. Android(安卓)RelativeLayout 实现顶部左
  7. 2013.05.16——— android 关于listview
  8. Android中获取屏幕信息DisplayMetrics的
  9. android添加外部按键
  10. Android资源收集