最近开始做Android了,看了几天资料,好记性不如烂笔头,写点看过的东西吧。
Android 架构图

谷歌官方图,很清楚的表现了android的基本架构情况,画的相当有水平。
1.Applications
应用程序层,用户直接使用的功能,谷歌提供了基本应用,比如电话、联系人、短信、邮件、浏览器等,还有无数第三方应用...JAVA开发
2.Application Framework
应用框架层,开发应用程序使用的基础组件,相当于供应用程序调用的API,JAVA开发,包括:
- 丰富的界面控件,如列表、按钮、文本框、内嵌浏览器等等。
- Content Providers,数据存储组件,应用程序可以通过Content Providers分享数据给其他应用,也可以访问其他程序的数据,包括系统基本应用提供的数据,如联系人,记事本等数据。
- A Resouce Manager, 资源管理器,帮助应用程序访问图片,布局文件等资源。
- A Notification Manager, 应用程序可以通过Notification Manager在主界面的状态栏上显示一个自定义的提示信息,用户点击提示信息就能进入程序。
- An Activity Manager, 主要负责管理应用程序的生命周期和程序调用栈。
3.Android Runtime
应用程序的运行空间,包括一个实现JAVA语言大多数功能的核心库;
以及一个类似JAVA虚拟机的Dalvik虚拟机,所以应用程序都是运行在虚拟机中运行。Dalvik虚拟机针对移动设备做过优化,每个程序单独运行在一个虚拟机中,提高系统的安全性和稳定性,但是相对牺牲了一部分性能。Dalvik VM底层基于Linux核心的线层管理和内存管理等功能。
4.Libraries
一系列的C/C++库,相当于Android系统在Linux核心系统上的功能扩展,为Application Framework层的许多功能提供支持,通过JNI供JAVA调用。包括:
- System C library - libc, 标准C系统库,针对linux嵌入式设备优化。
- Media Libraries - 基于OpenCore的多媒体库,提供视频、音频、图片的播放记录等功能,支持MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG等
- Surface Manager - 管理显示子系统模块,包括多层程序2D,3D图层混合显示。。。
- LibWebCore - 大名鼎鼎的webkit浏览器内核
- SGL - 底层2D图片引擎。
- 3D libraries - 基于OpenGL ES 1.0 APIs; 包括硬件3D加速(硬件支持的话),或者优化的3D软解析
- FreeType - 字体引擎
- SQLite - 基于SQL的轻量级数据库
5. Linux Kernel
Linux核心,Android的基础,基于2.6版本,基本的操作系统组件,包括内存管理,进程管理,存储管理,网络栈,驱动模型等等
以上差不多就是把What is Android翻译了一遍⋯⋯建议还是看官方文档比较靠谱
http://developer.android.com/guide/basics/what-is-android.html
浙公网安备 33010602011771号