Android

Android Gradle配置 Gradle Config

Android Gradle配置 Gradle Config

Gradle是一種依賴管理工具可以配置在Android內,基於Groovy語言,面向Java應用為主。本篇將會介紹Android怎麼配置Gradle的各種操作,因為基本上都是固定不變的,Gradle如果運用自如也會對開發Android上有很大的幫助。

文章目錄

  1. 打包輸出的檔名
  2. 過濾指定Library的CPU
  3. 過濾指定的CPU
  4. 導入外掛
  5. 導入DataBinding&ViewBinding
  6. Debug Release版本的簽名
  7. Debug Release版本的參數
  8. 配置config.gradle
  9. 加快編譯速度gradle.properties
  10. 移除Lint檢查的error

1.打包輸出的檔名

android.applicationVariants.all { variant ->
    variant.outputs.all {
        def date = new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("GMT+08"))
        outputFileName = "{applicationId}{variant.buildType.name}_{versionName}{date}.apk"
    }
}

2.過濾指定Library的CPU

7種CPU(armeabi-v7a, arm64-v8a, armeabi, x86, x86_64, mips64, mips)
packagingOptions {
    exclude 'lib/x86/libopencv_java3.so'
    exclude 'lib/x86_64/libopencv_java3.so'
    exclude 'lib/mips64/libopencv_java3.so'
    exclude 'lib/mips/libopencv_java3.so'
}

3.過濾指定的CPU

ndk {
    abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}

4.導入外掛

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-kapt'
    id 'dagger.hilt.android.plugin'
}

5.導入DataBinding&ViewBinding

buildFeatures {
    dataBinding = true
    viewBinding = true
}

6.Debug Release版本的簽名

signingConfigs {
   release {
       //路徑是ProjectName\app\test.jks
       storeFile file("test.jks")
       keyAlias "test"
       keyPassword "qqq11111"
       storePassword "qqq11111"
   }
   debug {
       //路徑是ProjectName\app\test.jks
       storeFile file("test.jks")
       keyAlias "test"
       keyPassword "qqq11111"
       storePassword "qqq11111"
   }
}

//路徑是ProjectName\petpass.jks
storeFile file("../petpass.jks")

7.Debug Release版本的參數

要放在signingConfigs後面
buildTypes {
   release {
       //release參數
       buildConfigField('String', 'ServerAddress', "\"https://badgameshow.com/\"")

       // zipAlign優化
       zipAlignEnabled true

       //移除沒用的resource文件(要配合混淆才有用)
       shrinkResources true
       //混淆
       minifyEnabled true
       //混淆配置檔
       proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

       signingConfig signingConfigs.release
   }
   debug {
       //debug參數
       buildConfigField('String', 'ServerAddress', "\"https://badgameshow.com/flytest/\"")
       signingConfig signingConfigs.debug
   }
}

8.配置config.gradle

如果專案大起來有10個Module 同時用相同的Library 之後Library更新 就需要改10次
所以利用config.gradle 讓10個Module 都指向config.gradle 裡的Library 就可以解決改10次的問題

config.gradle教學

9.加快編譯速度gradle.properties

把這個註釋打開
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

org.gradle.parallel=true

//默認開啟 不用另外開
org.gradle.daemon=true

//使用Kotlin可以再添加 增量構建在Kotlin1.0.2以後版本支援
kotlin.incremental = true

10.移除Lint檢查的error

lintOptions.abortOnError = false

發表迴響