相同点路由和组件总线都需要将分布在不同组件module中的某些类按照一定规则生成映射表(数据结构通常是Map,Key为一个字符串,Value为类或对象) 然后在需要用到的时候从映射表中根据字符串从映射表中取出类或对象 不同点1. 路由方案(如:ARouter等)1.1 路由的本质是类的查找 其工作原理类似于仓库管理员:大家先把类全部放到仓库中,有人需要的时候,仓库管理员就根据所提供的字符串找出存放在仓库中的类 查找的类主要分为3种:Activity子类、Fragment子类和自定义接口实现类 Activity子类: 路由库提供startActivity(或startActivityForResult)的封装,并根据字符串从映射表中获取对应的Activity类(XxxActivity.class),跳转到该Activity页面 Fragment子类:路由库根据字符串从映射表中获取对应的Fr ...
总结一波安卓组件化开源方案
摘要为了让大家能快速对android组件化有个整体的认识,本文将从多个维度对目前网上一些有代表性的开源组件化开发方案进行对比,从而更好的区分各组件化方案的特点,快速选择适合自己使用的方案深入学习并使用,在面试中被问到时也能做到心中有数。 前言android平台上组件化开发的概念近两年非常火热,有些同学反映在面试中被问到的频率也很高。 目前网上关于组件化开发方案的文章、开源库比较多,让很多初学者感到迷茫,不知该从何处入手,难以确定自身的业务特性适合使用哪种框架,如果全部都学习一遍成本比较高,而且在学习过程中容易将各方案的一些特性记混淆。 为了让大家能快速对android组件化有个整体的认识,本文将从多个维度对目前网上一些有代表性的开源组件化开发方案进行对比,从而更好的区分各组件化方案的特点,快速选择适合自己使用的方案深入学习并使用,在面试中被问到时也能做到心中有数。 由于篇幅及个人精力所限, ...
谁阻碍了你做组件化开发?
前言之前写了一篇关于总结一波安卓组件化开源方案的文章,反响还不错,很高兴能够对大家整体了解android组件化技术有所帮助。 有些开发者在了解组件化开发的好处及相关开源框架后,想要对自己所负责的项目进行组件化改造以解决多人(多团队)协同开发困难及单工程开发编译时间过长等问题,但一直难以下决心真正开始实施,停留在了解阶段或仅仅写个demo体验一把的阶段,其中很大一部分原因是迭代开发任务排的很紧,很难空出一段时间来实施,而且组件化改造是纯技术上的优化,产品经理和业务部门并不太关心。 为此,本文将介绍一下如何用 CC 框架来破解android组件化不易上手的难题(想要了解CC实现原理的细节,请戳这里) 一、谁阻碍了你先来解决几个可能阻挡我们下决心实施组件化改造的拦路石: 怕配置复杂,容易遗漏或出错 CC将配置封装到了一个cc-settings.gradle文件,在需要组件化的module的bu ...
预加载:页面启动速度优化利器
更新日志 Activity打开之前就预加载数据,在Activity的UI布局初始化完成后显示预加载的数据,大大缩短启动时间。 在任意处开启预加载任务,并生成任务id,根据任务id可在任意处(一般是UI初始化完成后)开始对预加载的数据进行监听。 开始进行监听时,若预加载任务未完成,则等待任务加载完成后执行监听对象的回调方法 开始进行监听时,若预加载任务已完成,则直接执行监听对象的回调方法 持续优化中,欢迎watch、star关注! demodemo下载 典型应用 在Application.onCreate中加载地址数据,在需要用到地址的页面中获取预加载的数据 在启动页中预加载app主页所需的数据,减少用户等待时间 startActivity之前就开始预加载,UI初始化完成后显示预加载的数据 复杂页面(UI初始化耗时较多的页面)内部在UI初始化开始之前预加载数据,UI初始化完成后显示 ...