Android是什么?其实也不敢妄下定义。就简单理解说,它是一个在移动设备上提供中间件和必要应用程序的操作系统。
Android, the world's most popular mobile platform.
Android体系结构如图:
android操作系统组成部分:
A:Linux Kernel :android操作系统底层用的是Linux内核(安全管理、内存管理、进程管理、电源管理、硬件驱动)
B:Libraries : C和C++写的类库文件,提供给Application通过jni 调用
- 系统C库——标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备
- 媒体库——基于PacketVideo的OpenCORE。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、 H.264、 MP3、 AAC、 AMR、JPG、 PNG
- 界面管理——管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层
- LibWebCore——新式的Web浏览器引擎,驱动Android 浏览器和内嵌的web视图
- SGL——基本的2D图形引擎
- 3D库——基于OpenGL ES 1.0 APIs的实现。库使用硬件3D加速或包含高度优化的3D软件光栅
- FreeType ——位图和矢量字体渲染
- SQLite ——所有应用程序都可以使用的强大而轻量级的关系数据库引擎
C:Android Runtime :主要是Dalvik Virtual Machine用来执行dex
D:Application Framework :应用程序框架,多提供现成API 供Application调用,可以称为中间件
- 视图(View)——丰富的、可扩展的视图集合,可用于构建一个应用程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器
- 内容提供者(Content Providers)——使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据
- 资源管理器(Resource Manager)——提供访问非代码资源,如本地化字符串、图形和布局文件
- 通知管理器(
Notification Manager
)——使所有的应用程序能够在状态栏显示自定义警告 - 活动管理器(
Activity Manager
)——管理应用程序生命周期,提供通用的导航回退功能
E:Application : 我们能看到手机上的app,例如电话,短信等