1、Android studio syn project with gradle files 按钮的功能

作用:按照Gradle文件同步引用库
实际的Androids项目,改某个文件几行代码,或者多个文件的Java代码没问题。但是当遇到以下问题时候,就得同步一下了:
1、Android项目包含有C++语言。
2、跨Module的项目。
总结一下:跨语言、跨Module的项目一般修改后,要同步一下。
2、Build目录下几个选项的区别
1、Make Project:编译Project下所有Module,一般是自上次编译后Project下有更新的文件,不生成apk。
2、Make Selected Modules:编译指定的Module,一般是自上次编译后Module下有更新的文件,不生成apk。
3、Clean Project:删除之前编译后的编译文件,并重新编译整个Project,比较花费时间,不生成apk。
4、Rebuild Project:先执行Clean操作,删除之前编译的编译文件和可执行文件,然后重新编译新的编译文件,不生成apk,这里效果其实跟Clean Project一样。
5、Build APK:前面4个选项都是编译,没有生成apk文件,如果想生成apk,需要点击Build APK。
6、Generate Signed APK:生成有签名的apk。
为了更清楚的知道clean和rebuild到底有什么区别,我把自己的一个小项目执行了一下这两个操作,并用对比软件对比了一下,红色部分是执行build操作的时候多出来的步骤。

大概意思:
:app:incrementalDebugJavaCompilationSafeguard
在incremental-safeguard目录下生成tag.txt,标识已经执行过task
:app:compileDebugJavaWithJavac
intermediates下生成classes文件夹,以及对应的dependency-cache文件夹,classes文件夹中包含之前已经解压的各个aar文件中的类,但是不包含libs下的jar包中的内容;同时还会生成一个tmp文件夹,内容为空;目录下不包括libs下的jar包内容
compile Debug Ndk UP-TO-DATE
编译调试NDK更新
:app:compileDebugSources
:app:incrementalDebugUnitTestJavaCompilationSafeguard UP-TO-DATE
编译调试单元测试的更新
:app:compileDebugUnitTestJavaWithJavac
:app:processDebugJavaRes UP-TO-DATE
res资源更新
:app:processDebugUnitTestJavaRes UP-TO-DATE
单元测试中res资源的更新
:app:compileDebugUnitTestSources
:app:incrementalDebugAndroidTestJavaCompilationSafeguard
:app:compileDebugAndroidTestJavaWithJavac
:app:compileDebugAndroidTestNdk UP-TO-DATE
单元测试NDK更新
:app:compileDebugAndroidTestSources
基本上build比clean多的就是会把NDK重新编译一遍,有更新的话就更新。以及一些资源文件的更新。基本上差不多。
这样看来,clean项目一般已经够用了,如果NDK以及资源文件有更改的话建议rebuild。
补充:
make 与 build 只编译,不生成apk
make 是编译改变的部分,build 是完全重新编译
build apk 是在make与build 的基础上生成apk
本文详细解析了Android Studio中同步项目与Gradle文件、构建目录下各项功能的区别,包括Make Project、Make Selected Modules、Clean Project、Rebuild Project等选项的作用及适用场景,帮助开发者理解并高效管理Android项目构建流程。
&spm=1001.2101.3001.5002&articleId=100675634&d=1&t=3&u=afabea25872a4971bed124cb193acc04)
1万+

被折叠的 条评论
为什么被折叠?



