PreDexCache extends PreProcessCache<DxDexKey> { public static PreDexCache getCache() { return sSingleton; }  static PreDexCache getCache(); void preDexLibrary(
            @NonNull AndroidBuilder builder,
            @NonNull File inputFile,
            @NonNull File outFile,
            boolean multiDex,
            @NonNull DexOptions dexOptions,
            boolean optimize,
            @NonNull ProcessOutputHandler processOutputHandler);  }
@Test public void testReload_differentOptimize() throws IOException, ProcessException, InterruptedException { DexOptions dexOptions = new DefaultDexOptions(); runTwoBuilds(dexOptions, dexOptions, false, true); PreDexCache cache = PreDexCache.getCache(); assertEquals(0, cache.getMisses()); assertEquals(1, cache.getHits()); }
@Test public void testReload_differentDexOptions() throws IOException, ProcessException, InterruptedException { DexOptions dexOptions = new DefaultDexOptions(); DefaultDexOptions differentDexOptions = new DefaultDexOptions(); differentDexOptions.setAdditionalParameters(ImmutableList.of("--minimal-main-dex")); runTwoBuilds(dexOptions, differentDexOptions, false, false); PreDexCache cache = PreDexCache.getCache(); assertEquals(1, cache.getMisses()); assertEquals(0, cache.getHits()); }