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应用程序四大组件之一——Activity的入门知识,并通过一个名为"HelloActivityBasic"的示例来阐述其核心概念。 首先,我们需要理解Activity的基本生命周期。Activity的生命周期包括创建...
Activity 是 Android四大组件中最复杂的,需要处理界面逻辑、事件响应、生命周期管理等多个方面。一个 Activity 占据当前的窗口,响应所有窗口事件,具备有控件、菜单等界面元素。 Service Service 服务是 Android...
总的来说,《Android应用程序开发与典型案例》覆盖了Android开发的核心概念和技术,提供了充足的实践机会,对于希望提升Android开发能力的人来说,是一本不可或缺的参考书。通过深入阅读和实践书中的内容,开发者...
在Android开发中,四大组件是构建应用程序的核心元素,它们分别是:Activity、Service、BroadcastReceiver以及ContentProvider。这四个组件各自承担着不同的职责,是Android系统交互的基础。 1. **Activity**: ...
Android 应用程序开发作业流程要点包括 Java 基础知识、Android 应用程序开发环境搭建、Android 应用程序目录结构、新建一个 Android 应用、Android 四大组件及界面 UI 元素、Android 应用程序工作机制、Android ...
1. **Activity**:代表用户界面的一个屏幕,是Android四大组件之一,负责处理用户交互事件。 2. **Service**:在后台运行的服务,可以长时间执行任务而不提供界面。 3. **Broadcast Receiver**:用于接收来自系统或...
在Android应用开发中,插件化技术是一种将应用程序的功能模块分离出来,使其可以在运行时动态加载的技术。这有助于提升应用的灵活性和可维护性。OpenAtlas是一款开源的Android插件框架,它支持四大组件(Activity、...
《Android应用开发详解》这本书由郭宏志编著,涵盖了从基础到进阶的Android应用开发知识。书中通过2-18章的源码实例,为读者提供了丰富的学习材料,旨在帮助初学者快速掌握Android开发技能。只需在Eclipse集成开发...
"应用开始,逐步引导读者了解Activity、Intent、Broadcast Receiver、Service和Content Provider等Android四大组件的使用。同时,书中会详细讲解布局管理、用户界面设计、数据存储、网络通信、多媒体处理以及Android...
综上所述,Android系统应用程序组件安全性分析是当前移动应用开发中不可忽视的重要环节。通过静态分析技术,可以提前发现并修复潜在的安全隐患,保护用户的数据安全和隐私。对于开发者来说,应重视安全编码,采用...
此外,了解Android平台下的传感器和如何使用它们也是必不可少的。 在游戏开发部分,图形图像处理是关键,需要掌握OpenGL ES,从初级到进阶,用于创建游戏场景。学习View和SurfaceView,自定义视图以实现游戏界面。...
《Android应用程序开发宝典》是一本专为开发者设计的指南,涵盖了在飞凌嵌入式公司的OK6410、FL6410以及TE6410开发板上进行Android应用开发的全面知识。这本书深入浅出地讲解了如何在这些硬件平台上构建、调试和优化...
《Android应用开发详解》是郭宏志先生撰写的一本深入探讨Android应用开发的专业书籍,它为初学者和有经验的开发者提供了丰富的知识和实践经验。这本书不仅涵盖了基础理论,还包含了实际项目的源码,使得读者能够通过...
Android 四大组件是构成Android应用程序的核心元素,它们包括Activity、Service、BroadcastReceiver和ContentProvider。本教程主要关注Activity的学习,Activity是用户与应用程序交互的主界面,也是应用程序的基本...
四大组件是 Android 应用的基础组件,包括 Activity、Service、Broadcast Receiver 和 Content Provider 等。数据存储是 Android 应用的重要组件,用于存储应用程序的数据。网络编程是 Android 应用的重要组件,用于...
Service是Android应用程序不可或缺的一部分,它可以处理长时间运行的任务,同时保持对用户界面的影响最小。理解Service的工作原理和生命周期管理对于编写高效、稳定的Android应用至关重要。通过创建并启动Service,...
Android 开发中的四大组件是构建应用程序的核心元素,它们分别是 Activity、Service、BroadcastReceiver 和 ContentProvider。这些组件各自扮演着不同的角色,为应用程序提供丰富的功能和交互。 一、Activity 详解 ...
在Android应用开发的世界里,揭示其内部工作原理和最佳实践是每个开发者不可或缺的知识。这篇详细的分析将深入探讨Android开发的核心概念,技术栈以及关键技能,旨在帮助开发者提升他们的专业水平。 首先,Android...
综上所述,这份源码提供了学习Android应用开发,特别是电商应用开发的宝贵机会。它涵盖了从基础组件使用到网络请求、数据存储、UI设计和权限管理等多个方面,对于想要提升Android开发技能的开发者来说是一份非常有...