外加一个重要组件 intent的具体解释。(主要来自于网络)android
一、Activity数据库
一个Activity一般展示为一个可视化的用户界面。好比,一个activity可能展示为一个用户可以选择的菜单项列表或者展示一些图片以及图 片的标题。一个消息服务应用程序可能包括一个显示联系人列表的activity,一个编写信息的activity,以及其余一些查看信息和改动应用程序设 置的activity。尽管这些activity一块儿工做,共同组成了一个应用程序,但每一个activity都是相对独立的。每一个activity都 是Activity(android.app.Activity)的子类。网络
一个应用程序可能仅仅包括一个activity,或者像上面提到的消息服务程序同样有多个activity。一个应用程序包括几个activity以 及各个activity完毕什么样的功能全然取决于应用程序以及它的设计。一般每个应用程序都包括一个在应用程序启动后第一个展示给用户的 activity。在当前展示给用户的activity中启动一个新的activity,可以实现从一个activity转换到另一个 activity。数据结构
每个activity都会有一个用于绘制用户界面的窗体。一般这样一个窗体会填充整个屏幕,固然这个窗体也可以比屏幕小并漂浮在其它窗体之上。 activity还可以使用一些额外的窗体,好比一个要求用户响应的弹出式对话框,或者是当用户在屏幕上选择一个条目后向用户展示一些重要信息的窗体。app
展现activity窗体的可视化内容区域是一些具备层次关系(很是像数据结构中的树)的视图,而视图则是由类View的子类表示的。每个视图控制窗 口中的一个矩形区域。父视图包括一些子视图并管理子视图的布局。位于叶节点的视图直接控制并响应用户的动做。所以视图就是activity与用户交互的接 口。好比,一个显示图片的视图,当用户单击的时候它可能会启动一个动做。Android有不少开发者可以直接使用的视图,包括button,文本域,滚动栏,菜 单,复选框等。异步
经过调用Activity.setContentView()方法来设置展示activity的窗体的视图。内容视图则是视图层次结构中的根节点视图。ide
二、Service布局
Service是Android的四大组件之中的一个,即Android系统的服务(不是一个线程,是主程序的一部分),与Activity不一样,它是不能与用户交互的,不能本身启动的,需要调用Context.startService()来启动,执行后台,假设咱们退出应用时,Service进程并无结束,它仍然在后台行。
spa
service没实用户界面,但它会在后台一直执行。好比,service可能在用户处理其余事情的时候播放背景音乐,或者从网络上获取数据,或者执行一些运算,并把运算结构提供给activity展现给用户。每个service都扩展自类Serivce。线程
多媒体播放器播放音乐是应用service的一个很好的样例。多媒体播放器程序可能含有一个或多个activity,用户经过这些 activity选择并播放音乐。然而,音乐回放并不需要一个activity来处理,因为用户可能会但愿音乐一直播放下去,即便退出了播放器去执行其余 程序。为了让音乐一直播放,多媒体播放器activity可能会启动一个service在后台播放音乐。Android系统会使音乐回放service一 直执行,即便在启动这个service的activity退出以后。
应用程序可以链接到一个正在执行中的service。当链接到一个service后,可以使用这个service向外暴露的接口与这个service进行通讯。对于上面提到的播放音乐的service,这个接口可能赞成用户暂停,中止或又一次播放音乐。
与activity以及其余组件同样,service相同执行在应用程序进程的主线程中。因此它们不能堵塞其余组件或用户界面,一般需要为这些service派生一个线程执行耗时的任务。
三、Broadcase receiver
一、BroadcastReceiver 用于异步接收广播Intent。主要有两大类,用于接收广播的:
正常广播 Normal broadcasts(用 Context.sendBroadcast()发送)是全然异步的。它们都执行在一个没有定义的顺序,通常是在同一时间。这样会更有效,但意味着receiver不能包括所要使用的结果或停止的API。
有序广播 Ordered broadcasts(用 Context.sendOrderedBroadcast()发送)每次被发送到一个receiver。所谓有序,就是每个receiver执行后可以传播到下一个receiver,也可以全然停止传播--不传播给其它receiver。 而receiver执行的顺序可以经过matched intent-filter 里面的android:priority来控制,当priority优先级一样的时候,Receiver以随意的顺序执行。
二、广播接收器是一个专一于接收广播通知信息,并作出相应处理的组件。很是多广播是源自于系统代码的──比方,通知时区改变、电池电量低、拍摄了一张照片或者用户改变了语言选项。应用程序也可以进行广播──比方说,通知其余应用程序一些数据下载完毕并处于可用状态。
三、应用程序可以拥有随意数量的广播接收器以对所有它感兴趣的通知信息予以响应。所有的接收器均继承自BroadcastReceiver基类。
四、广播接收器没实用户界面。然而,它们可以启动一个activity来响应它们收到的信息,或者用NotificationManager来通知用户。通知可以用很是多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等等。通常来讲是在状态栏上放一个持久的图标,用户可以打开它并获取消息。
四、Content provider
ContentProvider(内容提供者)是Android中的四大组件之中的一个。主要用于对外共享数据,也就是经过ContentProvider把应用中的数据共享给其它应用訪问,其它应用可以经过ContentProvider对指定应用中的数据进行操做。ContentProvider分为系统的和本身定义的,系统的也就是好比联系人,图片等数据。
五、intent