DRAFT: introducing --dex-per-class option in D8.

Proposal to better support incremental compilation: for
recompiling N changed/affected files instead of running D8
on each of them separately, we run D8 on all of them and
split the result into separate DEX files.

After transformation the mapping from resulting resource into
the class is available via Resource.getClassDescriptor().

When written into directly, all dex files are named based on
the original class names, such that class com.blah.Foo will
be written into DEX file named com.blah.Foo.dex.

BUG=

Change-Id: I359a6c6399ea786662f0c2a1f9c8d4cae416bcbd
27 files changed
tree: 28591b6a9e555cfb094fc840966fe3e15f0168f4
  1. buildSrc/
  2. scripts/
  3. src/
  4. tests/
  5. third_party/
  6. tools/
  7. .gitignore
  8. AUTHORS
  9. build.gradle
  10. codereview.settings
  11. CONTRIBUTING.md
  12. copyAdditionalJctfCommonFiles.gradle
  13. LICENSE
  14. README.md
README.md

The R8 repo contains two tools.

  1. D8 is a dexer that converts java byte code to dex code.

  2. R8 is a java program shrinking and minification tool.