【Android】四大组件

应用组件是android应用的基本构建基块。每个组件都是一个不同的点,系统可以通过它进入应用。并非所有组件都是用户的实际入口,有些组件相互依赖,但每个组件都以独立的实体形式存在,并发挥特定作用,每个组件都是唯一的构建基块,有助于定义应用的总体行为。
四大组件分别是:activity、service、Broadcast Receiver(广播接受者)、Content Provider(内容提供者)

一、activity:

     activity,表示具有用户界面的单一屏幕。比如,电子邮件应用可能具有一个显示新电子邮件列表的activity、一个用于撰写电子邮件的activity以及一个用于阅读电子邮件的activity。尽管这些activity通过协作在电子邮件应用中形成了一种紧密结合的用户体验,但每一个activity都独立于其他activity而存在,因此,其他应用可以启动其中任一activity。例如,相机应用可以启动电子邮件应用内用于撰写新的电子邮件的activity,以便用户共享图片。

二、服务(service)

     服务是一种在后台运行的组件,用于执行长时间运行的操作或者为远程进程执行作业。服务不提供用户界面。例如,当用户位于其他应用中时,服务可能在后台播放音乐或者通过网络获取数据,但不会阻断用户与activity的交互。诸如Activity等其他组件可以启动服务,让其运行或其绑定以便与其进行交互。

三、内容提供者(content Provider)

     内容提供者管理一组共享的应用数据。可以将数据存储在文件系统、sqlite数据库、网络上或者应用可以访问的任何其他永久性存储位置。其他应用可以通过内容提供程序查询数据,甚至修改数据(只需要内容提供程序允许)。比如Android系统可以提供管理用户联系人信息的内容提供程序。因此,任何具有适当权限的应用都可以查询内容提供程序的某一部分,以读取和写入有关特定人员的信息。
     内容提供程序也使用于读取和写入应用不共享的私有数据,比如记事本应用 使用内容提供程序来保持笔记。

四、广播接收器

     广播接收器是一种用于响应系统范围广播通知的组件。许多广播都是由系统发起的:比如屏幕已关闭、电池电量不足等广播。应用也可以发起广播,比如:通知其他应用某些数据以及下载至设备,并且可供其使用。尽管广播接收器不会显示用户界面,但是他们可以创建状态栏通知,在发生广播事件时提醒用户。但广播接收器更常见的用途只是作为其他组件的“通道”,设计用于执行极少量的工作,例如基于事件发起一项服务来执行某项工作。

android系统设计的独特之处在于,任何应用都可以启动其他应用的组件,比如,一个应用可以调用照相机应用来执行操作,而不是自行开发一个activity执行操作。只需要调用相机应用中的activity。完成拍照后返回到应用中。

当系统启动某个组件时,会启动该应用的进程(如果尚未运行),并实例化该组件所需要的类。例如,A应用启动相机应用中拍摄照片的activity,则该activity会在属于相机应用的进程,而不是在A应用的进程中运行,因此Android应用没有单一入口点(如没有main()函数)

由于系统在单独的进程中运行每一个应用,且其文件权限会限制对其他应用的访问,因此应用无法直接启动其他应用中的组件,但android系统可以这么做,如要启动其他应用中的组件,必须要向系统传递一则消息,说明你想要启动特定组件的indent,系统随后启动该组件。

猜你喜欢

转载自blog.csdn.net/J675620982/article/details/80402214