What happens after I run rebuild project in Androi

2019-06-20 05:20发布

问题:

The document http://www.jetbrains.com/idea/help/rebuilding-project.html?search=reb only tells me how to rebuild a project.

I don't know what does it mean to rebuild a project (Menu --> Build --> Rebuild Project), will it clean all edit cache? I find the size of the project reduced after I run rebuild project?

What does it mean to clear a project in Android Studio?

回答1:

In Android Studio, almost every voice in the build menu is mapped to a (possibly more than one) gradle action, where Gradle is the official build system for android. In particular, when you clean the project you are deleting some files from the build folder inside your app module, and when you select rebuild that's the equivalent of doing a gradle clean and build. For more information on the topic I suggest this course on Udacity, which you can view for free. It teaches you gradle and how it integrates with android studio.

https://www.udacity.com/course/gradle-for-android-and-java--ud867



回答2:

Android App is a Gradle project that uses com.android.application plugin. When you click rebuild button, clean button, or run button. It will run a series of command. Note that not all command is a Gradle Task. For example, run and debug button is going to run adb behind the scene.

In Rebuild button you're running multiple Gradle tasks. You can see it in the bottom right section of Android Studio.

In this case, Android Studio will run the following Gradle tasks: clean, :app:generateDebugSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:generateDebugAndroidTestSources, :app:compileDebugSources, :app:compileDebugUnitTestSources, :app:compileDebugAndroidTestSources

What you see before colon (:) is the module name. app:generateDebugSource is going to run generateDebugSource task on app module.

But what happened if you have multiple modules?

Apparently, Android Studio will run those task on each module.

Executing tasks: [clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:compileDebugSources, :app:compileDebugAndroidTestSources, :app:compileDebugUnitTestSources, :myandroidlib:generateDebugSources, :myandroidlib:mockableAndroidJar, :myandroidlib:prepareDebugUnitTestDependencies, :myandroidlib:generateDebugAndroidTestSources, :myandroidlib:compileDebugSources, :myandroidlib:compileDebugUnitTestSources, :myandroidlib:compileDebugAndroidTestSources]

will it clean all edit cache? I find the size of the project reduced after I run rebuild project ?

It will clean files in build folder. Usually, this is not included in a project (added in .gitignore). A build folder will have your final apk, an R files, a report file (like lint / JUnit test report), and generated classes (from Dagger / Retrofit). That's why it will reduce the size of your project.

BTW, what mean does it to clear project in Android studio?

If what you mean by clear project is clean project.

Android Studio will run these following tasks, which essentially deletes build folder.

Executing tasks: [clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :myandroidlib:generateDebugSources, :myandroidlib:mockableAndroidJar, :myandroidlib:prepareDebugUnitTestDependencies, :myandroidlib:generateDebugAndroidTestSources]