Skip to content

Commit d1496c4

Browse files
committed
release 3.3.10
1 parent f753405 commit d1496c4

8 files changed

Lines changed: 95 additions & 208 deletions

README.md

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,21 @@
44

55

66
# 懒人做法,一步到位
7-
下载frontend_server.dart.snapshot并覆盖 flutter_macos_stable/bin/cache/artifacts/engine/darwin-x64/frontend_server.dart.snapshot
8-
9-
flutter_macos_stable/bin/cache/dart-sdk/bin/snapshots/frontend_server.dart.snapshot
7+
下载frontend_server.dart.snapshot并覆盖 flutter_macos_stable/bin/cache/artifacts/engine/darwin-x64/frontend_server.dart.snapshot和flutter_macos_stable/bin/cache/dart-sdk/bin/snapshots/frontend_server.dart.snapshot
108

119

1210
# 编译之前
1311
1. 下载最新的dart-sdk,具体下载方法可以查看 https://github.com/dart-lang/sdk/wiki/Building
1412

1513
这里建议用depot_tools的方式下载,因为直接下载github上的sdk,third_party目录下面不会有你需要的包
14+
1615
2. 将dart-sdk切换到flutter对应的版本,一般情况下flutter对应的dart版本是可以通用的,但是如果flutter有大版本升级,需要切换到对应的版本.
1716

1817

1918
# 编译方式
2019
dart --deterministic --no-sound-null-safety --snapshot=frontend_server.dart.snapshot --snapshot-kind=kernel bin/starter.dart
2120

22-
dart --deterministic --no-sound-null-safety --snapshot=dump_kernel.dart.snapshot --snapshot-kind=kernel lib/dump_kernel.dart
21+
dart --deterministic --no-sound-null-safety --snapshot=dump_kernel.dart.snapshot --snapshot-kind=kernel bin/dump_kernel.dart
2322

2423
# 测试编译
2524
1. 生成kernel_snapshot.d,先用普通方法run一下example,在example/.dart_tool/flutter_build下面会有生成编译临时的文件
@@ -34,7 +33,7 @@ dart run frontend_server.dart.snapshot --sdk-root /Users/lixin/Documents/flutter
3433
dart run frontend_server.dart.snapshot --sdk-root /Users/lixin/Documents/flutter_macos_stable/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --target=flutter --no-print-incremental-dependencies -Dflutter.inspector.structuredErrors=true -DFLUTTER_WEB_AUTO_DETECT=true -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts --track-widget-creation --packages /Users/lixin/Documents/FlutterWorkspace/aspect_frontend_server/example/.dart_tool/package_config.json --output-dill app.dill --depfile /Users/lixin/Documents/FlutterWorkspace/aspect_frontend_server/example/.dart_tool/flutter_build/1f083b7beecc20d87dfa8f7e4ca58986/kernel_snapshot.d package:example/main.dart
3534

3635
## 测试aot编译成二进制
37-
flutter_macos_stable/bin/cache/artifacts/engine/android-arm64-release/darwin-x64/gen_snapshot --deterministic --snapshot_kind=app-aot-elf --elf=app.so --strip app.dill
36+
/Users/lixin/Documents/flutter_macos_stable/bin/cache/artifacts/engine/android-arm64-release/darwin-x64/gen_snapshot --deterministic --snapshot_kind=app-aot-elf --elf=app.so --strip app.dill
3837

3938
## dill 文件注入成功检测
4039
dart run dump_kernel.dart.snapshot app.dill injected.out.dill.txt
@@ -46,10 +45,7 @@ dart run dump_kernel.dart.snapshot app.dill injected.out.dill.txt
4645
2.将新编译的frontend_server.dart.snapshot覆盖 flutter_macos_stable/bin/cache/dart-sdk/bin/snapshots
4746

4847
# 测试运行
49-
cd example
50-
flutter clean
51-
flutter pub get
52-
flutter run
48+
cd example && flutter clean && flutter pub get && flutter run
5349

5450
### 该方法和aspectd的区别
5551
1. aspectd不支持flutter 2.5.4以上,本项目最高支持到2.10.1,再高没有测过
@@ -61,8 +57,6 @@ flutter run
6157
7. 为了性能优化inject方法限制必须是static的
6258
8. 添加对全局所有的catch进行注入
6359

64-
### 为什么用pragma注解,而不是自定义注解?
65-
本项目是在aot优化后再对字节码进行修改,aot优化后只有白名单中的注解才能被识别到,pragma是在白名单中的注解.
6660

6761

6862

bin/starter.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
import 'dart:io';
44
import 'package:args/args.dart';
5-
import 'package:dydart/aspect_frontend_server.dart';
5+
import 'package:aspect_frontend_server/aspect_frontend_server.dart';
66

77
import 'package:frontend_server/frontend_server.dart' as frontend;
8-
import 'package:dydart/proxy/frontend_server_proxy.dart';
8+
import 'package:aspect_frontend_server/proxy/frontend_server_proxy.dart';
99

1010
Future<void> main(List<String> args) async {
1111
try {

dump_kernel.dart.snapshot

30.8 KB
Binary file not shown.

frontend_server.dart.snapshot

-180 KB
Binary file not shown.

lib/utils.dart

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,17 +69,18 @@ class AopUtils {
6969
}
7070
if (node is FunctionType) {
7171
return FunctionType(
72-
deepCopyASTNodes(node.positionalParameters),
73-
deepCopyASTNode(node.returnType, isReturnType: true),
74-
Nullability.legacy,
75-
namedParameters: deepCopyASTNodes(node.namedParameters),
76-
typeParameters: deepCopyASTNodes(node.typeParameters),
77-
requiredParameterCount: node.requiredParameterCount,
78-
typedefType: deepCopyASTNode(node.typedefType,
79-
ignoreGenerics: ignoreGenerics));
72+
deepCopyASTNodes(node.positionalParameters),
73+
deepCopyASTNode(node.returnType, isReturnType: true),
74+
node.declaredNullability,
75+
namedParameters: deepCopyASTNodes(node.namedParameters),
76+
typeParameters: deepCopyASTNodes(node.typeParameters),
77+
requiredParameterCount: node.requiredParameterCount,
78+
// typedefType: deepCopyASTNode(node.typedefType,
79+
// ignoreGenerics: ignoreGenerics)
80+
);
8081
}
8182
if (node is TypedefType) {
82-
return TypedefType(node.typedefNode, Nullability.legacy,
83+
return TypedefType(node.typedefNode, node.declaredNullability,
8384
deepCopyASTNodes(node.typeArguments, ignoreGeneric: ignoreGenerics));
8485
}
8586
if (node is InterfaceType) {

0 commit comments

Comments
 (0)