编译相关

编译相关

命令行编译

1
./gradlew build

加快gradle编译速度

法1:更改AS配置

  1. 配置.gradle文件夹目录(开启Gradle单独守护线程)

    • 在windows系统的C:\Users\用户名.gradle目录下创建gradle.properties文件(有直接用),然后添加以下内容,添加之后会在所有的项目中生效(有内容则并入),添加后全局生效

      1
      2
      3
      4
      org.gradle.daemon=true  // 开启线程守护,第一次编译时开线程,之后就不会再开了
      org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 // 配置编译时的虚拟机大小
      org.gradle.parallel=true // 开启并行编译,相当于多条线程再走
      org.gradle.configureondemand=true 启用新的孵化模式
    • 还可以在当前项目中的gradle.properties文件中添加以上内容,则只会在当前项目生效

  2. 修改android studio配置

    • Ctrl+Alt+S打开设置选项卡,找到Gradle选项,选中offline work,点击apply,如下

      Build,execution,Deploment-->Gradle

      1. 勾选Use local gradle distribution (Gradle home: 填入gradle本地路径)

      2. 勾选Offline work

    • Build,execution,Deploment-->Compiler

      1. 勾选Compile independent modules in parallel…
      2. Command-line Options:–offline
      3. 勾选Configure on demand
    • 设置网络代理,增加访问网络速度

    • 在具体开发module的build.gradle 文件中添加

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      dexOptions {
      //使用增量模式构建
      incremental true
      //最大堆内存
      javaMaxHeapSize "8g"
      //是否支持大工程模式
      jumboMode = true
      //预编译
      preDexLibraries = true
      //线程数
      threadCount = 8
      }
  3. 如果编译还是很慢的话,那只能添加内存条和固态硬盘了

法2:利用命令行脚本的方式编译(推荐)

  1. 在目标项目的根节点下创建文件c.bat(名字尽量短)–>构建脚本,内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@Echo Off

if /i "%1"=="" goto :default
if /i "%1"=="i" goto :install
if /i "%1"=="u" goto :uninstall

::执行实际的命令
goto :raw

::无参数情况下的默认执行命令
:default
gradlew iD
goto :eof

::实际命令
:raw
gradlew %1
goto :eof

::安装所有Debug版本的APK
:install
gradlew iD
goto :eof

::卸载所有版本的APK
:uninstall
gradlew uA
goto :eof
  1. 在AS控制台的命令行Terminal窗口输入刚才的文件名,回车,编译成功,然后打开应用(双击这个bat文件也可以运行)