title: Does Flutter perform "Tree Shaking" / "Dart dead-code elimination" for Android/iOS release builds?
body: <p>Accoding to <a href="https://flutter.dev/docs/testing/build-modes" rel="noreferrer">Flutter's build modes</a>,</p>
  <blockquote>
  <p>Compilation is optimized for fast startup, fast execution, and <strong>small package sizes</strong>.</p>
  </blockquote>
  <p>What exactly does optimizing for <strong>small package sizes</strong> mean?</p>
  <p>For web apps, the doc states:</p>
  <blockquote>
  <p>The build is minified and <strong>tree shaking</strong> has been performed.</p>
  </blockquote>
  <p>Does Flutter perform dead-code elimination on Dart code for Android/iOS when building the app in release mode? If so, how?</p>
  <p><em>Comment:</em> When analyzing the generated Android release <code>apk</code> using <a href="https://flutter.dev/docs/perf/app-size#deeper-analysis-in-devtools" rel="noreferrer">Deeper analysis in DevTools
  </a>, it seems that dead code is not included. So at least for Android, it seems that Flutter performs dead-code elimination in release mode.</p>