Skip to content

Commit f753405

Browse files
committed
modify code structure
Previously, we needed to customize the package_ config.ymal, no need now
1 parent 5ad6d6a commit f753405

14 files changed

Lines changed: 1156 additions & 276 deletions

CHANGELOG.md

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,32 @@
1212

1313
## 0.0.4
1414

15-
* release for flutter 2.10.1
15+
* release for flutter 2.10.1
16+
17+
## flutter2.10.1
18+
19+
* update for flutter 2.10.1
20+
21+
## flutter3.0.0
22+
23+
* update for flutter 3.0.0
24+
* add try catch inject
25+
* add extension support
26+
27+
28+
## flutter3.1.0
29+
30+
* update for flutter 3.1.0
31+
32+
33+
## flutter3.1.0.fix2
34+
35+
* fix bug mixin not work
36+
* fix bug dispatchEvent inject not work
37+
* add dump_kernel.dart.snapshot
38+
* add mixin demo
39+
40+
41+
## flutter3.1.0.fix3
42+
* change folder
43+
* old compile need update some code in dart-sdk,now change it instead

README.md

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,31 @@ flutter_macos_stable/bin/cache/dart-sdk/bin/snapshots/frontend_server.dart.snaps
1010

1111

1212
# 编译之前
13-
1. 下载最新的dart-sdk,具体下载方法可以查看https://github.com/dart-lang/sdk/wiki/Building,这里建议用depot_tools的方式下载,因为直接下载github上的sdk,third_party目录下面不会有你需要的包
13+
1. 下载最新的dart-sdk,具体下载方法可以查看 https://github.com/dart-lang/sdk/wiki/Building
14+
15+
这里建议用depot_tools的方式下载,因为直接下载github上的sdk,third_party目录下面不会有你需要的包
1416
2. 将dart-sdk切换到flutter对应的版本,一般情况下flutter对应的dart版本是可以通用的,但是如果flutter有大版本升级,需要切换到对应的版本.
15-
3. 修改rebased_package_config.json中依赖库rootUri指向你现在的dart-sdk绝对路径
1617

17-
# 关于ide代码报错
18-
1. 并不影响程序的编译,因为包的依赖关系是在rebased_package_config.json的,
19-
2. 如果不想看到报错或需要代码提示功能,可以rebased_package_config.json替换.dart_tool/package_config.json
2018

2119
# 编译方式
22-
dart --deterministic --no-sound-null-safety --packages=rebased_package_config.json --snapshot=frontend_server.dart.snapshot --snapshot-kind=kernel lib/starter.dart
20+
dart --deterministic --no-sound-null-safety --snapshot=frontend_server.dart.snapshot --snapshot-kind=kernel bin/starter.dart
2321

24-
dart --deterministic --no-sound-null-safety --packages=rebased_package_config.json --snapshot=dump_kernel.dart.snapshot --snapshot-kind=kernel lib/dump_kernel.dart
22+
dart --deterministic --no-sound-null-safety --snapshot=dump_kernel.dart.snapshot --snapshot-kind=kernel lib/dump_kernel.dart
2523

2624
# 测试编译
2725
1. 生成kernel_snapshot.d,先用普通方法run一下example,在example/.dart_tool/flutter_build下面会有生成编译临时的文件
2826

2927
2. 执行下面命令测试(注意目录替换)):
3028

3129

32-
3330
## 编译aot dill
3431
dart run frontend_server.dart.snapshot --sdk-root /Users/lixin/Documents/flutter_macos_stable/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --target=flutter --aot --tfa --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
3532

3633
## 编译运行时dill
3734
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
3835

3936
## 测试aot编译成二进制
40-
/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
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
4138

4239
## dill 文件注入成功检测
4340
dart run dump_kernel.dart.snapshot app.dill injected.out.dill.txt
@@ -46,7 +43,7 @@ dart run dump_kernel.dart.snapshot app.dill injected.out.dill.txt
4643
# 替换flutter中的frontend_server.dart.snapshot
4744
1.将新编译的frontend_server.dart.snapshot覆盖 flutter_macos_stable/bin/cache/artifacts/engine/darwin-x64/frontend_server.dart.snapshot
4845

49-
2.将新编译的frontend_server.dart.snapshot覆盖 /Users/lixin/Documents/flutter_macos_stable/bin/cache/dart-sdk/bin/snapshots
46+
2.将新编译的frontend_server.dart.snapshot覆盖 flutter_macos_stable/bin/cache/dart-sdk/bin/snapshots
5047

5148
# 测试运行
5249
cd example

README2.md

Lines changed: 0 additions & 4 deletions
This file was deleted.

analysis_options.yaml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# This file configures the static analysis results for your project (errors,
2+
# warnings, and lints).
3+
#
4+
# This enables the 'recommended' set of lints from `package:lints`.
5+
# This set helps identify many issues that may lead to problems when running
6+
# or consuming Dart code, and enforces writing Dart using a single, idiomatic
7+
# style and format.
8+
#
9+
# If you want a smaller set of lints you can change this to specify
10+
# 'package:lints/core.yaml'. These are just the most critical lints
11+
# (the recommended set includes the core lints).
12+
# The core lints are also what is used by pub.dev for scoring packages.
13+
14+
include: package:lints/recommended.yaml
15+
16+
# Uncomment the following section to specify additional rules.
17+
18+
# linter:
19+
# rules:
20+
# - camel_case_types
21+
22+
# analyzer:
23+
# exclude:
24+
# - path/to/excluded/files/**
25+
26+
# For more information about the core and recommended set of lints, see
27+
# https://dart.dev/go/core-lints
28+
29+
# For additional information about configuring this file, see
30+
# https://dart.dev/guides/language/analysis-options

lib/starter.dart renamed to bin/starter.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
library aspect_frontend_server;
21
// ignore_for_file: import_of_legacy_library_into_null_safe
32

43
import 'dart:io';
54
import 'package:args/args.dart';
5+
import 'package:dydart/aspect_frontend_server.dart';
66

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

1010
Future<void> main(List<String> args) async {
1111
try {
1212
ArgResults options = frontend.argParser.parse(args);
13-
frontend.FrontendCompiler compiler = frontend.FrontendCompiler(stdout,
13+
frontend.FrontendCompiler compiler = FrontendCompilerProxy(stdout,
1414
printerFactory: frontend.BinaryPrinterFactory(),
1515
//添加注入逻辑
1616
transformer: AspectAopTransformer(),

frontend_server.dart.snapshot

38.4 KB
Binary file not shown.

lib/aspect_frontend_server.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
library aspect_frontend_server;
2+
3+
export 'transformers.dart';

0 commit comments

Comments
 (0)