Support modularization in "hiddenapi list" tool

Previously, the "hiddenapi list" tool assumed that it was generating
flags for the whole bootclasspath and so did not need to differentiate
between classes that are provided by the bootclasspath fragment and
classes that are simply used by it. That meant that it would output
flags for this bootclasspath fragment plus all the other parts of the
bootclasspath on which this depends.

e.g. When generating the flags for i18n it would also output the flags
for art too.

This change adds the --dependency-stub-dex option to specify those dex
files that contain the API stubs provided by other bootclasspath
fragments and used by this one. A file specified in the
--dependency-stub-dex option is treated in a similar way to the files
added to the --boot-dex but its members are ignored when generating the
output file.

Test: - enable hiddenapi processing in migrate packages/modules/RuntimeI18N
      m out/soong/hiddenapi/hiddenapi-flags.csv
      - the previous command will verify that the I18N's generated
        all-stubs.flags matches the subset of monolithic flags that overlap.
      - check the I18N's generated all-stubs.flags to make sure it is
        complete.
Change-Id: I7307500eff1141d161625ec69696802ff3ab82a9
1 file changed