隐藏在每个应用后面的是一系列的服务和系统, 其中包括;丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(Lists),网格(Grids),文本框(Text boxes),按钮(Buttons), 甚至可嵌入的web浏览器。
内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )。
通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。
活动管理器(Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。
(3) 系统运行库
Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。以下是一些核心库:
A. 系统C库——一个从BSD继承来的标准C系统函数库Libc,它是专门为基于Embedded linux的设备定制的。
B. 媒体库——基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4、 H.264、MP3、AAC、AMR、G、PNG等。
C. Surface Manager——对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。
D.LibWebCore ——一个最新的Web浏览器引擎用,支持Android浏览器和一个可嵌入的Web视图。
(4) 安卓运行时库
Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个android应用程序是Dalvik虚拟机中的实例,运行在自己的进程中。Dalvik虚拟机被设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层管理。
(5) Linux内核
Android基于Linux version 2.6内核来提供系统的核心服务,例如:安全机制,内存管理,进程管理,网络堆栈和驱动模块。该内核还扮演着一个虚拟的中间层,该层介于硬件和其余的软件堆栈[2]。
1.2.4 Android的四大组件
Android开发四大组件分别是:活动(Activity): 用于表现功能。服务(Service): 后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(Content Provider): 支持在多个应用中存储和读取数据,相当于数据库。
Android 中,Activity是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。在Android的程序当中,Activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Activity就相当于一个网页。在Activity 当中可以添加一些Button、Check box 等控件。可以看到Activity 概念和网页的概念相当类似。
一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间 可以进行相互跳转,例如,按下一个Button按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity 之间的跳转有可能返回值,例如,从Activity A 跳转到Activity B,那么当Activity B 运行结束的时候,有可能会给Activity A 一个返回值。这样做在很多时候是相当方便的。
当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。可以选择性的移除一些没有必要保留的屏幕,因为Android会把每个应用的开始到当前的每个屏幕保存在堆栈中 Android音乐播放器设计(6):http://www.youerw.com/jisuanji/lunwen_13104.html