01_Android应用开发环境_02_Android应用的基本组件

    Android系统中有著名的四大组件:Activity、Service、BroadcastReceiver、ContentProvider。一个商业的Android应用程序,一般由多个基本的组件联合组成。这四大组件,在使用的时候均须要在清单文件AndroidManifest.xml中进行注册,不然不予使用。本小节将对这些组件进行简单的介绍,使读者对Android应用开发的内容有一个大体的认识。架构

活动(Activity)ide

    Activity是Android应用中,最直接与用户接触的组件,它负责加载View组件,使其展示给用户,并保持与用户的交互。全部的Activity组件均须要继承Activity类,这是一个Content的间接子类,包装了一些Activity的基本特性。布局

    View组件是全部UI组件、容器组件的基类,也就是说,它能够是一个布局容器,也能够是一个布局容器内的基本UI组件。View组件通常经过XML布局资源文件定义,同时Android系统也对这些View组件提供了对应的实现类。若是须要经过某个Activity把指定的View组件显示出来,调用Activity的setContentView()方法便可,它具备多个重载方法,能够传递一个XML资源ID或者View对象。this

例如: 操作系统

LinearLayout layout=new LinearLayout(this);
setContentView(layout);
或者:
setContentView(R.layout.main); 

    Activity为Android应用提供了一个用户界面,当一个Activity被开启以后,它具备本身的生命周期。Activity类也对这些生命周期提供了对应的方法,若是须要对Activity各个不一样的生命周期作出响应,能够重写这些生命周期方法实现。对于大多数商业应用而言,整个系统中包含了多个Activity,在应用中逐步导航跳转开启这些Activity以后,会造成Activity的回退栈,当前显示并得到焦点的Activity位于这个回退栈的栈顶。xml

服务(Service)对象

    Service主要用于在后台完成一些无需向用户展现界面的功能实现。一般位于系统后台运行,它通常不须要与用户进行交互,所以Service组件没有用户界面展现给用户。Service主要用于完成一些相似于下载文件、播放音乐等无需用户界面与用户进行交互的功能。继承

    与Activity组件须要继承Activity类类似,Service组件一样须要继承Service类,Service类也是Context的间接子类,其中包装了一些Service的专有特性。一个Service被运行起来以后,它将具备本身独立的生命周期,Service类中对其各个不一样的生命周期提供了对应的方法,开发人员能够经过在Service中重写Service类中这些生命周期方法,来响应Service各个生命周期的功能实现。接口


广播接收器(BroadcastReceiver)生命周期

    BroadcastReceiver一样也是Android系统中的一个重要组件,BroadcastReceiver表明了一个广播接收器,用于接收系统中其它组件发送的广播,并对其进行响应或是拦截广播的继续传播。

    广播是一个系统级的消息,当系统环境发生改变的时候会发送一些广播供对应的程序进行接收响应,例如:接收到一条短信、开机、关机、插上充电器、插上耳机、充电完成等,均会发送一条广播供须要监听此类广播的应用进行响应。除了一些系统事件的广播,开发人员也能够自定义广播内容。可是大部分状况下,开发应用的时候主要用于接受系统广播并对其进行响应,不多须要发送自定义的广播。

    使用BroadcastReceiver组件接收广播很是的简单,只须要实现本身的BroadcastReceiver子类,并重写onReceive()方法,就能完成BroadcastReceiver,而对于这个BroadcastReceiver对什么广播感兴趣,则须要对其进行另行配置。

内容提供者(ContentProvider)

    Android系统做为一个智能操做系统,它须要系统中运行的应用程序都必须是相互独立的,各自运行在本身的Dalvik VM实例中。在正常状况下,Android应用之间是不能进行实时的数据交换,而考虑到有些应用的数据须要对外进行共享,Android系统提供了一个标准的数据接口ContentProvider,经过应用提供的ContentProvider,能够在其它应用中对这个应用的暴露出来的数据进行增删改查。

    为应用程序暴露数据接口很是的简单,只须要继承ContentProvider类,而且实现insert()、delete()、update()、query()等方法,使外部应用可对本应用的数据进行增删改查。

意图(Intent)

    虽然Intent并非Android应用的组件,也无需专门在清单文件中配置,可是它对于Android应用的做用很是的大。除了ContentProvider以外,其它组件的启动,均须要经过Intent进行指定。Intent不只能够明确指定一个Android组件进行启动,还能够提供一个标准的行为,再由Android系统配合意图过滤器来选定启动指定组件来完成任务。而Intent在开启对组件的过程当中,进行各个组件间数据的传递。

小结

    本章简要介绍了Android系统的发展史及其现状,而且介绍了Android系统的架构与Dalvik VM虚拟机,最后还简单介绍了Android开发中的四大组件。经过阅读本章,对Android的历史与现状、系统架构、基本组件有个大体的了解,这对本书接下来的内容理解很是有帮助。

相关文章
相关标签/搜索