android应用框架 平台结构 源代码结构 事件处理流程 Framework层收到事件的处理过程 电话处理流程

android应用框架 平台结构

android应用框架 平台结构 源代码结构 事件处理流程 Framework层收到事件的处理过程 电话处理流程

第1层:

Linux操作系统及驱动

C语言实现

第2层:

本地框架和Java运行环境

C和C++实现

第3层:

Java框架(framework)

Java实现

第4层:

Java应用程序

Java实现

--

Linux操作系统及驱动

Android的核心系统服务依赖于Linux 2.6内核, 包括安全性、内存管理、进程管理、网络协议栈和驱动模型

Linux内核也同时作为硬件和软件之间的抽象层

android应用框架 平台结构 源代码结构 事件处理流程 Framework层收到事件的处理过程 电话处理流程

---

Android 程序库

Android包含一些C/C++库,被Android系统中不同组件使用,通过应用框架为开发者服务

系统C库:标准C系统函数库(libc),为基于嵌入式Linux的设备定制的库

多媒体库:支持多种常用的音频、视频格式回放和录制,支持多媒体格式的编/解码格式

Surface Manager:显示系统管理,提供2D和3D图层的无缝融合

LibWebCore:Web浏览器引擎,支持Android浏览器及一个可嵌入式的Web视图

SGL:Skia图形库,底层的2D图形引擎

3D libraries:基于OpenGL ES 1.0 APIs实现的库,可实现软件或硬件的3D加速(如果可用)

FreeType:位图和矢量字体显示

SQLite:数据库引擎

android应用框架 平台结构 源代码结构 事件处理流程 Framework层收到事件的处理过程 电话处理流程

--

Android 运行环境(RunTime)

AndroidJava基本运行环境提供了Java语言核心库内的大部分功能,由Dalvik Java虚拟机和基础的Java类库组成

Dalvik虚拟机

            Dalvik是Android中使用的Java虚拟机,每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机示例。Dalvik被设计成一个可以同时高效地运行多个虚拟机实例的虚拟系统

             Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制

android应用框架 平台结构 源代码结构 事件处理流程 Framework层收到事件的处理过程 电话处理流程

--

Android 应用程序框架(framework)

Ø 为应用程序提供各种API接口

Ø 主要组件

丰富而又可扩展的视图(Views):可构建应用程序,包括列表、网格、文本框、按钮等基本UI元素

内容提供器(Content Providers):使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据库

资源管理器(Resource Manager):提供非代码资源的访问,如本地字符串、图片和布局文件

通知管理器(Notification Manager):使得应用程序在状态栏中显示自定义的提示信息

活动管理器(Activity Manager):用来管理应用的生命周期并提供常用的导航回退功能

android应用框架 平台结构 源代码结构 事件处理流程 Framework层收到事件的处理过程 电话处理流程

--

Android应用程序

Android会附带一些核心的应用程序, 包括一个E-mail客户端、短信程序、日历、地图、浏览器、联系人等等。所有的应用程序都是由Java语言完成的

开发者可以利用Android Framework提供的接口开发自己的应用

android应用框架 平台结构 源代码结构 事件处理流程 Framework层收到事件的处理过程 电话处理流程

--

Android源代码结构

android应用框架 平台结构 源代码结构 事件处理流程 Framework层收到事件的处理过程 电话处理流程

工程名称

工程描述

  bionic

  C运行时支持:libclibmlibdl、动态linker

  bootloader/legacy

  Bootloader参考代码

  build

  Build系统

  dalvik

  Dalvik虚拟机

  development

  高层的开发和调试工具

  frameworks/base

  Android核心的框架库

  frameworks/polices/base

  框架配置策略

  hardware/libhardware

  硬件抽象层库

  hardware/ril

  无线接口层(Radio Interface Layer

  kernel

  Linux内核

  prebuild

  LinuxMac OS编译的二进制支持

  system/core

  最小化可启动的环境

  system/extras

  底层调试和检查工具

--

事件处理流程

事件的定义:

        主要是从驱动层反馈上来的与硬件设备相关的事件。

例如U8220设备相关事件:

Ø  input: synaptics-rmi-touchscreen as/devices/virtual/input/input0     触摸事件

Ø  input: gsensor as/devices/virtual/input/input1                                   传感器

Ø  input: surf_keypad as/devices/virtual/input/input2                             按键

Ø  input: jogball as/devices/virtual/input/input3                                     轨迹球

input:msm-handset as /devices/virtual/input/input4                               耳机

--

事件从底层反馈的过程:

android应用框架 平台结构 源代码结构 事件处理流程 Framework层收到事件的处理过程 电话处理流程

--

Framework层收到事件的处理过程:

android应用框架 平台结构 源代码结构 事件处理流程 Framework层收到事件的处理过程 电话处理流程

--

电话处理流程

Phone模块主要完成对Ril协议的响应和对Ril的主动调用,并对当前Ril的状态作一个实时的显示处理,提供用户一个良好的语音通话用户界面。

android应用框架 平台结构 源代码结构 事件处理流程 Framework层收到事件的处理过程 电话处理流程

--

电话处理流程

       以用户被叫流程为例: 

android应用框架 平台结构 源代码结构 事件处理流程 Framework层收到事件的处理过程 电话处理流程

当进行被叫时,GsmPhone会把新来电信息发送给CallNotifier,CallNotifier然后查询来电铃声,查询完毕后调用Ringer来播放来电铃声,同时启动InCallScreen,显示来电界面。

--