Android 启动优化
文章平均质量分 92
IT徐师兄
IT徐师兄、10年大厂程序员经历。全网粉丝15W+,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战,可以通过任意一篇文章底部联系我
展开
-
Android 深入理解布局优化
说到 Android 启动优化,你一般会想到什么呢?Android 多线程异步加载Android 首页懒加载对,这是两种很常见的优化手段,但是如果让你主导这件事情,你会如何开始呢?梳理现有的业务,哪些是一定要在启动初始化的,哪些是不必要的需要在启动初始化的,哪些是可以在主线程初始化的,哪些是可以在子线程初始化的当我们把任务丢到子线程初始化,这时候,我们又会遇到两个问题。在首页,我们需要用到这个库,如果直接使用,这个库可能还没有初始化,这时候直接调用该库,会发生异常,你要怎么解决。原创 2023-02-28 21:56:50 · 227 阅读 · 0 评论 -
Android 启动优化(五)- AnchorTask 1.0.0 版本更新了
上周六,吃错了东西,突然头晕,发烧,半夜突然呕吐,拉肚子,整个人被折腾得够呛的。到医院检查,说是 xx 肠炎,吃错东西导致的,整整躺在家休息四天。今天,终于缓过来了。更新一下 Android 启动优化有向无环图系列的最后一篇文章。最近一段时间,暂时不会更新这方面的文章了。Android 启动优化(一) - 有向无环图Android 启动优化(二) - 拓扑排序的原理以及解题思路Android 启动优化(三) - AnchorTask 使用说明。原创 2023-02-28 21:55:36 · 93 阅读 · 0 评论 -
Android 启动优化(四)- 手把手教你实现 AnchorTask
AnchorTask,锚点任务,它的实现原理是构建一个有向无环图,拓扑排序之后,如果任务 B 依赖任务 A,那么 A 一定排在任务 B 之前。了解原理之前,请必须先了解有向无环图和多线程的一些基本知识,不然,下文,你基本是看不懂的。AnchorTask 的原理不复杂,本质是有向无环图与多线程知识的结合。根据 BFS 构建出有向无环图,并得到它的拓扑排序在多线程执行过程中,我们是通过任务的子任务关系和 CounDownLatch 确保先后执行关系的前置任务没有执行完毕的话,等待,执行完毕的话,往下走。原创 2023-02-25 22:55:27 · 118 阅读 · 0 评论 -
Android 启动优化(三) - AnchorTask 使用说明
Android 启动优化,大家第一时间可能会想到异步加载。将耗时任务放到子线程加载,等到所有加载任务加载完成之后,再进入首页。多线程异步加载方案确实是 ok 的。但如果遇到前后依赖的关系呢。比如任务2 依赖于任务 1,这时候要怎么解决呢。这时候就可以使用 AnchorTask 解决,它的实现原理是构建一个有向无环图,拓扑排序之后,如果任务 B 依赖任务 A,那么 A 一定排在任务 B 之后。方法必须在主线程调用,子线程调用会抛出异常。原创 2023-02-25 22:52:54 · 63 阅读 · 0 评论 -
Android 启动优化(二) - 拓扑排序的原理以及解题思路
春节之前,更新了一篇博客Android 启动优化(一) - 有向无环图,反响还不错,今天,让我们一起来看一下,怎样用代码实现有向无环图。这篇博客从实战的角度出发,介绍了有向无环图的两种解法,入度表法和 DFS 法。其中,入度表法很重要,必须掌握。下一篇,我们将从 项目实战的角度来讲解,怎样搭建一个有向无环图的通用框架,敬请期待。原创 2023-02-23 23:57:16 · 204 阅读 · 0 评论 -
Android 启动优化(一) - 有向无环图
说到 Android 启动优化,大家第一时间可能会想到异步加载。将耗时任务放到子线程加载,等到所有加载任务加载完成之后,再进入首页。多线程异步加载方案确实是 ok 的。但如果遇到前后依赖的关系呢。比如任务2 依赖于任务 1,这时候要怎么解决呢。最简单的方案是将任务1 丢到主线程加载,然后再启动多线程异步加载。如果遇到更复杂的依赖呢。任务3 依赖于任务 2, 任务 2 依赖于任务 1 呢,这时候你要怎么解决。更复杂的依赖关系呢。原创 2023-02-23 23:54:26 · 155 阅读 · 0 评论