现代化 Android 开发:多 Activity 多 Page 的 UI 架构_开源安卓多页面(3)
才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
作者:古哥E下
在古老的 Android
时代,基本上一个 Activity
就代表一个界面,所以开发不需要做选择,但随着技术的迭代与框架的完善,Fragment
的使用成为主流,再进化为 Jetpack
的 navigation
。再到如今越来越火热的 Compose
。同是 Android
开发,可能选择的技术栈已经完全不一致了,所以入门学者也容易眼花缭乱。
纯 Activity 时代
Activity
作为最基础的四大组件之一,使用相对简单:
- 在
AndroidManifest
注册 - 通过
startActivity
或者startActivityForResult
启动,现在也可以通过LauncherForActivityResult
来启动 - 通过
finish
结束Activity
其主要的问题就是需要在 AndroidManifest
中注册,开发过程中容易忘记。若需要做 patch
、插件化等功能,就必须搞一些 HolderActivity
预注册,也是相当麻烦的。
除此之外,它本身是一个很重的组件,启动一个 Activity
就会有跨进程的操作,比较耗时。除此之外,动画控制也不是那么的灵活。
Fragment 入场
Fragment
原本是为了给平板使用的,最简单的例子就是列表-详情
,手机端是列表
界面点击进入详情
界面,而平板则可以左侧列表,右侧详情。
但随着 Fragment
的发展,因为其灵活性,它反而成了界面开发的主角,造就了单 Activity
多 Fragment
架构。
单 Activity
多 Fragment
架构。 Activity
就是一个承载 Fragment
的容器,所有的界面由 Fragment
承载,由于 Fragment
的事务型启动很繁琐,所以官方又出品了 Navigation
库来解决这个问题。但 Navigation
库需要创建并注册 Graph
,也是一个繁琐的事情。
路由框架入场
Activity
与 Fragment
/Navigation
的启动新界面的方式各不相同, Navigation
还有一个创建 Graph
的方式,代码编写极其繁琐,所以又诞生了统一接口的路由框架,其主要解决以下几个问题:
- 启动方式的大一统
Navagation
注册表的代码自动生成- 传参的大一统,
Activity
使用Intent
添加参数,Fragment
使用Bundle
- 跨
module
的界面启动(模块化需求)
由于官方没有出品,所以就是由各个业务职能部门创建,诸如:ARouter
、TheRouter
、QMUI Scheme
、Emo Scheme
等库。
ARouter
与 TheRouter
偏向于模块化。
而个人开发的 QMUI Scheme
与 Emo Scheme
则没有支持模块化,而是在多 Activity
多 Page
的支持上花费了很大工费。这里一个 Page
可以是Fragment
也可以是 Compose
。
多 Activity
多 Page
架构是指我们可以使用多个 Activity
, 每个 Activity
都可以是多 Page
的存在, 具体是否要使用 Activity
, 则由开发根据业务逻辑决定。
QMUI Scheme
支持了多 Activty
多 Fragment
架构。
Emo Scheme
支持了多 Activity
多 Compose
架构。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数HarmonyOS鸿蒙开发工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年HarmonyOS鸿蒙开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上HarmonyOS鸿蒙开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
更多推荐
所有评论(0)