`
android_madness
  • 浏览: 39289 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

学Android开发不可不知的Android应用程序四大组件(转)

阅读更多
Android的一个核心特性就是一个应用程序可作为其他程序中的元素(那些允许这样的程序提供)。例如,如果你的程序需要用滚动条显示一些图片,另一个程序已经开发出了合适的功能,并且可供其他程序使用,你就可以直接调用那个程序的功能,而不是自己再开发一个。你的程序不需要包含其他程序的代码或者链接到它。而是,当有需要的时候,简单的启动那个程序的一部分功能。
    为了能够实现这样的功能,系统必须能够当在需要应用程序中任何一部分的时候启动它的进程,并且实例化那部分的Java对象。为此,不像大多数其他系统中的程序,Android程序不是只有单一的进入点(例如没有main( )方法)。而是,他们拥有系统实例化和运行必须的组件。有四类核心组件:

Activity
Activity为用户提供了一个可视的用户界面,例如,一个activity展示了一个用户可以选择的菜单列表或显示一些带着标题的照片。一个短信程序可能有一个activity用来显示可以发送信息的联系人,第二个activity用来向选中的联系人写消息,其他的activity用来查看以前的消息,或者更改设置。虽然它们通过聚合性很强的用户界面工作者一起,但是每个activity都独立于其他的。每一个都是 Activity 的子类。
一个应用程序可能只由一个activity组成,或者像刚才提到的短消息程序,它由多个组成。什么是activity,需要多少个,当然取决于应用程序和它的设计。典型的,当应用程序启动的时候,activity中的一个要首先的显示给用户。从一个activity移动到另一个,是用过当前的activity启动下一个来完成的。
每个activity都有一个默认的窗口。一般的情况是,这个窗口填满屏幕,但是他也可以小于屏幕和浮动到其他窗口的上面。activity也可以用作附加的窗口——例如,一个用户调用的弹出式对话框,或者当用户选择屏幕上一个特殊的选项时一个窗口用来显示一些重要的信息。
窗口中的可视内容被一系列层次的视图(view)提供——派生自View类的对象。每个视图都控制了窗口中的 一个矩形区域。父视图包含和组织子视图的布局。叶试图(位于层次中的最底部)绘制在它控制的区域,直接响应这块空间的用户动作。这样,视图就是activity与用户交互的地方。例如,当用户触动一个显示小图片的视图时,会触发一些动作。Android提供了很多现成的视图供你使用——包括按钮,文本框,滚动条,菜单项,复选框还有更多。
    整个视图层次通过Activity.setContentView() 方法放到activity的窗口上。 content view是视图层次上的根节点。(更多视图层次的信息请看这个文档 User Interface )。


Service
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
broadcase receiver不执行任何任务,仅仅是接受并响应广播通知的一类组件。大部分广播通知是由系统产生的,例如改变时区,电池电量低,用户选择了一幅图片或者用户改变了语言首选项。应用程序同样也可以发送广播通知,例如通知其他应用程序某些数据已经被下载到设备上可以使用。
一个应用程序可以包含任意数量的boradcase reveiver来响应它认为很重要的通知。所有的broadcast receiver都扩展自类BroadcastReceiver。
broadcast receiver不包含任何用户界面。然而它们可以启动一个activity以响应接受到的信息,或者通过NotificationManager通知用户。可以通过多种方式使用户知道有新的通知产生:闪动背景灯、震动设备、发出声音等等。通常程序会在状态栏上放置一个持久的图标,用户可以打开这个图标并读取通知信息。


Content provider
应用程序可以通过content provider访问其它应用程序的一些私有数据,这是Android提供的一种标准的共享数据的机制。共享的数据可以是存储在文件系统中、SQLite数据库中或其它的一些媒体中。content provider扩展自ContentProvider类,通过实现此类的一组标准的接口可以使其它应用程序存取由它控制的数据。然而应用程序并不会直接调用ContentProvider中的方法,而是通过类ContentResolver。ContentResolver能够与任何一个ContentProvider通信,它与ContentProvider合作管理进程间的通信。
任何时候当Android系统收到一个需要某个组件进行处理的请求的时候,Android会确保处理此请求的组件的宿主进程是否已经在运行,如果没有,则立即启动这个进程,当请求的组件的宿主进程已经在运行,它会继续查看请求的组件是否可以使用,如果不能立即使用,它会创建一个请求的组件的实例来响应请求。
分享到:
评论

相关推荐

    Android开发权威指南 第二版

    , 《Android开发权威指南(第二版)》全面介绍了Android应用开发的各种技术,主要内容包括Android的四大应用程序组件(Activity、Service、Content Provider和Broadcast Receiver)、布局、菜单、控件、资源和本地化、...

    Android四大组件知识点总结

    Intent是信使,负责完成Android四大组件之间的信息传递,同类、不同类的组件无法直接传递对象,一旦需要沟通只能通过Intent(不建议通过静态变量或静态方法传递数据,容易造成数据异常、内存泄露等问题)。...

    Android开发权威指南

    , 《Android开发权威指南(第二版)》全面介绍了Android应用开发的各种技术,主要内容包括Android的四大应用程序组件(Activity、Service、Content Provider和Broadcast Receiver)、布局、菜单、控件、资源和本地化、...

    Android开发艺术探索.任玉刚(带详细书签).pdf

    本书是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。本书从三个方面来组织内容。第一,介绍Android开发者不容易掌握的一些知识点;第二,结合Android源代码和应用层...

    android开发艺术探索高清完整版PDF

    《Android开发艺术探索》是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。《Android开发艺术探索》从三个方面来组织内容。第一,介绍Android开发者不容易掌握的一些...

    基于Android Studio的校园聊天app

    我们认为此举必将推进更好、更快的创新,为移动用户提供不可预知的应用和服务。 Android有四大基本组件:Activity、Service、Broadcast Receivet、Content Provider。其中Activity是四大组件中最基本的一个,但基础...

    Android开发艺术探索

    《Android开发艺术探索》是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。《Android开发艺术探索》从三个方面来组织内容。第一,介绍Android开发者不容易掌握的一些...

    疯狂Android讲义(第2版)完整清晰版 part2

    《疯狂Android讲义(第2版)》全面地介绍了Android应用开发的相关知识,《疯狂Android讲义(第2版)》内容覆盖了Android用户界面编程、Android四大组件、Android资源访问、图形/图像处理、事件处理机制、Android输入...

    android四大组件的Activity

    Activity的跳转,使用于初学者,很使用!

    程序猿笔记Android源码

    学习期间写的一个项目,很长时间没有更新了,这里共享给大家!让大牛们见笑了! 本项目涉及四大组件,线程、进程...本项目仅供学习参考,不可作为商业用途,违权必究。 新版本更新后会继续开放给大家,详情关注播客。

    2024届《物联网移动APP开发》复习材料

    1、物联网的系统架构可划分为三个层次:感知层,网络层和应用层。 2、物联网云平台有三大核心:即云后台、智能硬件,移动APP。...5 android四大组件都要在AndroidManifest.xml(或android清单文件)文件中配置;

    疯狂Android讲义(第2版) part1

    《疯狂Android讲义(第2版)》全面地介绍了Android应用开发的相关知识,《疯狂Android讲义(第2版)》内容覆盖了Android用户界面编程、Android四大组件、Android资源访问、图形/图像处理、事件处理机制、Android输入...

    Android快速开发框架xUtils-2.6.14

    一个Android基于快速开发的一个框架 xUtils 它是在aFinal基础上进行重构和扩展的框架 相比aFinal有很大的改善 同时 如果如果你的应用是基于网络的 那么只要处理得当 它会让你彻底的摆脱各种工具类和重复代码的困扰 ...

    疯狂安卓讲义第2版--par1

    《疯狂Android讲义(第2版)》全面地介绍了Android应用开发的相关知识,《疯狂Android讲义(第2版)》内容覆盖了Android用户界面编程、Android四大组件、Android资源访问、图形/图像处理、事件处理机制、Android输入...

    疯狂安卓讲义第2版--par3共3部分

    《疯狂Android讲义(第2版)》全面地介绍了Android应用开发的相关知识,《疯狂Android讲义(第2版)》内容覆盖了Android用户界面编程、Android四大组件、Android资源访问、图形/图像处理、事件处理机制、Android输入...

    疯狂安卓讲义第2版--par2

    《疯狂Android讲义(第2版)》全面地介绍了Android应用开发的相关知识,《疯狂Android讲义(第2版)》内容覆盖了Android用户界面编程、Android四大组件、Android资源访问、图形/图像处理、事件处理机制、Android输入...

    安卓开发新闻客户端.doc

    安卓课程设计随着着信息技术的高速成长,尤其是移动通讯技术...该项目函盖Android开发领域的四大组件、Material Design设计等技术。 头条新闻系统采用Material Design设计风格,用户界面美观、用户页面友好,操作方便。

    Anroid四大组件service之本地服务的示例代码

    服务是Android四大组件之一,与Activity一样,代表可执行程序。但Service不像Activity有可操作的用户界面,它是一直在后台运行。用通俗易懂点的话来说: 如果某个应用要在运行时向用户呈现可操作的信息就应该选择...

    android实习报告(1).doc

    实习内容: Android主要有四大组件,分别为:Activity 活动、Service 服务、Broadcast receivers 广播接受者、Content Provider 内容提供者。还有上激活组件Intent。 1.Activity Activity就是一个用户可以直接接触...

    安卓技术之透解

    本书深入阐述了Android应用开发的Activity、Service、BroadcastReceiver与ContentProvider四大组件,并详细介绍了Android全部图形界面组件的功能和用法,Android各种资源的管理与用法,Android图形、图像处理,事件...

Global site tag (gtag.js) - Google Analytics