1.1 Android简介
Android是Linux内核的操作系统,作为一种开放的操作便捷的免费操作系统被广大开发者和使用者所信赖。从系统架构来看,Android可以分为4个层次:应用程序层、应用程序框架层、系统运行库层和Linux核心层,每一层体系结构会在后面章节具体讲解。
Android有四大开发组件,分别为活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供者(Content Provider)。
1.活动
活动(Activity)可以简单理解为“窗体”,是需要重点理解和掌握的一个概念,也是Android中使用最为频繁的一个组件,是最基本的模块之一,可以在Activity中添加各种其他控件,如TextView、Button等。用户的手机App会有很多使用Activity的地方,比如App中不同页面的切换、不同选项卡之间的跳转等,都是从一个Activity跳转到另外一个Activity的具体应用场景。当多个Activity共存时,Activity以返回栈的形式进行“后进先出”,也就是说当单击“返回”键时,后打开的Activity先被关闭。
Activity也可以根据不同需要采用不同的启动模式,它包括以下4种启动模式。
1)standard模式:在这种模式下,Activity每次启动时,不管返回栈中有没有Activity实例,都会创建新的Activity实例。这种模式同一个Activity可以被多次实例化。这也是默认的一种模式。
2)singleTop模式:启动该模式下的Activity时,如果该Activity已经在返回栈中,并且在栈顶位置,则无须创建该Activity的实例,直接复用该Activity即可;如果该Activity不在栈顶或者不在返回栈,则需要创建该Activity实例,并且压入栈顶。
3)singleTask模式:该模式下的Activity,如果返回栈中有该Activity实例,无论该Activity是否在栈顶,都复用此Activity实例,并且将该Activity实例之上的所有Activity实例都移出,否则创建新的该Activity实例。
4)singleInstance模式:也叫单例模式。该模式下,Activity会在单独一个任务中,并且这个任务的返回栈中只有唯一的此Activity实例,其他基本和singleTask模式相同。
2.服务
服务(Service)也是Android中重要的组件之一,但它不像Activity作为“窗体”在UI页面中可见,Service是不可见的,是运行在后台的,并且可以与其他组件进行交互,例如运行在某个App后台的音乐播放器在进行播放音乐的服务,用户看不到这个服务,但这个服务却在后台一直运行,具体代码实现在第2章中有详细介绍。
3.广播接收器
广播接收器(BroadcastReceiver)是一种广泛应用在应用程序之间的信息传播方式。BroadcastReceiver是对发送出来的广播进行过滤和响应的组件,可以利用BroadcastReceiver来对事件进行响应,BroadcastReceiver也像Service一样没有UI,用户是看不到的。BroadcastReceiver可以用来通知用户某些事件,通常配合NotificationManager来通知将要发生的事件,具体代码实现在第2章中有详细介绍。
4.内容提供者
内容提供者(Content Provider)是Android提供的可用于存储、访问和操作外部数据的一个组件。Android系统通常是对数据库、文件等内部存储数据进行隐私保护,外部无法访问这些数据,然而Android提供了一个对外可访问的入口,外部可以通过这个入口访问Android存储数据,这个入口就是通过Content Provider来实现的,通常可以通过一个URI(统一资源标识符)让外部访问存储的Content Provider数据,具体代码实现在第2章中有详细介绍。