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】。未經作者許可,禁止轉載。

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