【Android系统】Android系统架构简介

概述



Android系统架构如下图:

从上往下一共是四层:

应用程序层、应用程序框架层、函数库与Android运行时层、Linux内核层。

下面分别介绍各层:

分层介绍


应用程序层



包含系列的Android核心应用程序,大部分的Android应用也属于这一层,如日历、闹钟、浏览器等。这一层属于用户。

应用程序框架层



这一层就是普通开发者需掌握的层,我们使用框架里的各个模块来开发应用,这些模块和各种服务都可以复用。理解了这一层,开发者就能更快更好的开发应用。下面介绍一下各个模块:

序号 模块名 用途
1 Activity Manager(活动管理器) 管理应用程序生命周期并提供常用的导航回退功能
2 Window Manager(窗口管理) 整个Android的窗口机制都基于WindowManager,这个接口可以添加view到屏幕,也可以从屏幕删除view
3 Content Providers(内容提供者) 使得应用程序可以访问另一个应用程序的数据,或共享它们自己的数据
4 View System(视图管理) 用来创建应用程序的视图,即各种UI组件
5 Notification Manager(通知管理器) 使得应用程序可以在状态栏中显示客户通知信息
6 Package Manager(包管理器) 管理应用程序包,通过它可以获得应用程序的信息
7 Telephony Manager(电话管理器) 提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。
8 Resource Manager(资源管理器) 图片资源,界面xml资源、字体、颜色等资源都由资源管理器统一管理
9 Location Manager 管理地图服务的相关功能
10 XMPP Services 可扩展消息与表示协议服务,这是一个基于XML的通信协议

函数库与Android运行时层



这一层已涉及底层,一般的Android应用不会涉及此层。此层包括函数库和Android运行环境:

Libraries

序号 模块名 功能
1 Surface Manager 对显示子系统的管理,并且为应用提供2D,3D图层的无缝融合
2 Media Framework(媒体库) 基于PackeVideo OpenCore,该库支持多种常用的音频,视频格式以及回放和录制,同时支持静态图像文件。编码格式包括:MPEG4、H.264,MP3、AAC、AMR、JPG、PNG
3 SQLite 对所有应用程序可用,功能强大的轻量级关系型数据库引擎
4 OpenGL ES 基于OpenGL ES 1.0 APIs实现,该库可以使用硬件3D加速或者使用高度优化的3D软加速
5 FreeType 位图(bitmap)和向量(vector)字图显示支持
6 WebKit 最新的web浏览器引擎,用来支持Andiroid浏览器或者嵌入的web视图
7 SGL 底层的2D图形引擎
8 SSL Secure Sockets Layer 安全套接层,为网络通信提供安全及数据完整性的一种安全协议
9 libc(系统C库) 一个从BSD集成来的标准C系统函数库(libc)它是专门为基于嵌入式Linux的设备定制的

Android Runtime

序号 模块名 功能
1 Core Libraries 该核心库提供了Java编程语言核心库的大多数功能
2 10.Dalvik VM android平台的一个虚拟机,它相当于PC中Java的虚拟机JVM

Linux内核层



此层为Android系统所依赖的Linux内核,内核提供的功能如下:

  1. 安全性(Security)
  2. 内存管理(Memory Management)
  3. 进程管理(Process Management)
  4. 网络堆栈(Network Stack)
  5. 驱动程序模型(Driver Model)包含以下这些常规的驱动程序:
    • Display Driver
    • Keypad Driver
    • Camera Driver
    • WiFi Driver
    • Flash Memory Driver
    • Audio Driver
    • Binder(IPC)Driver
    • Power Management
    • Bluetooth Driver
    • USB Driver
时间: 2024-10-17 12:33:24

【Android系统】Android系统架构简介的相关文章

第一章 Android体系与系统架构

1. Dalvik 和 ART(Android Runtime) 在Dalvik中应用好比是一辆可折叠的自行车,平时是折叠的,只有骑的时候,才需要组装起来用.在ART中应用好比是一辆组装好了的自行车,装好就可以骑了. 2. Android源码目录结构:(一个可以查看Android源代码网站:http://androidxref.com/) Makefile (描述Android各个组件间的联系并指导它们进行自动化编译) bionic (bionic C库) bootable (启动引导相关代码)

开箱即用!Android四款系统架构工具

开箱即用!Android四款系统架构工具_天极网 一款功能强大且实用的开发工具可以为开发者简化开发流程,提高工作效率,允许开发者在应用开发本身投入更多的时间和精力,从而提高作品质量.本文就为大家分享4款实用的Android应用架构工具. 开发者若想开发出一款高质量的应用,一款功能强大的开发工具想必是不可或缺的.开发工具简化了应用的开发流程,也能使开发者在应用开发本身投入更多的精力.本文就为大家带来4款实用的Android应用架构工具. 1. Spring for Android Spring f

Android之路-------浅淡Android历史、系统架构与开发特色

前言 离上一篇发表的博客差不多有两个星期了吧,相信有些博友差点就对LP失望了,因为上一篇博文中说了,这次不管怎样,LP都会坚持写博客的. 由于工作关系LP才隔了这么久才再次发表博文,这篇博文主要是总结LP看Android书学到的知识.好了,废话不多说了,正式开始吧.... 目录 Android历史 Android系统架构 Android应用开发特色 Android历史 说到Android历史,android就像一只打不死的小强,它有坚持不懈的精神,怎么说呢...从Andy Rubin 等人一起创

Android历史与系统构架简介

一:Android发展史 在2012年,Android手机的全球销量为4.815部,占据了全球智能手机68.8%的市场份额.在2013年,这个数字上升到了7.812亿.78.9%,这是一个相当惊人的数字. 讲到Android系统的历史,首先我们就要先来说说Android系统这个名字的来历.Android这一次最先出现在法国作家利尔 亚当在1886年发飙的科幻小说<未来夏娃>中,作者将外表像人类的机器起名为Android,这也就是Android小人名字的由来. 知道了Android名字的来历我们

[系统集成] Android 自动构建系统

一.简介 android app 自动构建服务器用于自动下载app代码.自动打包.发布,要建立这样的服务器,关键要解决以下几个问题: 1. android app 自动化打包android 的打包一般是人工通过eclipse或者studio的ui界面打包的,如果要让系统自动打包,必须在控制台环境下:只要按照 google 的文档,把 eclipse 或者 studio 工程转化为 ant 或者 gradle 工程,就可以在控制台环境下打包了:这里,我们选择 ant,主要是它容错好,遇到图片格式等

Android平台GPS系统的应用开发

第一部分.前述: Android作为Google移动互联网战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现.Google的目标是让移动通信不依赖于设备,甚至是平台.出于这个目的,Android将完善而不是替代Google长期以来推行的移动发展战略:通过与全球各地的手机制造商和移动运营商成为合作伙伴,开发既实用又有吸引力的移动服务,并推广这些产品. 随着城市化的进展和家用轿车的普及.原本根遥远的全球卫星定位系统(Global Position System.6Ps)的

android计时与系统休眠

android计时与系统休眠 TIP:可能写的有点仓促,具体的可以联系我(*^__^*) 摘要:之前做项目的时候,修改一个倒计时秒表,本来以为比较简单,但是发现很多有趣的东西.我们项目里面用的是Timer计时的方法,但是,当系统休眠的时候,Timer也是处于休眠状态的.后来,我改进了几个方法,一个是handle+message的方法,还有一个是handle+runnable的方法,还有handle+Thread的方法.但是同样发现系统休眠的时候,这些同样是处于休眠状态的.后来上网查找了一下,这和

Android 4.X 系统加载 so 失败的原因分析

1 so 加载过程 so 加载的过程可以参考小米的系统工程师的文章loadLibrary动态库加载过程分析 2 问题分析 2.1 问题 年前项目里新加了一个 so库,但发现native 方法的找不到的 crash 好多,好些都是报了java.lang.unsatisfiedlinkerror native method not found,而且基本上是出现在4.x的系统里,特别是 4.4,4.2的系统.在网络上搜索相关的可能导致到这个问题的原因: so 文件没有在对应架构的目录里找到: 方法名有

Android、iOS系统全部支持的移动端车牌识别

移动端车牌车牌识别的应用背景 随着经济水平的不断提升,汽车数量的爆炸式激增为汽车管理带来了一定的困难.现在,车牌识别已经成为每个城市的车辆管理重点工作之一,有效.准确.及时的车牌识别可以方便警务人员的交通执法.停车场车辆管理等工作.伴随着智能终端以及4G技术的快速普及与发展,移动互联网时代已经全面爆发,推出了"离线车牌识别软件-慧号通车牌识别",完美集成车牌识别算法,为智慧停车客户提供全套停车产业链的产品支撑和技术服务. 移动端车牌识别软件特点 1.识别速度快 "只需扫一扫,

Android:网络版学生系统

Android:网络版学生系统 项目简介 网络版学生信息管理APP,android客户端实现: 学生.管理员登录. 学生自我信息修改. 管理员对所有信息管理. 交换数据通过服务器,数据储存在服务器数据库中. 项目地址: AndroidStudentSystems 项目设计 使用工具 1.服务器搭建 技术: javaweb tomcat mysql8 工具: idea 2.客户端开发 技术: android(sdk 29) 工具: android studio (ver. 3.5.1) java(