Gradle will call aapt to process the png one at a time indeed. This allows us to only process the ones that have changed in further builds. Eclipse will call aapt on all the resources and will reprocess all the pngs, every time.
You can try to edit one png and see the compile time in Eclipse and Gradle. The resource compilation should take a lot longer in Eclipse (make sure the post compiler step is not disabled as this is when it happens). That said, calling aapt from Java, for every png, even in parallel is stupid and we want to fix this. Calling aapt just once would be possible but we would run into command line length limit if we passed all the files we want to process. Gradle stores file mostly in 3 locations: $PROJECT/build : this is the main output folder. If you have several module, they all have their own build folder. $ROOTPROJECT/.gradle : cache folder. Only one even when using 2+ modules. $HOME/.gradle: system wide gradle cache. On Tue, Feb 25, 2014 at 2:06 AM, Max K <[email protected]> wrote: > Hi, > > I'm currently working on a transisition from eclipse to Android Studio and > therefore also to gradle. By now I got my build scripts (multi-project > setup) working nicely. > I'm facing a big problem though. Some observations: > > - gradle calls aapt for each and every png file to optimize it > - It does this in parallel though (4 processes, 4 core CPU) > - ~1250 PNGs > - I use the same build tools in both eclipse and gradle (latest) > - I currently have to rely on the plugin 0.7.3 as 0.8+ breaks my > complete build (other issue) > - My anti virus has a policy set with one exception. The dev's > projects directory. > > Building my project in eclipse takes around ~2 miutes from a clean state. > Building the same in gradle takes around ~10 minutes. > I tracked it down to my antivirus using substential amount of CPU and HDD > power to scan (temporrary?) files. Comparing to the eclipse debug output, > it seems that eclipse does NOT call aapt for every single png file. > > Are my assumptions correct? Does gradle store the files it is working on > in a different directory? It seems that eclipse doesn't go outside of the > projects directory as my antivirus doesn't kick in. > Is there any setting I can set to limit gradle build execution to the > specific directory? > > Relevant log: > 10:24:28.937 [INFO] > [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] > :main:mergeDebugResources (Thread[main,5,main]) completed. Took 8 mins > 36.895 secs. > > Thanks. > Max. > > -- > 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.
