pre-dexing is useful when you recompile after a code change in your project only. All your dependencies are pre-dexed and only need to be merged in when your project's code is dexed.
So yes there is a performance hit on the first build as pre-dexing is slower than just running dex on the whole code, but incremental changes should compile faster. When a library code changes only that library is redexed and then remerged in the final dex. I would recommend that for cases where you only do full build (on a CI server for instance), you disable pre-dexing through an env var to get the best performance and keep pre-dexing on when doing dev work. On Tue, Jan 28, 2014 at 7:02 PM, Benjamin Cooley <[email protected]>wrote: > Xavier, what is the value of predexing? is it for the incremental dex's? > (I ask because we still see a performance degradation with predexing on vs > off) > > > On Thursday, January 23, 2014 2:22:03 PM UTC-8, Xavier Ducrohet wrote: > >> Requires: >> Gradle 1.10 >> Studio 0.4.3 >> Build Tools 19.0.0+ >> >> New features and fixes: >> - Fixed issue 64302: Add renderscript support mode jar to the >> dependencies in the IDE model. >> - Fixed issue 64094: buildConfigField can now replace previous values >> inside the same type/flavors. >> - Add support for NDK prebuilts in library projects. >> - Parallelize pre-dexing to speed up clean builds. >> - Incremental dexing re-enabled (though it'll be automatically disabled >> in some builds for some cases that dx doesn't support yet.) >> - Added 'provided' dependency scope for compile only (not packaged) >> dependencies. >> Additional scope per buildtype and flavors are also available >> (debugProvided, myFlavorProvided,etc...) >> - Lint improvements: >> * New "lintVital" task, run automatically as part of assembling >> release variants, which checks only fatal-severity issues >> * Replace Java parser in lint with ECJ; must faster and fixes bug >> where lint could hang on certain source constructs >> * Lint HTML report now writes links to source files and images as URLs >> relative to the report location >> - Variant API improvements: >> * getPreBuild() returns the prebuild task for the variant >> * getSourceSets() returns the sorted sourcesets for the task, from >> lower to higher priority >> * createZipAlignTask(String taskName, File inputFile, File outputFile) >> This creates and return a new zipalign task. Useful if you have a >> custom plugin providing custom signing of APKs. >> This also makes the assemble task depend on the new zipalign task, >> and wires variant.getOutputFile() to return the result of the zipalign task. >> * project.android.registerJavaArtifact() now receives a Configuration >> object to pass the dependencies to the IDE. See artifactApi sample. >> >> >> -- >> Xavier Ducrohet >> Android SDK Tech Lead >> Google Inc. >> http://developer.android.com | http://tools.android.com >> >> Please do not send me questions directly. Thanks! >> > -- > You received this message because you are subscribed to the Google Groups > "adt-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > -- Xavier Ducrohet Android SDK Tech Lead Google Inc. http://developer.android.com | http://tools.android.com Please do not send me questions directly. Thanks! -- You received this message because you are subscribed to the Google Groups "adt-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
