Android平台架构

安卓操作系统分为四层 应用程序,应用程序框架,核心类库(包括运行时环境),linux kernel。

linux kernel 

提供android的系统服务,包括进程管理,内存管理,电源管理,网络协议栈等等,是硬件和软件之间的抽象层。

系统运行库

c/c++函数库:通过上层的应用程序框架供开发者调用

运行时环境:android库(java库的大部分功能),Dalvik虚拟机(不同于java虚拟机,它是基于寄存器的所有运行速度快)

应用程序框架

提供了用来创建应用程序的类,通过API调用为应用层提供系统服务。

Activity Manager(活动管理器)——管理系统中的Activity,比如Android生命周期,activity task等

Window Manager(窗口管理器)——管理所有窗口程序

Content Provider(内容提供者)——用于不同程序之前的数据分享等

View System(视图系统)——构建应用程序的基本组件

Notification Manager(通告管理器)——在状态栏显示自定义的提示信息

Package Manager(包管理器)——管理Android系统内的程序

Telephony Manager(电话管理器)——管理访问移动设备上的电话服务

Resource Manager(资源管理器)——管理应用程序中的使用本地资源,如图片,布局文件,颜色文件等

Location Manager(位置管理器)——提供位置服务

XMMP Service(XMPP服务)——提供Google Talk服务

应用程序层 包括系统应用程序和第三方应用程序

四大基本组件

学习资料http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html

Activity 

应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。

Service 

一个Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。
例子:正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个activity,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的activity,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个activity 会使用Context.startService()来启动一个service,从而可以在后台保持音乐的播放。同时,系统也将保持这个service 一直执行,直到这个service 运行结束。另外,我们还可以通过使用Context.bindService()方法,连接到一个service 上(如果这个service 还没有运行将启动它)。当连接到一个service 之后,我们还可以service 提供的接口与它进行通讯。拿媒体播放器这个例子来说,我们还可以进行暂停、重播等操作。

BroadcastReceive广播接收器

你的应用可以使用它对外部事件进行过滤只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice 来响应它们收到的信息,或者用NotificationManager 来通知用户。通知可以用很多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。

content provider

android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。这些数据可以存储在文件系统中、在一个SQLite数据库、或以任何其他合理的方式,其他应用可以通过ContentResolver类(见ContentProviderAccessApp例子)从该内容提供者中获取或存入数据.(相当于在应用外包了一层壳),只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处:统一数据访问方式。

更多相关文章

  1. 我的Android 4 学习系列之创建应用程序和Activity:Manifest、Appl
  2. Android 应用程序中使用 Internet 数据(XML、JSON 和 protocol bu
  3. Android 任务管理器分析小结
  4. PHP开发Android应用程序
  5. Android应用程序核心-应用程序的基本组件
  6. Android 应用程序中-设置-蓝牙,若隐藏蓝牙功能
  7. Android应用程序四大组件
  8. Android初学习 - android:sharedUserId="android.uid.system" 应

随机推荐

  1. android 中使用sqLite例子
  2. Android的UI两大基石
  3. Android可滑动的Tab页
  4. 2011.06.23——— android 事件处理机制
  5. android中 sqlite sql操作
  6. Android(安卓)用AsyncTask下载网络图片并
  7. Android中的BatteryService及相关组件
  8. Android
  9. Android的API版本和名称对应关系
  10. android kitkat(4.4以上)各个版本的特性解