首页 理论教育 Android程序框架简介

Android程序框架简介

时间:2023-06-30 理论教育 版权反馈
【摘要】:Android程序框架的基本设计理念是,一个程序可以调用另外一个程序的程序片段。Android定义了4种类型的程序片段,每种类型都能独立运行,或者说都是一个main函数,它们分别为Activity、Service、Broadcast Receiver以及Content Provider。不同程序共享数据的唯一方法就是使用Content Provider。图2-15 Activity的启动和终止过程每个Activity包含一个Window,一个Activity有且只有一个Window。Android程序可以从任意一个Component开始启动,但大多数应用程序都是从一个Activ-ity开始启动。

Android程序框架简介

Android程序框架的基本设计理念是,一个程序(Application)可以调用另外一个程序的程序片段(Component)。举个例子,在Windows操作系统中,资源管理器可以浏览文件,当浏览到图片文件时,双击该图片文件,便启动图片浏览软件。Android的程序理念便是如此,所不同的是,在Windows中,打开图片文件会启动图片浏览软件的全部功能,虽然实际上只需要查看图片;Android中是把一个Application的功能分为各种不同的程序片段,每一个程序片段都能单独启动。

Android定义了4种类型的程序片段,每种类型都能独立运行,或者说都是一个main函数,它们分别为Activity、Service、Broadcast Receiver以及Content Provider。

1)Activity:是一个拥有图形界面的最小执行单元,用户可以与界面进行交互,比如单击一个按钮,显示一段文字,显示一幅图片等。

2)Service:是一个没有图形用户界面的最小执行单元,一般用于在后台执行一些任务,比如播放音乐,从网络上下载数据等。

978-7-111-43089-6-Chapter02-14.jpg

图2-14 Android Application组成

3)Broadcast Receiver:Android系统提供一个sendBroadcast()方法,Application Framework内部调用该方法发送广播,比如有新短信、有来电、电池电量低、区域更改、系统时间更改等系统广播,Receiver是能够响应这些系统消息的独立执行单元。当然,应用程序也可以调用send Broadcast()方法发送广播,从而启动相应的Receiver对象。

4)Content Provider:在Android系统中,每一个Application都能使用不同的Linux User ID运行,因此不同的Application所创建的文件,彼此之间是不能共享的,就像在Windows系统中,不同的用户彼此之间不能访问My Documents下的私有文件。不同程序共享数据的唯一方法就是使用Content Provider。应用程序内部定义一个Provider服务,其他应用程序可以访问这个Provider,从而读/写相关的文件或者数据。(www.xing528.com)

Application可以包含任意多个Component,当然也可以不包含任何Component,一个典型的Application的组成如图2-14所示。

978-7-111-43089-6-Chapter02-15.jpg

图2-15 Activity的启动和终止过程

每个Activity包含一个Window,一个Activity有且只有一个Window。每个Window里面有且只有一个ViewGroup,每个ViewGroup内部可以嵌套多个View或者ViewGroup,一个文字显示框就是一个View,一个按钮也是一个View。Window中也可以不包含任何ViewGroup。

Window和View类管理器是GUI的核心,GUI内部的消息流程是这样的:当系统检测到用户消息后(包括按键消息和触摸屏消息),系统会把这个消息派发给当前的Activity(其他Component不会受到任何用户消息),Activity再把这个消息发给Window;Window管理着内部ViewGroup,拥有ViewGroup的界面位置信息,因此知道应该把用户消息发送给哪个View或者ViewGroup,对应的View或者ViewGroup会响应并处理不同的用户消息。

Android程序可以从任意一个Component开始启动,但大多数应用程序都是从一个Activ-ity开始启动。Activity的启动和终止过程如图2-15所示。

Activity启动的方式有多种,可以调用系统API startActivity(intent),intent描述了被启动Activity的一些信息。一个Activity启动后,首先会调用内部的onCreat()方法,然后调用onStart()方法。在该Activity运行的过程中,如果用户启动了另外一个Activity,旧Ac-tivity就会执行onPause(),再执行onStop()。Activity的启动是异步的,当调用startActivi-ty(intent)后,系统不是立即执行新的Activity,而是由Activity Manager进行调度,在star-tActivity()函数返回后,先中止正在运行的Activity,然后再启动新的Activity。至于其他的程序片段,都有其各自的启动和终止方法及过程。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈