Android是什么?

Android是一个针对于移动设备的软件栈,它包括操作系统,中间件和关键应用。AndroidSDK提供了在Android平台使用Java编程语言进行开发应用程序的必要的工具和API。


特点

*应用程序框架 使组件可重用并且可替换

*Dalvik虚拟机 为移动设备优化

*集成的浏览器 基于开源的WebKit引擎

*优化的图形处理 以定制的2D图形库和基于OpenGLES 1.0规范的3D图形(可选的硬件加速)为基础

* SQLite结构化数据的存储

*媒体支持 常见的音视频格式,还是图形格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)

*GSM电话 (基于硬件)

*蓝牙,EDGE,3G和WiFi (基于硬件)

*照相机,GPS,指南针,加速感应器 (基于硬件)

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

Android构架

下图显示了Android操作系统的主要组成部分。每个部分进行了更详细说明。

Android是什么(What is Android)


应用

Android将配备一系列核心应用程序,包括电子邮件客户端,短信程序,日历,地图,浏览器,通讯录等。所有的应用程序都是使用Java编程语言。


应用框架

通过提供一个开放的开发平台,Android给予了开发者构建极为丰富和创新类的应用程序的机会。开发这可以自由地利用设备,访问位置信息,运行后台服务,设置闹钟,在状态条里添加通知等等。

开发人员可以使用和核心应用程序使用的完全相同的API框架。应用程序架构的设计的目的是为了简化组件的重用;任何应用程序都可以发布它的功能,其他的应用程序可能会利用到这些功能(需遵守框架提供的安全约束)。依靠同样的机制,组件可以被用户所取代。


底层的所有的应用程序是一组服务和子系统,包括:

*一组丰富并且可扩展的view,这组view可以被用来构建一个应用程序,包括列表,表格,文本框,按钮,甚至可嵌入的Web浏览器

*一组ContentProvider,可以使应用程序访问其它应用程序的数据(比如通讯录),或者共享自己的数据。

*一个资源管理器,提供对非代码资源的访问,比如本地化的字符串,图形和布局文件

*一个通知管理,可以使所有的应用程序在状态栏显示定制的提醒

*一个Activity管理,它管理的应用程序的生命周期,并且提供了一个通用的后台切换栈

如需了解一个应用程序的详细信息和具体示例,请参考Notepad代码示例。




Android包括了一套C/C++库,这套库被Android系统的各个组件使用。这些能力通过Android应用框架展示给应用开发人员。一些核心库的如下:


*系统C库 - 一个针对于标准C系统库(libc)的BSD派生的实现,针对于嵌入式Linux设备进行了调整

*媒体库 - 基于PacketVideo的的OpenCore;该库支持回放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4,H.264,MP3,AAC,AMR,JPG和PNG格式

*Surface管理器 - 管理访问显示子系统和从多个程序中无缝合成二维和三维图形层

*LibWebCore - 一个流行的Web浏览器引擎,它对Android浏览器和嵌入式Web视图具有良好的支持

*SGL - 底层的2D图形引擎

*3D库 - 基于OpenGL ES 1.0 API的一个实现;该库使用硬件3D加速(如果可用)或包含高度优化的3D软件光栅扫描器

*FreeType – 用于位图和矢量字体渲染

*SQLite - 一个提供给所有的应用程序使用的强大的,并且轻量级的关系型数据库引擎


Android 的运行


Android包括一组核心库,这组核心库提供了用于Java编程语言的核心库可用的大多数功能。

每个Android应用都运行在它自己的进程里,并依附一个单独的Dalvik虚拟机实例。一个设备可以高效地运行多个Dalvik虚拟机。 Dalvik虚拟机执行Dalvik可执行文件(.dex)的格式,此格式做了最小的内存占用优化。Dalvik虚拟机是基于寄存器的,并运行由dx工具将Java语言编译器编译完的class文件转换为的dex格式文件。

Dalvik虚拟机的底层功能依赖Linux内核,例如线程和底层的内存管理。


Linux内核

Android的核心系统服务,比如安全,内存管理,进程管理,网络协议栈和驱动模块都是依赖于Linux 2.6。内核也作为在硬件和软件栈之间的抽象层。

更多相关文章

  1. Android 应用程序消息处理机制(Looper、Handler)分析
  2. [置顶] Android应用开发 第二讲:Android系统构架分析和应用程序目
  3. 东拼西凑的第一个Android应用程序
  4. Android智能电视应用程序开发浅谈(一)
  5. 第三部分:Android 应用程序接口指南---第一节:应用程序组件---第五
  6. Android应用程序消息处理机制(Looper、Handler)分析

随机推荐

  1. Android(安卓)Intent使用
  2. android 布局长度单位深入研究
  3. 记一个Android(安卓)Launcher的bug
  4. 金九银十中,看看这31道Android面试题
  5. 窥探支付宝钱包android客户端的屏幕加密
  6. Android(安卓)Hook Activity 的几种姿势
  7. android实现省市区三级联动 citypicker
  8. [有梦想的IT人] Android优秀的动画库
  9. 十分钟学会kotlin实现Android(安卓)MVP模
  10. unity通过android adb查看真机日志