Android知识笔记:对于Jetpack Compose的一次尝试,超强Android进阶路线知识图谱

本文深入探讨了Android开发中Jetpack Compose的优势,包括声明式UI、关注点分离、组合优于继承的理念,以及数据驱动视图的实现。通过对比传统的XML布局和命令式编程,阐述了Jetpack Compose如何简化Android应用的UI构建和维护。
摘要由CSDN通过智能技术生成

在布局文件中我们给每个控件起一个名字(ID),而在程序中我们需要根据这个 ID 查找我们需要的具体控件,如TextView nameTextView = (TextView) rootView.findViewById(R.id.tv_name);页面中的每个控件都需要这样的操作获取,还要重新再起一个符合源码规范的新名字,对于几十甚至几百个控件的页面来说,完成这样的操作是相当繁琐相当痛苦的。

耦合严重

随着应用迭代,XML布局文件和源码都要同步地进行更改,也就是说每加一个控件,XML文件和源码都要相应地进行更改,如果XML中移除了某个控件而源码没有更改就会出现运行时异常,所以它们实际上是强耦合的。

方式不统一

一个页面布局既可以通过XML文件的方式静态指定,也可以通过编写源码的方式动态创建,这两种截然不同的方式虽然都可以实现页面布局,但毕竟是不同的语言,不同的系统,很难统一管理和维护。

架构缺陷

数据驱动视图思想的实现需要视图可以方便的与数据进行单向或者双向的绑定,只有Data Binding技术可以实现XML里插入代码,完成和数据的绑定,但是这样的操作就像JSP在HTML文件中插入Java代码一样,虽然简单直接,但是代码逻辑的连贯性、一致性以及可维护性会面临前所未有的挑战。

那什么样的UI构建方式才能避免上述的问题呢?什么样的构建方式才是简单有效的呢?我相信大多数人的回答都是 “声明式(declarative)”,在源码中声明式的构建UI既直观又不会损失源码的能力。但是这个愿景在实现上却又困难重重,怎么让Java或Kotlin拥有声明式语法的能力,怎么让排版布局更加的简洁直观,怎么避免 UI 逻辑和业务逻辑的耦合等等都是需要重点解决的问题,而我觉得Jetpack Compose是个很不错的尝试。

架构思想


关注点分离

关注点分离(separation of concerns)是最常见最出名的软件设计原则,也是每个开发者都应该了解并遵循的,其实关注点分离最初是对另外两个词的概括:耦合(coupling)和内聚(cohesion)。理论上,当我们写代码时,我们会把应用看成多个模块,而且还可能把每个模块看成多个单元,这些模块或单元之间的依赖关系就是耦合,也就是说,如果我在某处对一些代码进行了更改,那么我还必须对其他文件进行多少更改?

所以我们一般的想法就是尽可能的减少耦合。有时耦合是隐式的,那些我们依赖的依赖或者其他我们依赖的东西实际上是不确定的,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值