作为Android应用程序开发者,其开发的应用程序和Android系统第4个层次的应用程序是一个层次的内容。例如,Android系统提供了基本的桌面程序,开发者可以根据Android的系统接口,实现另外一个桌面程序,提供给用户安装使用;根据Android系统的接口开发游戏,也是Android应用程序开发的一个重要方向。
3 Android应用程序概述
3.1 Android应用程序的内容
Android应用程序包含了工程文件、代码和各种资源,主要由Java语言编写,每一个应用程序将被编译成Android的一个Java应用程序包(*.apk)。
由于Android系统本身是基于Linux操作系统运行的,因此Android应用程序也运行于Linux环境中,它们具有以下特点:
1)在默认情况下,每一个应用程序运行于它们的Linux进程中;
2)每个进程具有自己的虚拟机(VM),所以每个应用程序运行于独立的环境中;
3)在默认情况下,每一个应用程序具有唯一的Linux用户ID。通过设置权限让应用程序只对用户和应用程序本身可见,也有一些方法可以把它们暴露给其他的应用程序。
3.1.1 应用程序的组成部分
一个Android应用程序是由多个不同的组件组合而成,组件之间通过Intent来实现通信。Android系统的基本四大组件分别是:活动(Activity): 用于表现功能。服务(Service): 后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(Content Provider): 支持在多个应用中存储和读取数据,相当于数据库。
Activity是所有程序的根本,所有程序的流程都运行在Activity 之中,是Android 当中最基本的模块之一。Activity是应用程序的表示层。应用程序中的每个屏幕显示都通过继承和扩展基类 Activity来实现。
Service 不能自己运行,只能后台运行,是一种程序,它可以运行很长时间,但是它却没有用户界面。
BroadcastReceiver 是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver 来让应用对一个外部的事件做出响应。
ContentProvider能将应用程序特定的数据提供给另一个应用程序使用。它实现了一组标准的接口,通过这组接口,其他应用程序能对数据进行读写和存储。
3.1.2 应用程序的生命周期
Android系统中的不同组件具有不同的生命周期。Android根据每个进程中运行的组件以及组件的状态把进程放入一个重要性分级中。
活动是Android中最重要、最基础的组件,用户在界面上看到的一个个可以切屏的屏幕界面就是Android中的活动。活动的生命周期如图3.1所示。
1)运行活动的情景:当一个活动被启动时,活动中的onCreate()、onStart()、onResume()这3个方法被依次调用,活动对应的界面出现在屏幕上。
2)活动被“覆盖”的情景:Android的活动一般都占据一个完整的屏幕,从当前活动启动另外一个活动时,另一个活动将被启动到前台(Foreground),当前活动转入后台(Background),这时活动的onPause()方法将被调用,活动转入后台运行。如果活动变为不可见,还将调用onStop()方法。来~自^751论+文.网www.751com.cn/
3)活动被恢复的情景:当界面上最前面的活动退出后,它所覆盖的活动将被恢复,这时onResume()方法将被调用,活动重新转入前台运行。
4)活动完全退出的情景:当使用回退(Back)按钮退出活动时,onDestroy()方法将被调用,活动关闭。如果系统缺少内存时,也会杀死(Kill)后台的活动,其中优先杀死不可见的活动,可见的活动一般不会被杀死。