您好!欢迎来到源码码网

Android四大核心组件详解 什么是Android四大组件

  • 源码教程
  • 来源:源码码网
  • 编辑:admin
  • 时间:2021-01-07 18:12
  • 阅读:680

Android 作为一个移动设备的开发平台,其软件层次结构包含操作系统 (OS)、中间件 (MiddleWare) 和应用程序 (Application)。

Android 的应用程序通常涉及用户界面和用户交互,这类程序是用户实实在在能感受到的。目前 Android 本身提供了桌面、联系人、电话和浏览器等众多的核心应用,同时还允许开发者使用应用程序框架层的 API 实现自己的程序

Android 系统没有使用常见的应用程序入口点的方法(例如C语言中的 main() 方法),应用程序是由组件组成的,组件可以调用相互独立的基本功能模块。根据完成的功能不同,Android 划分了 4 类核心组件,即 Activity、Service、BroadcastReceiver 和 ContentProvider,各组件之间的消息传递通过 Intent 完成。

Activity

Activity 是 Android 应用程序核心组件中最基本的一种,是用户和应用程序交互的窗口。

在 Android 应用程序中,一个 Activity 通常对应一个单独的视图。一个 Android 应用程序是由一个或多个 Activity 组成的,这些 Activity 相当于 Web 应用程序中的网页,用于显示信息,并且相互之间可以进行跳转。和网页跳转不同的是,Activity 之间的跳转可以有返回值。

新打开一个视图时,之前的那个视图会被置为暂停状态,并且压入历史堆栈中,用户可以通过回退操作返回以前打开过的视图。Activity 是由 Android 系统进行维护的,它有自己的生命周期,即“产生、运行、销毁”,但是在这个过程中会调用许多方法,如创建 onCreate()、激活 onStart()、恢复 onResume()、暂停 onPause()、停止 onStop()、销毁 onDestroy()和重启 onRestart() 等。

Service

Service 是一种类似于 Activity 但是没有视图的程序,它没有用户界面,可以在后台运行很长时间,相当于操作系统中的一个服务。

Android 定义了两种类型的 Service,即本地 Service 和远程 Service。本地 Service 是只能由承载该 Service 的应用程序访问的组件,而远程 Service 是供在设备上运行的其他应用程序远程访问的 Service。

通过 Context.startService(Intent service) 可以启动一个 Service,通过 Context. bindService() 可以绑定一个 Service。

BroadcastReceiver

BroadcastReceiver 的意思是“广播接收者”,顾名思义,它用来接收来自系统和其他应用程序的广播,并做出回应。

在 Android 系统中,当有特定事件发生时就会产生相应的广播。广播体现在方方面面。例如,当开机过程完成后,系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时,系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作;当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户及时保存进度等。

BroadcastReceiver 不能生成 UI,通过 NotificationManager 来通知用户有事件发生,对于用户来说是隐式的。

BroadcastReceiver 的 2 种注册方式:

  • 在 AndroidManifest. xml 中进行静态注册;

  • 在运行时的代码中使用 Context.registerReceiver() 进行动态注册。


只要注册了 BroadcastReceiver,即使对应的事件广播来临时应用程序并未启动,系统也会自动启动该应用程序对事件进行处理。另外,用户还可以通过 Context.sendBroadcast() 将自己的 Intent 对象广播给其他的应用程序。

ContentProvider

文件、数据库等数据在 Android 系统内是私有的,仅允许被特定应用程序直接使用。在两个程序之间,数据的交换或共享由 ContentProvider 实现。

ContentProvider 类实现了一组标准方法的接口,从而能够让其他的应用保存或读取 ContentProvider 提供的各种数据类型。

Intent

Intent 并不是 Android 应用程序四大核心组件之一,但是其重要性无可替代,因此在这里我们做一下简单介绍。

Android 应用程序核心组件中的三大核心组件 —— Activity、Service、BroadcastReceiver。通过消息机制被启动激活,而所使用的消息就是 Intent。Intent 是对即将要进行的操作的抽象描述,承担了 Android 应用程序三大核心组件相互之间的通信功能。


特别声明:
1、如无特殊说明,内容均为本站原创发布,转载请注明出处;
2、部分转载文章已注明出处,转载目的为学习和交流,如有侵犯,请联系客服删除;
3、编辑非《源码码网》的文章均由用户编辑发布,不代表本站立场,如涉及侵犯,请联系删除;
全部评论(0)
推荐阅读
  • 大型后台管理系统,用户登录状态该如何保存?
  • 大型后台管理系统,用户登录状态该如何保存?
  • 大型后台管理系统的用户登录状态保存需要综合考虑安全性、用户体验和系统架构。以下是企业级的完整方案:1.多层级存储策略class AuthManager {    constructor() {        this.storage = { &n
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2025-11-06 12:16
  • 阅读:350
  • 源码交易平台的支付困局与解决方案:如何通过专业支付系统提升交易效率
  • 源码交易平台的支付困局与解决方案:如何通过专业支付系统提升交易效率
  • 在数字经济蓬勃发展的今天,源码交易市场已成为互联网创业者和开发商的重要资源池。从电商系统源码到社交应用框架,从小程序解决方案到企业级管理系统,越来越多的开发者、初创企业和传统商家通过源码交易平台快速获取技术资产,实现商业目标的加速。源码交易市场的繁荣反映了数字化转型的迫切需求——企业需要快速迭代,开发者需要快速变现,用户需要快速启动。然而,在这个高速发展的市场中,一个长期被忽视但至关重要的问题浮现出来:支付系统的效率与安全性已成为制约交
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2025-10-23 15:16
  • 阅读:297
  • Spring Boot 工程中 maven-surefire-plugin 测试执行失败及解决方法
  • Spring Boot 工程中 maven-surefire-plugin 测试执行失败及解决方法
  • 在SpringBoot工程编译时遇到maven-surefire-plugin的测试执行失败错误(Failedtoexecutegoalorg.apache.maven.plugins:maven-surefire-plugin:3.5.3:test),通常与测试环节相关。以下是常见原因及解决方法:1.测试用例执行失败• 原因:最常见的是测试用例(*Test.java)运行时抛出异常(如断言失败、空指针等),导
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2025-10-13 10:57
  • 阅读:362
  • WeMark - 微信小程序图片水印
  • WeMark - 微信小程序图片水印
  • 一个纯前端的微信小程序图片水印工具。支持文字/图片水印、单个与全屏两种模式,透明度与角度调节、单个水印位置X/Y控制,预览与对比模态、历史记录(100条)等功能。
  • 源码教程
  • 来源:源码码用户
  • 编辑:yg
  • 时间:2025-09-22 16:09
  • 阅读:287
联系客服
源码代售 源码咨询 素材咨询 联系客服
029-84538663
手机版

扫一扫进手机版
返回顶部