首页今日趋势bytedance/scene
// archived 2026-04-07
bytedance

scene

Mobile#Android#Kotlin#Navigation#UI
前往 GitHub →
2,416

// 项目简介

Scene 是一个轻量级的 Android 库,旨在替代传统的 Activity 和 Fragment,以实现高效的导航和 UI 组合。它通过提供一种可靠且高性能的页面管理替代方案,解决了性能和兼容性问题。该框架与 Jetpack Fragments 完全兼容,并为开发者提供了简单的 API 以便迁移应用程序。

// 技术分析

Scene 是一个轻量级的 Android 框架,旨在用基于视图的组合模型取代传统的 Activity 和 Fragment 导航。它解决了与 Activity 启动时间相关的性能瓶颈,以及 Google Navigation Component 中固有的视图销毁问题。通过提供可靠、高性能的页面管理 API,该框架使开发者能够构建具有改进生命周期控制和简化导航栈管理的复杂应用程序。

// 核心亮点

01
提供与 Jetpack Fragment 框架的完全兼容性,以确保与现有 Android 组件的无缝集成。
02
简化了导航栈管理,支持多栈并增强了生命周期事件分发。
03
简化了复杂的跨页面和共享元素动画,以改善 UI 过渡效果。
04
允许修改和自动恢复 Activity 和 Window 属性,以保持状态一致性。
05
支持 Scene 之间强大的数据交换,包括直接在 Scene 内处理权限请求和授权的能力。
06
支持通过 Parcelable 进行状态持久化,确保无需 R8 或 Proguard 配置即可保存和恢复 Scene 状态。

// 典型使用场景

01
简化的导航栈管理,支持多栈结构
02
增强的 Android 页面生命周期管理和事件分发
03
精简的跨页面和共享元素动画

// 快速开始

要开始使用 Scene,请将 JitPack 仓库添加到根目录的 build.gradle 文件中,并在模块级的 build.gradle 中包含必要的库依赖。对于最简单的实现,让您的主 Activity 继承自 SceneActivity 并定义主页 Scene 类。然后,您可以通过创建继承自基础 Scene 或 AppCompatScene 类的自定义 Scene 来探索该框架。