dart_eval 是一种基于 Dart AOT 动态执行 Dart 代码的技术,能够实现动态化(CodePush),支持 Flutter。它包含编译器和解释器,均使用 Dart 语言编写,并支持可扩展(如扩展 Flutter 支持)。
dart_eval 由两个 Repo 构成:
- dart_eval:提供 dart 代码动态执行能力。https://github.com/ethanblake4/dart_eval
- flutter_eval:基于 dart_eval,扩展 Flutter 代码动态化执行能力。https://github.com/ethanblake4/flutter_eval
- 预埋位置
- 安装命令:dart pub global activate dart_eval,命令安装在$HOME/.pub-cache/bin/目录
- 动态生成evc文件,dart_eval compile -o version_xxx.evc,上传服务器
参考
《Dart eval:Compiler 类》、
《Dart Analyzer:Declaration 实体》
《Dart eval:BridgeDeclaration 实体类》
《Dart eval:DeclarationOrBridge 实体类》
《Dart eval:DartCompilationUnit 实体类》
《Dart eval:Library 实体类》
《Dart import 语法》
《Dart Analyzer:ImportDirective 实体》
《Dart eval:exportGraph 概念》
《Dart eval:Program 类》
《Dart eval:compile 系列方法的调用链》
《Dart eval:Compiler populateLookupTablesForDeclaration》
《Dart Analyzer:TopLevelVariableDeclaration》
《Dart eval:compileIdentifierAsReference》
《Dart eval:CompilerContext 编译器上下文》
《Dart eval:compileIdentifier》
《Dart Analyzer:Identifier》