Beike AspectD的原理及运用

1 项目背景

AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。

AspectD是咸鱼针对Flutter实现的AOP开源库,GitHub地址如下:https://github.com/alibaba-flutter/aspectd

十分感谢咸鱼团队开源的AspectD开源库,AspectD让flutter具备了aop的能力,给了贝壳flutter团队很多思路,让很多想法成为可能。

2 Flutter相关知识介绍

首先,我们来回顾一下flutter编译相关的一些知识。

2.1 Flutter编译流程

如上图,flutter在编译时,首先由编译前端将dart代码转换为中间文件app.dill,然后在debug模式下,将app.dill转换为kernel_blob.bin(其实这个文件就是app.dill改了个名字),在release模式下,app.dill被转换为framework或者so。

Flutter的aop就是对app.dill进行修改实现的。下面我们先来了解一下app.dill文件。

2.2 app.dill文件

原文链接:【https://www.infoq.cn/article/Udy0OLJQMNEyzklg5FQZ】。未经作者许可,禁止转载。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章