强烈推荐:抖音,西瓜视频,头条出品的开源库,你值得拥有

强烈推荐:抖音,西瓜视频,头条出品的开源库,你值得拥有

 

 

动图
 

 

今天章鱼猫给大家推荐的一个开源组件库呢,是抖音,西瓜视频等头条系都在用的一个开源库。所以,自然差不了。

 

 

那这个开源库是什么呢?它就是:Bytedance Scene 。

Scene 是一个基于 View 的轻量级导航和页面切分组件库,主要特性:

  1. 简单方便的页面导航和栈管理,支持 MultiStack
  2. 完善的生命周期的管理和分发
  3. 可以更简单的实现复杂的过场动画
  4. 支持对 Activity 和 Window 属性的修改和恢复
  5. 支持页面之间拿返回值,支持在 Scene 中申请权限
  6. 支持页面销毁时保存状态和恢复

Scene 旨在导航和页面切分上替代 Activity 和 Fragment 的使用。

Activity 目前存在的主要问题:

  1. 栈管理弱,Intent 和 LaunchMode 混乱,即使各种 Hack 仍然不能完全避免黑屏等问题
  2. Activity 的性能较差,普通的空白页面启动也平均 60ms 以上(三星 S9 测试)
  3. 因为 Activity 被强制需要支持销毁恢复,导致了一些问题:
  • 转场动画能力有限,无法实现较复杂的交互动画,
  • 共享元素动画基本不可用,有 Framework 层的崩溃无法解决
  • 每次启动新的 Activity,都需要上个页面执行完 onSaveInstance,损失性能
  • Activity 依赖 Manifest 文件导致注入困难,动态化需要各种 Hack

Fragment 目前存在的主要问题:

  1. 官方长期无法解决的崩溃较多,即使不用 Fragment,在 AppCompatActivity 的 onBackPressed () 中仍然可能触发崩溃
  2. add/remove/hide/show 操作不是立刻执行,在嵌套时即使使用 commitNow 也不能保证子 Fragment 状态更新
  3. 动画支持糟糕,页面切换时无法保证 Z 轴顺序
  4. 导航功能很弱,除了基本的打开和关闭,高级的栈管理
  5. 原生 Fragment 和 Support v4 包中的 Fragment 的生命周期并不完全相同

Scene 框架尝试去解决上面提到的 Activity 和 Fragment 存在的问题

提供简单可靠、易扩展的 API,来实现一套轻量的导航和页面切分解决方案

同时提供了一系列的迁移方案,来帮助开发者渐进式地从 Activity 和 Fragment 迁移到 Scene。

开源项目地址:

开源项目作者:字节跳动团队

今天的推荐不知道大家喜欢吗?如果你喜欢,请在文章底部留言和点赞,以表示对我的支持,你们的留言、点赞和转发关注是我持续更新的动力哦!

关注我的微信公众号「非著名程序员」免费领取:

关注我的微信公众号后,对话框直接回复:
回复「赚钱」:免费领取独立开发者经验,程序员赚钱实操教程,教你如何成为独立开发者,国内外独立开发者干货和项目实例。
回复「面试」:免费领取各大校招,春招,秋招以及 BAT ,TMD 等一线大厂面试题及答案。
回复「好书」:送你 100+ 本互联网及编程相关书籍,让你提升认知,开拓眼界,变得牛逼。
回复「Mac」:免费获取优质的 Mac 软件资料和软件大全,工具是提升效率的利器,节省时间,丰富自己,优质的工具在这里等你。

关注非著名程序员第一时间获取更多优质的资料和内容,绝对都是妥妥的干货。

「GitHub 精选」开始接受大家投稿啦

发布于 2019-10-24 09:28

posted on   漫思  阅读(81)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
历史上的今天:
2019-12-30 ES6基础之——get 与 set
2019-12-30 ES6学习--对象属性的遍历
2019-12-30 C#6新特性,让你的代码更干净

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示