1. Linux 内核层
    Android 系统是基于 Linux 2.6 内核的,这一层为 Android 设备的各种硬件提供了底
    层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi 驱动、电源管理等。

  2. 系统运行库层
    这一层通过一些 C/C++库来为 Android 系统提供了主要的特性支持。如 SQLite 库提
    供了数据库的支持,OpenGL|ES 库提供了 3D 绘图的支持,Webkit 库提供了浏览器内核
    的支持等。
    同样在这一层还有 Android 运行时库,它主要提供了一些核心库,能够允许开发者
    使用 Java 语言来编写 Android 应用。另外 Android 运行时库中还包含了 Dalvik 虚拟机,
    它使得每一个 Android 应用都能运行在独立的进程当中,并且拥有一个自己的 Dalvik 虚
    拟机实例。相较于 Java 虚拟机,Dalvik 是专门为移动设备定制的,它针对手机内存、
    CPU 性能有限等情况做了优化处理。

  3. 应用框架层
    这一层主要提供了构建应用程序时可能用到的各种 API,Android 自带的一些核心
    应用就是使用这些API完成的,开发者也可以通过使用这些API来构建自己的应用程序。

  4. 应用层
    所有安装在手机上的应用程序都是属于这一层的,比如系统自带的联系人、短信等
    程序,或者是你从 Google Play 上下载的小游戏,当然还包括你自己开发的程序。

  5. 四大组件
    Android系统四大组件分别是活动(Activity)、服务(Service)、广播接收器(Broadcast
    Receiver)和内容提供器(Content Provider)。其中活动是所有 Android 应用程序的门面,
    凡是在应用中你看得到的东西,都是放在活动中的。而服务就比较低调了,你无法看到
    它,但它会一直在后台默默地运行,即使用户退出了应用,服务仍然是可以继续运行的。
    广播接收器可以允许你的应用接收来自各处的广播消息,比如电话、短信等,当然你的
    应用同样也可以向外发出广播消息。内容提供器则为应用程序之间共享数据提供了可
    能,比如你想要读取系统电话簿中的联系人,就需要通过内容提供器来实现。

  6. 丰富的系统控件
    Android 系统为开发者提供了丰富的系统控件,使得我们可以很轻松地编写出漂亮
    的界面。当然如果你品味比较高,不满足于系统自带的控件效果,也完全可以定制属于
    自己的控件。

  7. SQLite 数据库
    Android 系统还自带了这种轻量级、运算速度极快的嵌入式关系型数据库。它不仅支持标准的 SQL 语法,还可以通过 Android 封装好的 API 进行操作,让存储和读取数据
    变得非常方便。

  8. 地理位置定位
    移动设备和 PC 相比起来,地理位置定位功能应该可以算是很大的一个亮点。现在
    的 Android 手机都内置有 GPS,走到哪儿都可以定位到自己的位置,发挥你的想象就可
    以做出创意十足的应用,如果再结合上功能强大的地图功能,LBS 这一领域潜力无限。

  9. 强大的多媒体
    Android 系统还提供了丰富的多媒体服务,如音乐、视频、录音、拍照、闹铃等等,
    这一切你都可以在程序中通过代码进行控制,让你的应用变得更加丰富多彩。

  10. 传感器
    Android 手机中都会内置多种传感器,如加速度传感器、方向传感器等,这也算是
    移动设备的一大特点。通过灵活地使用这些传感器,你可以做出很多在 PC 上根本无法
    实现的应用。