// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import '../base/context.dart'; import '../build_info.dart'; import '../project.dart'; /// The builder in the current context. AndroidBuilder? get androidBuilder { return context.get(); } abstract class AndroidBuilder { const AndroidBuilder(); /// Builds an AAR artifact. Future buildAar({ required FlutterProject project, required Set androidBuildInfo, required String target, required Future Function(FlutterProject, {required bool releaseMode}) generateTooling, String? outputDirectoryPath, required String buildNumber, }); /// Builds an APK artifact. Future buildApk({ required FlutterProject project, required AndroidBuildInfo androidBuildInfo, required String target, bool configOnly = false, }); /// Builds an App Bundle artifact. Future buildAab({ required FlutterProject project, required AndroidBuildInfo androidBuildInfo, required String target, bool validateDeferredComponents = true, bool deferredComponentsEnabled = false, bool configOnly = false, }); /// Returns a list of available build variant from the Android project. Future> getBuildVariants({required FlutterProject project}); /// Outputs app link related project settings into a json file. /// /// The return future resolves to the path of the json file. Future outputsAppLinkSettings(String buildVariant, {required FlutterProject project}); }