<!--
Copyright 2025 The Flutter Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd.
-->
## package:devtools_shared/devtools_shared.dart

This is a package shared between devtools_app, dds, and external
users accessing exported JSON files. This package contains structures
describing the format of JSON files e.g., HeapSample, memory structures
collected from the Dart VM (HeapSpace) and collected memory info from Android's
ADB (AdbMemoryInfo).

## package:devtools_shared/devtools_server.dart

An implementation of shared devtools server classes.

## Terms and Privacy

By using Dart DevTools, you agree to the
[Google Terms of Service](https://policies.google.com/terms).
