在一个Android 应用中有如下的四种组件:
* Activity 活动组件
* Intent Receiver 接受处理组件
* Service 服务组件
* Content Provider 内容提供组件
一个Android 应用并不需要同时具有这四个组件,应用可以组合这些组件。
在应用中一旦决定使用了哪些组件,就需要在AndroidManifest.xml文件中列举出来。
Activity
Activities是最普遍的组件,在应用中通常用于显示一个屏幕(页面)的内容,仅仅一个屏幕(页面)的内容。开发人员需要从Activity基类继承下来,管理UI显示和UI的反馈事件。大多数应用程序都会有多个屏幕(页面)的内容,如一个文本消息的应用程序,第一个页面要显示联系人列表,第二个页面要写东西给选定的联系人,其他页面显示旧的文本内容或者其他等等。每一个页面都被当做一个Activity(活动组件),移动到其他页面意味着开始了一个新的Activity(活动组件)。在某些场景下,一个Activity可以返回值给前一个Activity,如一个页面选择了一张图片,可以返回这张图片给调用者(Activit)。
打开新的页面时,前一个页面将会暂停,放置到一个历史堆栈中,用户可以使用后退键浏览前面的页面,页面也可以从堆栈中删除。Android会为每一个从主页面home screen(idle界面?)启动的应用维护一个历史堆栈列表。
Intent and Intent Filters
Android使用一个叫Intent的类从一个页面移动到另外一个页面。一个Intent描述了应用将要做的事情,就是一种动作行为。最重要的有两点:动作的类型和动作所捎带的参数(数据),典型的动作类型为MAIN(activity的正门),VIEW, PICK, EDIT等等。参数数据以URI形式来表示。例如,为了查看一个人的联系信息,需要创建一个Intent,动作类型为VIEW,人名为参数数据(需要格式化为URI)。
一个Activity为了表明能够处理某些Intent,Android设计了一个相关的类IntentFilter,Activity在 IntentFilter中决定它能够处理的Intent动作类型,IntentFilter需要在AndroidManifest.xml文件中进行声明。
从一个页面到另外一个页面跳转的依据在于发出的Intent,为了向前浏览,Activity调用startActivity(myIntent). Android系统在所有安装的应用程序中查找intent filters,找出最能够匹配myIntent的Activity。新的activity将被启动,intent被传入。有如下两个关键点:
* Activities 能够重新被使用
* Activities 在任何时候都可以被替换,只要一个Activity设置了相同的IntentFilter
Intent Receiver
在应用程序中,针对外部事件需要执行一些动作来反馈,可以使用IntentReceiver类。例如:来了一个电话,或者数据通道可用,或者晚上到了。 Intent Receiver没有UI的显示,尽管可以通过NotificationManager 通知用户某些有趣的事情发生了。Intent Receivers也需要在AndroidManifest.xml中进行声明,当然也可以在程序中调用 Context.registerReceiver()接口动态声明。同时在应用程序没有跑起来的时候也能够调用Intent Receivers,当一个Intent Receivers被触发时,Android系统将会启动这个应用程序。应用程序也能够通过Context.broadcastIntent()广播他们的Intent。
Service
一个Service是没有UI,一直运行在后台的代码组件。一个好的例子:播放器从一个播放列表中播放歌曲。在一个播放器应用中,大概会有一个或多个 Activity组件允许用户选择歌曲和播放它们,歌曲播放代码不应该放在Activity组件中,因为我们希望一直能够听歌,甚至切换到了其他页面。所以,播放器页面应该启动一个服务组件(Context.startService())来播放歌曲。Android系统将会保持service运行直到它结束(可以参考“Android 应用的生命周期”一文)。可以使用Context.bindService()接口连接上一个服务(如果这时候服务没有启动,连接会导致服务启动),连接上之后,就可以和服务进行通讯。像播放器的例子,可以允许暂停,重绕等等。
Content Provider
应用程序可以在文件中,数据库或者其他设备存储他们的数据。Content Provider用于将各个应用程序的数据进行共享,Content Provider是一个类,执行一套标准的方法,让其他的应用程序存储和获取Content Provider所处理的数据。
分享到:
相关推荐
### Android的应用程序结构分析:HelloActivity #### 一、引言 在Android开发领域,理解一个应用程序的基本结构至关重要。本文将以“HelloActivity”为例,详细剖析Android应用程序的组成及其内部结构,帮助读者...
### Android应用程序开发知识点详解 #### 一、Android概述 Android是一种基于Linux内核的开源移动设备操作系统,由Google公司和开放手机联盟领导及开发。它主要用于触摸操作的手持设备上,如智能手机和平板电脑等...
《Android应用程序开发(第三版)》是由王向辉、张国印、沈洁三位专家编著的教材,这本书深入浅出地介绍了Android平台上的应用开发技术。课件源程序是学习此书的重要辅助资料,提供了丰富的实例和练习,帮助读者更好...
这个压缩包包含了88个Android应用程序的源代码样本,这些样本覆盖了各种功能和应用场景,对于Android开发者来说,它们是宝贵的参考资料和学习工具。 1. **手势识别**(GestureRecogniseSample): 手势识别是...
【Android应用程序开发】是IT领域中的一个重要分支,主要关注如何在Android操作系统上构建和设计交互式的移动应用。Android系统基于Linux内核,由Google主导并开放源码,为开发者提供了丰富的API和工具来创建功能...
总结来说,《Android应用程序:宅男志全集》展示了Android应用开发的多方面知识,包括开发工具、版本控制、APK结构、应用分发、功能设计、隐私保护、用户体验和用户反馈等。对于用户而言,理解这些概念有助于更安全...
每个Android应用程序都遵循一定的结构,主要包括: - **src/main/java**:存放应用程序的Java源代码。 - **src/main/res**:存放应用程序的资源文件,如布局文件、图片、字符串资源等。 - **AndroidManifest.xml**...
在Android应用程序开发领域,这本书的源码提供了丰富的学习材料,涵盖了多个关键知识点。以下是各章节内容的详细解析: 第3章《第一个Android程序》:这一章通常会介绍Android开发环境的搭建,包括安装Android ...
2. **Android应用程序基础**:讲解了Android应用的基本组成,如Activity、Service、Broadcast Receiver和Content Provider,它们构成了Android应用的核心元素。同时,书中还会讨论如何创建和管理这些组件。 3. **...
Android应用程序源代码由一系列的文件组成,这些文件包含了程序的逻辑、界面设计、资源管理等核心部分。以下是对Android应用程序源代码相关知识点的详细说明: 1. **项目结构**:一个典型的Android应用源代码结构...
Android Studio作为Google官方推荐的Android应用程序开发集成开发环境(IDE),其功能强大且不断更新,是每一个Android开发者必备的工具。 本书涵盖了从Android Studio的基础操作到高级特性的全面内容,包括但不...
其次,Android应用程序的基本结构包括活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供者(Content Provider)。活动是用户界面的入口,负责与用户交互;服务在后台运行,执行长时间...
- Android Studio:Google官方推荐的集成开发环境(IDE),用于构建Android应用,支持Gradle构建系统,提供代码自动完成、调试工具等功能。 - SDK(Software Development Kit):包含开发者需要的工具和API文档,...
这个压缩包包含了88个经典Android应用程序的源代码,是学习和研究Android开发不可多得的资源。 首先,我们可以从这些源码中学习到基础的Android组件使用,如Activity、Service、BroadcastReceiver和ContentProvider...
Android应用程序主要由四大组件构成:活动(Activities)、服务(Services)、广播接收者(Broadcast Receivers)和内容提供者(Content Providers)。活动是用户与应用交互的界面,服务则是在后台运行不依赖用户...
Eclipse开发Android应用程序入门 Android是一个基于Linux内核的开源平台,提供了功能强大的硬件支持和多样的软件平台,移动设备开发者前景充满了机会和挑战。要开发Android应用程序,需要选择合适的开发环境和工具...
第二个应用程序示例涉及比较复杂的 Android 特性,包括联系人搜索和 Google Maps 地址查找。 要想从本教程获得最大收益,具备移动开发经验会有帮助,但不是必需的。开发 Android 应用程序需要 Java 编程技能,但是...
在Android平台上,小程序是一种轻量级的应用形式,它允许开发者快速构建功能丰富的应用程序,而无需进行繁琐的安装过程。这个“Android小程序源代码集合”是一个极好的资源,适合初学者入门,同时也因为其简单易懂的...
Android手机系统是Google推出的一个基于Linux的操作系统,目前市场占有率很高,而Android应用开发则是通过使用Android软件开发套件(Android Software Development Kit,简称Android SDK)的工具和技术,制作各种...