Unified analytics migration for CodeSizeAnalysis (#138351)

Part of tracker issue:
- https://github.com/flutter/flutter/issues/128251

This migrates the event being sent when the "--analyze-size" is used in a flutter invocation

The only file that had this event being sent from is `packages/flutter_tools/lib/src/base/analyze_size.dart`
This commit is contained in:
Elias Yishak 2023-11-14 15:23:40 -05:00 committed by GitHub
parent 449908670a
commit d5b67035b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 20 additions and 0 deletions

View File

@ -608,6 +608,7 @@ class AndroidGradleBuilder implements AndroidBuilder {
fileSystem: _fileSystem,
logger: _logger,
flutterUsage: _usage,
analytics: _analytics,
);
final String archName = androidBuildInfo.targetArchs.single.archName;
final BuildInfo buildInfo = androidBuildInfo.buildInfo;

View File

@ -5,6 +5,7 @@
import 'package:archive/archive.dart';
import 'package:archive/archive_io.dart';
import 'package:meta/meta.dart';
import 'package:unified_analytics/unified_analytics.dart';
import 'package:vm_snapshot_analysis/treemap.dart';
import '../convert.dart';
@ -20,8 +21,10 @@ class SizeAnalyzer {
required FileSystem fileSystem,
required Logger logger,
required Usage flutterUsage,
required Analytics analytics,
Pattern appFilenamePattern = 'libapp.so',
}) : _flutterUsage = flutterUsage,
_analytics = analytics,
_fileSystem = fileSystem,
_logger = logger,
_appFilenamePattern = appFilenamePattern;
@ -30,6 +33,7 @@ class SizeAnalyzer {
final Logger _logger;
final Pattern _appFilenamePattern;
final Usage _flutterUsage;
final Analytics _analytics;
String? _appFilename;
static const String aotSnapshotFileName = 'aot-snapshot.json';
@ -88,6 +92,7 @@ class SizeAnalyzer {
assert(_appFilename != null);
CodeSizeEvent(type, flutterUsage: _flutterUsage).send();
_analytics.send(Event.codeSizeAnalysis(platform: type));
return apkAnalysisJson;
}
@ -141,6 +146,7 @@ class SizeAnalyzer {
precompilerTrace: json.decode(precompilerTrace.readAsStringSync()) as Map<String, Object?>? ?? <String, Object?>{},
);
CodeSizeEvent(kind, flutterUsage: _flutterUsage).send();
_analytics.send(Event.codeSizeAnalysis(platform: kind));
return apkAnalysisJson;
}

View File

@ -680,6 +680,7 @@ abstract class _BuildIOSSubCommand extends BuildSubCommand {
fileSystem: globals.fs,
logger: globals.logger,
flutterUsage: globals.flutterUsage,
analytics: analytics,
appFilenamePattern: 'App'
);
// Only support 64bit iOS code size analysis.

View File

@ -94,6 +94,7 @@ class BuildLinuxCommand extends BuildSubCommand {
fileSystem: globals.fs,
logger: logger,
flutterUsage: globals.flutterUsage,
analytics: analytics,
),
needCrossBuild: needCrossBuild,
targetPlatform: targetPlatform,

View File

@ -70,6 +70,7 @@ class BuildMacosCommand extends BuildSubCommand {
logger: globals.logger,
appFilenamePattern: 'App',
flutterUsage: globals.flutterUsage,
analytics: analytics,
),
);
return FlutterCommandResult.success();

View File

@ -63,6 +63,7 @@ class BuildWindowsCommand extends BuildSubCommand {
logger: globals.logger,
appFilenamePattern: 'app.so',
flutterUsage: globals.flutterUsage,
analytics: analytics,
),
);
return FlutterCommandResult.success();

View File

@ -543,6 +543,9 @@ void main() {
expect(usage.events, contains(
const TestUsageEvent('code-size-analysis', 'ios'),
));
expect(fakeAnalytics.sentEvents, contains(
Event.codeSizeAnalysis(platform: 'ios')
));
}, overrides: <Type, Generator>{
FileSystem: () => fileSystem,
Logger: () => logger,
@ -550,6 +553,7 @@ void main() {
Platform: () => macosPlatform,
FileSystemUtils: () => FileSystemUtils(fileSystem: fileSystem, platform: macosPlatform),
Usage: () => usage,
Analytics: () => fakeAnalytics,
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreterWithBuildSettings(),
});

View File

@ -8,6 +8,7 @@ import 'package:flutter_tools/src/base/analyze_size.dart';
import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/base/logger.dart';
import 'package:flutter_tools/src/reporting/reporting.dart';
import 'package:unified_analytics/unified_analytics.dart';
import '../../src/common.dart';
@ -66,6 +67,7 @@ void main() {
logger: logger,
appFilenamePattern: RegExp(r'lib.*app\.so'),
flutterUsage: TestUsage(),
analytics: NoOpAnalytics(),
);
final Archive archive = Archive()
@ -150,6 +152,7 @@ void main() {
logger: logger,
appFilenamePattern: RegExp(r'lib.*app\.so'),
flutterUsage: TestUsage(),
analytics: NoOpAnalytics(),
);
final Archive archive = Archive()
@ -192,6 +195,7 @@ void main() {
logger: logger,
appFilenamePattern: RegExp(r'lib.*app\.so'),
flutterUsage: TestUsage(),
analytics: NoOpAnalytics(),
);
final Directory outputDirectory = fileSystem.directory('example/out/foo.app')
@ -235,6 +239,7 @@ void main() {
logger: logger,
appFilenamePattern: RegExp(r'lib.*app\.so'),
flutterUsage: TestUsage(),
analytics: NoOpAnalytics(),
);
final Directory outputDirectory = fileSystem.directory('example/out/foo.app')..createSync(recursive: true);