当前位置: 首页 > article >正文

Compose 的产生和原理

引言

compose 出现的目的:  重新定义android 上ui 的编写方式。为了提高android 原生ui开发效率。让android 的UI开发方式跟上时代。

正文

compose 是什么?

就是一套ui框架

和flutter 一样是一套ui框架 Flutter:跨平台开发趋势与企业应用的崛起-CSDN博客

为什么要新的ui框架?

老的ui存在的问题:

  1. view.java 类太大 ,这个类有30000行 ,而且每个android ui都要继承于view 。
  2. google 表示他们对已实现的一些api 无法在不破坏功能情况下收回、修复或者扩展api 。
  3. 当前ui开发不符合现在开发习惯(响应式编程思想的 声明式ui)

compose存在的优势

compose是声明式ui 。

声明式ui和命令式ui的差别

声明式ui :自动更新

命令式ui : 手动更新

compose和databinding区别

databinding     data   ->  ui       data 改变 View属性   

compose    data -> ui属性 .ui结构

优势

1、早期 activity  data的设置是要 findViewById XXX     ,比较麻烦。  compose 就不需要这些了。

2、声明式UI,数据驱动ui(把我们前端思想引入了,databinding就是借鉴了前端vue。react思想)

3、view 控件,内容多且不好扩展。  compose非常轻量且易扩展。compose  ui通过layoutNode 来形成树结构。

组合替代了继承

这是最重要的改变  (整个ui思想的改变)

我们以前ui 都是继承 view  。这里存在一个缺陷就是引言里面说的,父类的特性写好了,就无法改变了。

组合,就可以解决这个问题,A 里面是B.C 组合。如果我觉得B 不好,我想剔除B改为D,可以随时替换。  这时候优势就体现出来了: 颗粒度比较细,可随时替换。

compose 是否完全抛弃了View 和ViewGroup ?

没有完全抛弃,也是继承自ComposeView,  compose 也是继承contentView ,contentView 继承DecorView ,D 继承Window窗体,最后Activity。

so : AndroidComposeView 是创世主,创建了compose世界。

如图:

结束。


http://www.kler.cn/a/592380.html

相关文章:

  • 材质 × 碰撞:Threejs 物理引擎的双重魔法
  • javascript语法入门
  • Python:多态,静态方法和类方法
  • 小程序开发中的安全问题及防护措施
  • Android Compose 框架按钮与交互组件模块源码深度剖析(二)
  • GPU 上的 Reduction(归约)和 Scan(前缀和)优化:LLVM、GPU 指令集与架构差异
  • 【Node.js入门笔记9---http 模块】
  • 使用Nginx实现后端负载均衡
  • 3.19 代码随想录第二十一天打卡
  • python爬虫概述
  • JAVA学习-练习试用Java实现“编写一个Spark程序,结合Elasticsearch对大数据进行全文搜索和筛选“
  • What a code!
  • 【css酷炫效果】纯CSS实现瀑布流加载动画
  • 【Java集合夜话】第2篇:Collection家族,一场优雅的探索之约
  • Java设计模式之外观模式
  • 大数据学习(74)-Hue元数据
  • 2025 年 AI 代码编辑器深度评测:Cursor Pro订阅与解锁自定义 AI 的无限潜能,实战案例全解析
  • stride网络安全威胁 网络安全威胁是什么
  • random_masking 函数测试
  • 【达梦数据库】快速加列参数ALTER_TABLE_OPT使用