GitHub 源码分析
文章平均质量分 90
实战分析源码,解构复杂逻辑。
内功看算法,外功看源码。
化作孤岛的瓜
广州-无线端开发工程师
展开
-
Android——CInit源码分析
CInit 是一个Android 依赖任务启动框架(最近在分析公司的启动框架,发现虽然实现了DAG结构,可以支持任务依赖,同异步,优先级回调等功能,但是缺点也有很多,配置只能代码配置,不支持注解,不支持多进程等,已经落后于时代了- =!所以找到CInit来研究一下。总的来看框架整体实现比较简单,容易上手或者改造,有一个瑕疵是任务优先级priority并没有实现。较为复杂的点在于任务的执行部分逻辑,需要依次进行依赖环检查,进程判断,线程判断,children依赖任务执行步骤。原创 2023-02-04 20:55:11 · 635 阅读 · 0 评论 -
Android字节码框架ByteX [method_call_opt] 源码分析
前言ByteX是字节团队推出的一个基于GradleTransformApi和ASM的字节码插件平台。Github:GitHub - bytedance/ByteX: ByteX is a bytecode plugin platform based on Android Gradle Transform API and ASM. 字节码插件开发平台近期在学习研究字节码相关的技术,所以会整理一个系列文章着重分析ByteX各种插件的实现原理和思想。阅读本文需要初步了解ASM技术,传...原创 2022-03-05 17:15:32 · 2236 阅读 · 0 评论 -
Android——Qigsaw 源码分析(四) 安装过程
前言在编译,初始化,加载的准备工作都结束以后,就到了插件的安装步骤。本文按调用顺序来分析具体的安装步骤。在官方demo下,可以看到QigsawInstaller中实际执行安装的步骤:SplitInstallManager.startInstall↓SplitInstallManagerImpl.startInstall(SplitInstallRequest request)↓如果未安装SplitInstallService.startInstall(List<St原创 2021-12-19 12:06:29 · 1670 阅读 · 0 评论 -
Android——Qigsaw 源码分析(三) 加载过程
前言在初始化流程结束之后,本章节主要是继续按执行顺序,分析后续的加载和安装流程。目录前言加载过程1. 预加载 (SplitLoadManagerImpl)1.1 SplitLoadManagerImpl.loadInstalledSplitsInternal1.2 SplitLoadManagerImpl.createInstalledSplitFileIntents1.3 SplitLoadManagerImpl.createLastInstalledSplitFileIn原创 2021-12-12 15:07:13 · 2311 阅读 · 0 评论 -
Android——Qigsaw 源码分析(二) 初始化过程
上一章节描述了Qigsaw编译期做的事情,后面的工作就是运行期进行的初始化,加载,和安装插件的过程。初始化过程通过官方文档:https://github.com/iqiyi/Qigsaw/blob/master/README.zh-CN.md中可以了解到,插件安装过程在QigsawApplication中。1.QigsawApplication1.1 attachBaseContext()SplitConfiguration configuration = SplitConfi原创 2021-12-11 22:11:23 · 1772 阅读 · 0 评论 -
Android——Qigsaw 源码分析(一) 编译过程
本文主要是对Qigsaw的源码分析。Qigsaw是一种动态组件化技术,可以有效减少包size,进行热更新等调优功能,在实际应用开发中能带来不错的收益与启发。基于2021/7/14版本分析。Qigsaw分为编译过程→安装过程→加载过程 三个阶段进行源码分析。如何调试gradle:Android如何创建Gradle插件开发工程及调试_xialonghua的专栏-CSDN博客_gradle插件开发目录包目录结构:1 QigsawAppBasePlugin1.1 Transform部原创 2021-12-05 10:30:40 · 2014 阅读 · 0 评论 -
Android——面向AOP编程(二) Xerath 开源AOP框架
承接上文Android——面向AOP编程(一)https://pumpkin.blog.csdn.net/article/details/119849325在持续了一段时间的学习之后,运用闲暇时间写了一个开源项目,目前在持续扩充和发育中。github:https://github.com/jiangzhengnan/XerathXerathXerath 是一个通过 [自定义注解]+ASM+Gradle Transform API实现的一套功能强大,方便开发,并且能够有效减少重复代码的A...原创 2021-11-14 15:54:53 · 2134 阅读 · 0 评论