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.

Reply via email to