本文迁移自旧站,保留当时的学习记录;涉及版本与实践结论的内容会在后续复查中逐步更新。
Gradle
什么是Gradle
Gradle是一款基于Apache的Ant和Maven概念的项目自动化开源构建工具,是Android的主流构建工具
首先看看Unity导出的Android工程中的gradle文件在目录中的位置

Unity导出为Gradle工程时,Unity会创建拥有两个模块的Gradle工程
❗️launcher
作为启动unityLibrary模块的简单android应用,这个模块可以用别的android应用替换
❗️unityLibrary
unityLibrary包含了unity运行时以及资源和数据,这个模块作为一个库可以整合到任何一个Gradle项目中,
也就是说,Unity在导出到android后,自动为我们创建了一个简单的android工程,以及一个启动模块,和一个包含所有unity相关运行时、资源、数据的库模块,启动模块负责依赖库模块,并且启动它
图中编号对应的gradle文件:
- launcher模块级 build.gradle
- unityLibrary模块级 build.gradle
- 项目级 build.gradle
- 项目级 settings.gradle
launcher模块级 build.gradle
launcher模块是工程的启动模块
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
apply plugin: 'com.android.application'
dependencies { implementation project(':unityLibrary') }
android { compileSdkVersion 29 buildToolsVersion '30.0.2'
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
defaultConfig {
minSdkVersion 21
targetSdkVersion 29 applicationId 'xxx.xxx.xxx' ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' } versionCode 1101 versionName '1.101' }
aaptOptions { noCompress = ['.unity3d', '.ress', '.resource', '.obb', '.gitkeep'] ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~" }
signingConfigs { release { storeFile file('xxx/xx/xxx/xxx/xxx.keystore') storePassword 'xxx' keyAlias 'xxx' keyPassword 'xxx' } }
lintOptions { abortOnError false }
buildTypes { debug { minifyEnabled false useProguard false proguardFiles getDefaultProguardFile('proguard-android.txt') signingConfig signingConfigs.release jniDebuggable true } release { minifyEnabled false useProguard false proguardFiles getDefaultProguardFile('proguard-android.txt') signingConfig signingConfigs.release } }
packagingOptions { doNotStrip '*/armeabi-v7a/*.so' doNotStrip '*/arm64-v8a/*.so' }
bundle {
language { enableSplit = false }
density { enableSplit = false }
abi { enableSplit = true } } }
|
unityLibrary模块级 build.gradle
和launcher其实没多大区别,以后再补充
项目级 build.gradle
也叫顶级build.gradle
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 29 30 31 32 33 34 35 36 37
|
allprojects { buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:4.1.0'
} } repositories { google() jcenter() flatDir { dirs "${project(':unityLibrary').projectDir}/libs" } maven { url "https://sdk.tapjoy.com/" } maven { url 'https://android-sdk.is.com/' } maven { url 'https://verve.jfrog.io/artifactory/verve-gradle-release' } maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" } maven { url 'https://artifact.bytedance.com/repository/pangle' } } }
task clean(type: Delete) { delete rootProject.buildDir }
|
项目级 settings.gradle
工程配置文件
该文件一般情况下不需要修改
1 2
| include ':launcher', ':unityLibrary'
|
关于Unity导出Android的常用Gradle文件就这些了,其实还有很多配置,但是掌握上文这些基本够用了
TO BE CONTINUE!