android 技术结构图
1.Linux Kernel android是以Linux为核心的,针对于手机进行了专门的优化。(Linux核心提供了这个操作系统的最基本的功能,大多数都是驱动)
2.Android runtime(安卓运行时环境)分为Core Libraries(核心库)和Dalvik Virtual Machine (Davilk虚拟机)。
核心库提供了java语言API中的大多数功能,同时也包括android的一些核心API。
Davilk虚拟机是有google公司自己设计专门用于android平台的java虚拟机。
3.Libraries(系统库)
系统库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。其主要包含以下几个部分:
Surface Manager:执行多个应用程序时候,负责管理显示与存取操作间的互动,另外也负责2D绘图与3D绘图进行显示合成。
Media Framework:多媒体库,支持多种常用的音频、视频格式录制和回放,编码格式包括MPEG4、MP3、H 264、AAC、ARM。
SQLite:轻量级的关系型数据库引擎
OpenGL|ES:根据OpenGL ES 1.0 API标准实现的3D绘图函数库
FreeType:提供点阵字与向量字的描绘与显示
WebKit:开源的浏览器引擎,支持CSS,JAVASCRIPT,DOM等脚本语言
SGL:底层的2D图形渲染引擎
SSL:在Andorid上通信过程中实现安全认证
Libc:从BSD继承来的标准C系统函数库,专门为基于embedded linux的设备定制
4.Application Framework(应用程序框架:可以大大简化手机应用程序开发的过程)
应用程序框架层是开发者从事Android应用开发的基础,很多核心应用程序也是通过这一层来实现其核心功能,该层简化了组件的重用,开发人员可以直接使用它提供的组件进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。以下是这次层中,各个部分的功能:
Activity Manager(活动管理器):管理各个应用程序生命周期以及通常的导航回退功能。
Window Manager(窗口管理器):管理所有的窗口程序
Content Provider(内容提供器):通过它可以在不同应用程序之间存取或者分享数据
View System(视图系统):构建应用程序的基本组件
(包管理器):Android系统内的程序管理,可以查看Android应用程序以及Activity的相关信息
(电话管理器):管理所有的移动设备功能
Resource Manager(资源管理器):提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件,主题样式,二进制文件等
Location Manager(位置管理器):提供位置服务
Notification Manager(通知管理器):通过它应用程序可以在状态栏中显示自定义的提示信息
XMPP Service(XMPP服务):提供Google Talk服务
5.Application(应用程序)
我们的代码是去调用Application Framework来做Application.
补充:API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
基于组件的应用程序开发
把常见的功能封装成一个个组件,根据需要的功能把相应的组件组合在一起,构成完整的应用程序,这就是基于组件进行应用程序开发的思想。
Android最重要的四种组件:
1)Activity(相当于界面)
作为UI主要负责和用户交互,接受用户操作,把运行结果显示给用户。如果把一个Android程序比作一个网站的话,一个Activity就是一个网页。但手机不宜有太多的Activity。
2)Service(后台服务者)
主要负责完成耗时较长的工作,比如网络连接和长时间的IO操作,没有图形化界面,在后台默默运行。
3)Content Provider
内容提供者。可以看作是一种数据共享方法。它提供一个公开的地址,让其他程序访问我的数据。向外暴露数据的方法。
4)BroadcastReceiver(给应用程序发送,人是听不见的)
广播接收器。作用是监听手机系统的行为。手机运行过程中,信息会向外发送广播,比如手机没电、蓝牙关闭等。程序监听到这些广播可以作出相应的反应。