tree f3cc0b567c62f1359fb7b5f9badb4c6fe183891b
parent 3a8e191c9eaf0015544c998220edd9d5668fe662
author Ben Konyi <bkonyi@google.com> 1790711788 +0000
committer GitHub <noreply@github.com> 1790711788 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJqvBlbCRC1aQ7uu5UhlAAAGj4QAJegnXJa9Zyvs3gD6xv5aed0
 dOKSWx3xk9slRCa64+EowhKwAQFhZCF1IfAlwiHQdGYiFpgttchWkkCEGpUneFkZ
 CTnbnRI+OBHplFgMiK0Cr0funjH4/NHNTRhgp8djIrUJkFz7RqR3Te352a5lKXj0
 MqCUdPG4pg547bQ1kr4ZZyUpary+gcMYq7KgiTdpuEYjwsaMOry/WfOncOw8PVbO
 /ADjANxoW4c7noe0ERzWqK0h1wb0vclCRUh2brqPjdaJ4zHn7Zk9UIwk5Pc40EJe
 HPzjWFwOg12nYvhImKpYxA4rTqFL4wfP56T450311PPrlLQL6ZY7KKF5XRdR+UjT
 T65lcYCFRjgnm1jMMe2mFCKUudhNChcUrUTqTYcp9+65GAALXZzr7gp9e1FEVYVw
 CTtxCFBWL4KzCCeXyTILy2LLsMcAtHK13i9Ad0CzHP5Wd0Pyuu7wvkcab3yclV6I
 U2fjOFbObLtW2qCNhFGDb5Xh8M5U1L5c9GgSIdqjR6YHP1+8yEPklXdHTfKcaM56
 vaLlp5y8Sh61r3EBMEOAME4oh5BVIuMQZjQ+yuTtVvzfOSv7HkKq/LsdFXz04WQJ
 uiuT/zmwYNqyJtZK93q1gB4bOA5fHaf2jHdsO3FoMIyFlYMxKI+VNv7gvXIzcI5M
 bffU64q5n/wPGXANQaDp
 =DJph
 -----END PGP SIGNATURE-----
 

[flutter_tools] Lazily initialize AndroidSdk platform and build-tools discovery (#191972)

## Description

This PR optimizes `AndroidSdk` initialization by deferring expensive
synchronous filesystem operations out of the constructor.

### Why this is needed now
As part of the modular dependency injection migration
([#190724](https://github.com/flutter/flutter/pull/190724)), context
objects like `AndroidContext` are created upfront during
`ToolDependencies.bootstrap` / runner initialization rather than via the
old global ambient context (`AppContext`).

Previously, `AndroidSdk` was initialized lazily only when a command or
service queried `globals.androidSdk` or `context.get<AndroidSdk>()`.
With upfront `AndroidContext` creation, `AndroidSdk.locateAndroidSdk()`
runs on tool startup for every command. Because the `AndroidSdk`
constructor eagerly executed `reinitialize()`, it performed synchronous
directory listings across `build-tools` and `platforms` directories and
read `build.prop` files on disk. This introduced unnecessary disk I/O
and latency to tool startup, including for commands completely unrelated
to Android (such as `flutter config` or iOS-specific workflows).

### Changes
- Defers synchronous scanning of build-tools and platform directories
(`reinitialize()`) out of the `AndroidSdk` constructor so that object
instantiation is fast and side-effect free.
- `sdkVersions` and `latestVersion` are evaluated lazily on first
access.
- Retains `_fileSystem` on the instance so that explicit calls to
`reinitialize()` continue to refresh platform and version state with the
expected filesystem.

## Related Issues
Part of [#47161](https://github.com/flutter/flutter/issues/47161)
(flutter_tools modular dependency injection migration).

## Tests
- Updated existing test in
`packages/flutter_tools/test/general.shard/android/android_sdk_test.dart`
(`constructing an AndroidSdk handles no matching lines in build.prop`)
to access `sdk.latestVersion` so that `build.prop` parsing
error-handling is executed during lazy initialization.
- Added unit tests verifying:
- Constructor instantiation does not initialize `sdkVersions` or
`latestVersion` or scan platform directories.
- `sdkVersions` and `latestVersion` evaluate lazily on first access
across independent instances.
- Calling `reinitialize()` updates `sdkVersions` and `latestVersion` and
correctly falls back to stored `_fileSystem`.