只是项目笔记
根目录下的 build.gradle:
//buildscript 用来加载Gradle脚本自身需要使用的资源,可以声明的资源包括依赖项、第三方插件、maven仓库地址等
buildscript {
//repositories 添加使用的仓库
repositories {
maven {url 'https://developer.huawei.com/repo/'}
}
//dependencies 为了Gradle脚本执行获取依赖插件
dependencies {
//声明gradle插件,插件版本号为7.0.4
classpath 'com.android.tools.build:gradle:7.0.4'
classpath 'com.huawei.agconnect:agcp:1.6.1.300'
}
//subprojects 对所有Child Project的配置(settings.gradle可能设置多个project)
subprojects {
}
}
//allprojects 对所有project的配置
allprojects {
repositories {
maven {url 'https://developer.huawei.com/repo/'}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
app目录下的build.gradle
aaptOptions
lintOptions
多维度打包
多维度打包
buildType
// com.android.application 表示这是一个应用程序模块,可直接运行
// com.android.library 标识这是一个库模块,是依附别的应用程序运行
apply plugin: 'com.android.application'
//配置项目构建的各种属性
android {
compileSdkVersion PROP_COMPILE_SDK_VERSION.toInteger()
buildToolsVersion PROP_BUILD_TOOLS_VERSION
ndkVersion '21.3.6528147'
aaptOptions {
}
lintOptions {
}
defaultConfig {
//包名
applicationId "com.mana.afk"
minSdkVersion PROP_MIN_SDK_VERSION
targetSdkVersion PROP_TARGET_SDK_VERSION
versionCode Integer.parseInt(PROP_VERSION_CODE)
//显示给用户看的版本号
versionName PROP_VERSION_NAME
ndk {
//指定要ndk需要兼容的架构
abiFilters = []
//PROP_APP_ABI=armeabi-v7a
abiFilters.addAll(PROP_APP_ABI.split(':').collect{it as String})
// abiFilters "armeabi-v7a"
}
//Java版本配置
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
//根据flavorDimensions 和 productFlavors 配置打出不同包
flavorDimensions "dev"
productFlavors {
dev {
dimension "dev"
applicationId "com.mana.afk.dev"
minSdkVersion PROP_MIN_SDK_VERSION
}
mana {
dimension "dev"
applicationId "com.ldd.cnjy.guanwang"
minSdkVersion PROP_MIN_SDK_VERSION
manifestPlaceholders.put("APPLOG_SCHEME","rangersapplog.byAx6uYt".toLowerCase())
//packagingOptions 选项
//exclud过滤掉某些文件或者目录不添加到APK中,作用于APK,不能过滤aar和jar中的内容
//pickFirst匹配到多个相同文件,只提取第一个,作用于APK,不能过滤aar和jar中的文件
//doNotStrip可以设置某些动态库不被优化压缩。
//merge将匹配的文件都添加到APK中,和pickFirst有些相反,会合并所有文件
packagingOptions {
doNotStrip "*/armeabi-v7a/*.so"
doNotStrip "*/arm64-v8a/*.so"
doNotStrip "armeabi.so"
}
}
}
sourceSets{
main {
java.srcDir "src"
res.srcDir "res"
jniLibs.srcDir "libs"
manifest.srcFile "AndroidManifest.xml"
assets.srcDir "assets"
}
dev {
java.srcDir "product/dev/src"
res.srcDir "product/dev/res"
manifest.srcFile "product/dev/AndroidManifest.xml"
}
mana {
java.srcDir "product/mana/src"
res.srcDir "product/mana/res"
jniLibs.srcDir "product/mana/libs"
assets.srcDir "product/mana/assets"
manifest.srcFile "product/mana/AndroidManifest.xml"
}
}
// externalNativeBuild {
// cmake {
// path "../../../../CMakeLists.txt"
// }
// }
// 签名配置
signingConfigs {
//debug版本签名配置
debug {
if (project.hasProperty("RELEASE_STORE_FILE")) {
// 密钥文件路径
storeFile file(RELEASE_STORE_FILE)
// 密钥文件密码
storePassword RELEASE_STORE_PASSWORD
// key别名
keyAlias RELEASE_KEY_ALIAS
// key密码
keyPassword RELEASE_KEY_PASSWORD
}
}
//release版本签名配置
release {
if (project.hasProperty("RELEASE_STORE_FILE")) {
storeFile file(RELEASE_STORE_FILE)
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
}
// 指定生成安装文件的配置,常有两个子包:release,debug,注:直接运行的都是debug安装文件
buildTypes {
release {
//是否支持调试
debuggable false
// 关闭jni调试
jniDebuggable false
renderscriptDebuggable false
// 是否对代码进行混淆,true表示混淆
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
if (project.hasProperty("RELEASE_STORE_FILE")) {
signingConfig signingConfigs.release
}
}
debug {
debuggable true
jniDebuggable true
renderscriptDebuggable true
if (project.hasProperty("RELEASE_STORE_FILE")) {
signingConfig signingConfigs.debug
}
}
}
}
android.applicationVariants.all { variant ->
// delete previous files first
}
//仓库
repositories {
flatDir {
dirs 'product/mana/libs'
dirs 'product/huawei/libs'
}
}
//依赖
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':libcocos2dx')
implementation project(':appupdate')
implementation 'com.android.support:appcompat-v7:28.0.0'
huaweiImplementation 'com.huawei.hms:hwid:6.1.0.303'
huaweiImplementation 'com.huawei.hms:iap:6.2.0.300'
huaweiImplementation 'com.huawei.hms:game:6.1.0.301'
}