Flutter Aspectd 使用

1 需求背景

AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。在java 中有经典的aspectJ ,而在flutter 中则有aspectd.

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

2 aspectd 使用

图片来源于aspectd ,侵删
图片来源于aspectd ,侵删

上图所示为aspectd 的作用流程。具体使用方式稍微有点麻烦.下面咱们来看下

1、aspectd下载
git clone git@github.com:XianyuTech/aspectd.git
2、分支切换

根据你本地的flutter 环境切到对应的aspectd 的分支上,因为aspectd 也是根据flutter 版本分支不同而有不同分支的。
在这里插入图片描述

3、aspectd 安装

aspectd需要
1.切换到flutter的git目录:

cd ${path-for-git-flutter}

2.将aspectd源码中的git patch文件合并到flutter源码工程中,合并git patch:

windows:
git am --reject --whitespace=fix aspectd\0001-aspectd.patch

mac:
git apply --3way ~/Github/aspectd/0001-aspectd.patch

3.删除原有的的flutter编译工具:

rm bin/cache/flutter_tools.stamp

4.重新构建新的flutter编译工具:

flutter doctor -v
4、aspectd demo 运行

到aspectd源码目录的example目录下执行:

flutter run --debug --verbose

如果能成功运行起来,那就说明aspectd 基本上成功了。

ps: 但是要想hook 生效,还得到目录
aspectd\lib\src\flutter_frontend_server 下面看有没有存在frontend_server.dart.snapshot 文件。

pps:建议使用flutter v1.22.5 及以上版本,因为低版本的aspectd 对于window 系统不太友好,经常出错。

参考资料:
Beike AspectD 的原理及运用
Flutter aspectd入门指引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值