Android 是一个为移动设备设计的软件栈,包括操作系统,中间件和关键应用。 Android SDK 提供了使用 Java Andorid 平台上开发应用所需的工具和 API

特性

应用框架 提供了组件的复用和置换

Dalvik 虚拟机 针对移动设备进行了优化

内置浏览器 基于开源的 WebKit webkit.org )引擎

优化图形支持 包括自定义的 2D 图形库; 3D 图形基于 OpenGL ES1.0 标准

SQLite 用于结构话的数据存储

多媒体支持 :支持常用的音频视频和图像格式( MPEG4 H264 MP3 AAC AMR JPG PNG GIF

GSM 技术 :依赖于具体硬件实现

蓝牙, EDGE 3G ,WiFi: 依赖于具体硬件

摄像, GPS ,加速: 依赖于硬件

丰富的开发环境 :包括设备模拟器,调试工具,内存和性能分析,以及 Eclipse IDE 插件

Android 架构

下图显示了 Android OS 的主要组件。下面每段对各个模块进行了详细描述

应用

Android 封装了一组核心应用,包括 Email 客户端, SMS 应用,日历,地图,浏览器,联系人和其他应用。所有的应用都是有 Java 编写。

应用框架

开发者能够访问所有核心应用所使用的框架 API 。应用架构被设计成简洁的组建复用;任何应用发布本身的兼容性,任何其他的应用都可一利用这些兼容性(遵循框架的安全原则)。这种机制使得组建可以被其它用户置换。

应用之下是一系列服务和系统,包括:

1. 丰富的可扩展的视图( View 集合可以被用来构建应用,包括 lists, grids, text boxes,buttons, 以及嵌入式浏览器

2. 内容提供者 (Content Providers) 能够是应用访问来自其他应用的数据,例如联系人( Contacts , 或者与其他应用共享数据

3. 资源管理器( Resource Manager) ,支持访问非代码资源,例如本地字符,图像,布局文件

4. 消息管理器( Notification Manager 使得应用能够在状态栏中显示自定义的警告

5. 活动管理器( Activity Manager) 管理应用的生命周期,提供通用的导航返回栈。

Android 包括了一组被各个组件使用 C/C++ 库。这些兼容性通过 Android 应用框架暴露给开发者。下面列出一些核心库:

1. 系统 C 库( System C library - 一个基于 BSD 实现的标准 C 系统库( libc ),支持嵌入式 linux 的所有设备。

2. 多媒体库( Media Libraries - 基于 PacketVideo OpenCORE ;这个库支持播放和录制多种流行视频和音频格式,包括静态图像格式。

3. 表面管理器( Surface Manager - 管理访问显示子系统与多种应用的 2D 3D 图形层无缝连接。

3.LibWebCore- 一个现代的 web 浏览器引擎,支持 Android 浏览器和嵌入式 Web 视图。

4.SGL- 底层的 2D 图形引擎。

5.3DLibraries - 基于 OpenGL ES1.0 实现的 API ;该库使用 3D 硬件加速(如果硬件支持)或这高度优化的软件渲染。

6.FreeType - 位图和向量字体渲染。

7.SQLite - 一个强大的轻量级关系数据库引擎,可以被所有应用使用

Android 运行时环境

Anroid 包括一系列的核心库,这些库提供了绝大多数 Java 核心库所需的功能。

每个 Android 应用是一个独立运行的进程,在 Dalvik 虚拟机中有独立的例程。 Dalvik 被实现用于在一个设备上有效的运行多个虚拟机。 Dalvik 虚拟机的可执行文件 Dalvik Executeable(.dex) 被优化的占用最小的内存空间。虚拟机以注册为基础, Java 类编译的字节码被 dx 工具优化为 .dex 文件。

Dalvik VM 底层依赖于 Linux 内核, linux 内核为其提供线程和低级内存管理。

Linux 内核

Android 基于 Linux2.6 内核所提供的服务,包括安全,内存管理,进程管理,网络堆栈,以及驱动模型。内核同时扮演了一个介于硬件和其余软件栈之间的一个抽象层。

更多相关文章

  1. 还在用android.support?该考虑迁移AndroidX了!
  2. Android应用中通过AIDL机制实现进程间的通讯实例
  3. Android基本组件学习(Activity生命周期)
  4. Android(安卓)Framework入门介绍
  5. Android使用系统Intent实现分享功能及将应用加入分享列表
  6. Android清单文件详解(一) ---- 一切从开始
  7. android 常用测试框架
  8. Android(安卓)Studio 3.6 正式版终于发布了
  9. Android的系统架构

随机推荐

  1. 迪芝伦(Digilent)推出全新开发板PYNQ-Z1,支
  2. RPA逆势火了
  3. 关于Xilinx Zynq UltraScale+ MPSoC的电
  4. 同态加密技术及其在机器学习中的应用详解
  5. 看Mellanox公司如何降低服务器CPU负载!
  6. 赛灵思FPGA助力解决困扰7年的27皇后难题
  7. 借助NOR Flash实现UltraScale FPGA后配置
  8. 阿里1688实时数据工程实践
  9. JavaWeb系统自学,全栈学习路线图,百度网盘
  10. flex容器中的四个属性