AndroidAndroid底层开发

1. Android 系统架构和分层

2019-10-17  本文已影响0人  瑟闻风倾
Android 系统架构.png
分类 名称 作用 说明
软件-android os app java(应用层) 基于java来实现,运行在虚拟机上 java写应用程序的效率和代码复杂度比 C 和 C++ 高很多
软件-android os framework java (应用框架层) 提供activityManger、windowManger、sensorManger、powerManger、wifiManger、packageManger等一系列服务;提供相关activity以及进程间通讯的方式 应用框架层提供的管理系统、服务和进程间通讯的方式足够让我们快速地构建自己的应用程序;应用框架层代码开源,可定制所需的控件和服务
软件-android os dalvik (虚拟机系统) 连接上层应用、低层服务和第三方库,提供自动化管理,尤其是内存管理 有虚拟机后才可以用java写上层应用
软件-android os library (第三方开源库文件) libjpack、libprg和webwik等第三方开源库可对系统进行处理 -
软件-android os framework c++ 承上启下的作用:对上层framework java 层提供服务,对下挂接hal层的外设(Sensor、Camera和WiF等) 安全机制: 确保同一时刻只有一个应用程序对外设进行访问(对外设提供保护)
软件-android os hal (硬件适配层) 将主要外设抽象为标准的接口供上层framework c++ 层调用 -
软件 kennel (linux内核层) 整个系统的核心(内核启动完成后会触发android系统的启动) 负责内存、进程和网络管理等;可直接对硬件进行控制并将硬件抽象为文件对上层提供接口
软件 boot 引导kennel的启动 将内核从flash中搬到内存中
硬件 主cpu 引导boot的启动(主芯片会提供各种启动模式:从usb启动;从cd卡启动;从flash启动) 包括 Cache、MMU、GPU、各种总线等;由cpu厂商,即芯片开发商准备
硬件 外围设备 围绕cpu的主要接口来进行外围设计 外围设计包括 Sensor的选型、Camera的选型、LED的选型、Memery的选择以及存储空间的大小等;主要由硬件工程师来决定

嵌入式平台的启动过程:硬件上电–>运行CPU自带的boot–>启动u-boot—>加载linux内核 –>挂载rootfs–>调用rootfs中的脚本/etc/profile—>调用用户的应用程序。参考Linux 开机启动详解Android的开机启动流程android系统启动流程

上一篇下一篇

猜你喜欢

热点阅读