置顶

Android 四大组件系列总目录

2026/09/10 15:00

Android 基础组件与线程:从 Handler 到 AndroidX 兼容层

从 Handler 的线程切换,到 AsyncTask、Loader、LayoutInflater 与 AndroidX 兼容层,附组件选型对照表。

Android 基础组件与线程:从 Handler 到 AndroidX 兼容层
Android 界面体系:Activity、Window、View 与 ViewRootImpl

Android 界面体系:Activity、Window、View 与 ViewRootImpl

Android界面体系按组件职责分层实现:Activity负责页面逻辑和生命周期,通过Window抽象承载DecorView根节点;PhoneWindow作为实现类创建DecorView并管理窗口属性;DecorView通过内容容器(mContentParent)承载业务View树。ViewRootImpl协调View树测量布局绘制,驱动measure→layout→draw流程,并与系统WindowManagerService通过Binder通信完成窗口挂载。WindowManager通过WindowManagerGlobal管理各进程窗口,最终由WindowManagerService统一管理全屏幕窗口层级、布局和事件分发。核心调用链为:Activity.setContentView→PhoneWindow.setContentView→DecorView解析布局→ViewRootImpl驱动视图树及系统窗口连接。

Android ForegroundService 前台服务详解

在 Android 开发中,Service 经常被理解成“后台任务组件”。但从 Android 8.0 开始,系统对后台执行做了越来越严格的限制,普通后台 Service 已经不再适合长期运行任务。 这时候,ForegroundService 就变得非常重要。 不过 ForegroundServic

Android ForegroundService 前台服务详解
Android JobIntentService:一个曾经用来兼容后台任务的过渡方案

Android JobIntentService:一个曾经用来兼容后台任务的过渡方案

在 Android 后台任务体系里,JobIntentService 是一个很有时代感的类。 它出现的背景是:以前我们经常用 IntentService 来处理后台任务,比如上传日志、同步数据、处理广播后的耗时操作。但从 Android 8.0 开始,系统加强了后台执行限制,普通后台 Service

Android IntentService 原理、实践与废弃

1. 概述 IntentService 是 Android 提供的一个抽象类,继承自 Service。它被设计用来按需处理异步请求(以 Intent 为载体)。它本质上是一个集成了“工作线程”和“消息队列”的后台服务,非常适合执行那些不需要与 UI 交互、且执行时间较短的耗时任务(如下载文件、写入日

Android IntentService 原理、实践与废弃
Android 横竖屏切换为什么会重建 Activity?configChanges 到底该不该用?

Android 横竖屏切换为什么会重建 Activity?configChanges 到底该不该用?

在 Android 开发中,经常会遇到这样一个问题: 为什么横竖屏切换时 Activity 会重新走生命周期? 为什么设置了 android:configChanges="orientation" 之后,有时候还是会重建? 既然重建这么麻烦,Android 为什么不默认不重建呢? 这篇文章就围绕横竖

Fragment:和旧资料差在哪

Fragment 修订差异说明 1. 原 PDF 内容范围 原 PDF 主要包括: Fragment 为什么被称为“第五大组件”。 Fragment 静态加载和动态加载。 Fragment 与 ViewPager 搭配。 Fragment 生命周期。 Fragment 与 Activity、Frag

Fragment:和旧资料差在哪
Fragment 怎么切换:事务与回退栈

Fragment 怎么切换:事务与回退栈

Fragment 切换与事务 1. FragmentTransaction 是什么 对 Fragment 的添加、移除、替换、隐藏、显示、入栈等操作,都需要通过 FragmentTransaction 完成。 常见写法: supportFragmentManager.commit { set

Fragment 怎么通信:不要互相强转 Activity

Fragment 通信 1. 不推荐直接互相调用 旧资料中常见写法: val activity = getActivity() as MainActivity activity.methodA() 或者: val fragmentA = activity.supportFragmentManage

Fragment 怎么通信:不要互相强转 Activity