422 lines
19 KiB
Groovy
422 lines
19 KiB
Groovy
apply plugin: 'com.android.application'
|
||
apply plugin: 'com.alibaba.arouter'
|
||
apply plugin: 'kotlin-android'
|
||
apply plugin: 'kotlin-android-extensions'
|
||
|
||
android {
|
||
compileSdkVersion rootProject.ext.android.compileSdkVersion
|
||
defaultConfig {
|
||
minSdkVersion rootProject.ext.android.minSdkVersion
|
||
targetSdkVersion rootProject.ext.android.targetSdkVersion
|
||
versionCode rootProject.versionCode as int
|
||
versionName rootProject.versionName
|
||
applicationId rootProject.ext.android.applicationId
|
||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||
|
||
javaCompileOptions {
|
||
annotationProcessorOptions {
|
||
arguments = [AROUTER_MODULE_NAME: project.getName()]
|
||
}
|
||
}
|
||
|
||
multiDexEnabled true
|
||
externalNativeBuild {
|
||
ndk {
|
||
// 设置支持的SO库架构
|
||
abiFilters "armeabi-v7a"
|
||
}
|
||
}
|
||
}
|
||
|
||
packagingOptions {
|
||
exclude 'META-INF/proguard/coroutines.pro'
|
||
exclude 'META-INF/*'
|
||
}
|
||
|
||
signingConfigs {
|
||
release {
|
||
keyAlias = 'CarLauncher'
|
||
storeFile file('../keystore/car_launcher.jks')
|
||
storePassword 'ZDauto123456'
|
||
keyPassword 'ZDauto123456'
|
||
}
|
||
}
|
||
buildTypes {
|
||
debug {
|
||
debuggable = true
|
||
minifyEnabled false
|
||
signingConfig signingConfigs.release
|
||
}
|
||
release {
|
||
minifyEnabled false
|
||
zipAlignEnabled false
|
||
shrinkResources false
|
||
signingConfig signingConfigs.release
|
||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||
}
|
||
}
|
||
compileOptions {
|
||
sourceCompatibility 1.8
|
||
targetCompatibility 1.8
|
||
}
|
||
|
||
sourceSets {
|
||
main {
|
||
manifest.srcFile 'src/main/AndroidManifest.xml'
|
||
}
|
||
launcher {
|
||
manifest.srcFile 'src/launcher/AndroidManifest.xml'
|
||
}
|
||
independent {
|
||
manifest.srcFile 'src/independent/AndroidManifest.xml'
|
||
}
|
||
e8xx {
|
||
manifest.srcFile 'src/e8xx/AndroidManifest.xml'
|
||
}
|
||
em4 {
|
||
manifest.srcFile 'src/em4/AndroidManifest.xml'
|
||
}
|
||
// 演示分支,暂时不需要这一项
|
||
// f8xxLauncherOnlineRelease {
|
||
// manifest.srcFile 'src/f8xxLauncherOnlineRelease/AndroidManifest.xml'
|
||
// }
|
||
}
|
||
|
||
flavorDimensions "site","product", "basic", "env"
|
||
|
||
productFlavors {
|
||
//独立app
|
||
independent {
|
||
dimension "basic"
|
||
// 是否启动位置服务
|
||
buildConfigField 'boolean', 'LAUNCH_LOCATION_SERVICE', 'false'
|
||
// 是否作为 launcher 运行
|
||
buildConfigField 'boolean', 'IS_LAUNCHER', 'false'
|
||
buildConfigField 'String', 'SOCKET_APP_ID', '\"com.mogo.launcher\"'
|
||
// 是否支持目的地导航策略
|
||
buildConfigField 'boolean', 'IS_SUPPORT_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH', 'true'
|
||
|
||
}
|
||
// launcher app
|
||
launcher {
|
||
dimension "basic"
|
||
// 是否启动位置服务
|
||
buildConfigField 'boolean', 'LAUNCH_LOCATION_SERVICE', 'true'
|
||
// 是否作为 launcher 运行
|
||
buildConfigField 'boolean', 'IS_LAUNCHER', 'true'
|
||
buildConfigField 'String', 'SOCKET_APP_ID', '\"com.mogo.launcher\"'
|
||
// 是否支持目的地导航策略
|
||
buildConfigField 'boolean', 'IS_SUPPORT_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH', 'false'
|
||
}
|
||
// f系列-分体机全系列,未细分
|
||
f8xx {
|
||
applicationId rootProject.ext.android.fLauncherApplicationId
|
||
dimension "product"
|
||
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
|
||
// 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0
|
||
buildConfigField 'int', 'CAR_MACHINE_TYPE', '0'
|
||
buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'true'
|
||
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue]
|
||
// 是否使用高德sdk自定义导航
|
||
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
|
||
// 是否支持换肤
|
||
buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true'
|
||
// 是否支持查询导航目的地车友
|
||
buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true'
|
||
// 是否支持桌面卡片刷新
|
||
buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'false'
|
||
}
|
||
// f系列-分体机
|
||
f80x {
|
||
applicationId rootProject.ext.android.fLauncherApplicationId
|
||
dimension "product"
|
||
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
|
||
// 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0
|
||
buildConfigField 'int', 'CAR_MACHINE_TYPE', '0'
|
||
buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'true'
|
||
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue]
|
||
// 是否使用高德sdk自定义导航
|
||
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
|
||
// 是否支持换肤
|
||
buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true'
|
||
// 是否支持查询导航目的地车友
|
||
buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true'
|
||
// 是否支持桌面卡片刷新
|
||
buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'false'
|
||
}
|
||
// e系列,采用Launcher方案
|
||
e8xx {
|
||
applicationId rootProject.ext.android.launcherApplicationId
|
||
dimension "product"
|
||
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
|
||
// 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0
|
||
buildConfigField 'int', 'CAR_MACHINE_TYPE', '0'
|
||
buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'true'
|
||
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.commonLauncherAmapApiValue]
|
||
// 是否使用高德sdk自定义导航
|
||
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
|
||
// 是否支持换肤
|
||
buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true'
|
||
// 是否支持查询导航目的地车友
|
||
buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true'
|
||
// 是否支持桌面卡片刷新
|
||
buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'false'
|
||
}
|
||
// 同上
|
||
em4 {
|
||
applicationId rootProject.ext.android.launcherApplicationId
|
||
dimension "product"
|
||
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
|
||
// 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0
|
||
buildConfigField 'int', 'CAR_MACHINE_TYPE', '0'
|
||
buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'true'
|
||
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.commonLauncherAmapApiValue]
|
||
// 是否使用高德sdk自定义导航
|
||
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
|
||
// 是否支持换肤
|
||
buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true'
|
||
// 是否支持查询导航目的地车友
|
||
buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true'
|
||
// 是否支持桌面卡片刷新
|
||
buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'false'
|
||
}
|
||
// e系列-2+32,对标D系列2+32,采用独立app的形式
|
||
em3 {
|
||
applicationId rootProject.ext.android.independentApplicationId
|
||
dimension "product"
|
||
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
|
||
// 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0
|
||
buildConfigField 'int', 'CAR_MACHINE_TYPE', '0'
|
||
buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'false'
|
||
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.commonIndependentAmapApiValue]
|
||
// 是否使用高德sdk自定义导航
|
||
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
|
||
// 是否支持换肤
|
||
buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true'
|
||
// 是否支持查询导航目的地车友
|
||
buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true'
|
||
// 是否支持桌面卡片刷新
|
||
buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'true'
|
||
}
|
||
// e系列-1+16,对标D系列1+16,采用独立app形式
|
||
em1 {
|
||
applicationId rootProject.ext.android.independentApplicationId
|
||
dimension "product"
|
||
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
|
||
// 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0
|
||
buildConfigField 'int', 'CAR_MACHINE_TYPE', '0'
|
||
buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'false'
|
||
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.commonIndependentAmapApiValue]
|
||
// 是否使用高德sdk自定义导航
|
||
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
|
||
// 是否支持换肤
|
||
buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true'
|
||
// 是否支持查询导航目的地车友
|
||
buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true'
|
||
// 是否支持桌面卡片刷新
|
||
buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'true'
|
||
}
|
||
// d系列
|
||
d8xx {
|
||
applicationId rootProject.ext.android.independentApplicationId
|
||
dimension "product"
|
||
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
|
||
// 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0
|
||
buildConfigField 'int', 'CAR_MACHINE_TYPE', '0'
|
||
buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'false'
|
||
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.commonIndependentAmapApiValue]
|
||
// 是否使用高德sdk自定义导航
|
||
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
|
||
// 是否支持换肤
|
||
buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true'
|
||
// 是否支持查询导航目的地车友
|
||
buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true'
|
||
// 是否支持桌面卡片刷新
|
||
buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'true'
|
||
}
|
||
// d系列 2 + 32
|
||
d80x {
|
||
applicationId rootProject.ext.android.independentApplicationId
|
||
dimension "product"
|
||
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
|
||
// 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0
|
||
buildConfigField 'int', 'CAR_MACHINE_TYPE', '0'
|
||
buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'false'
|
||
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.commonIndependentAmapApiValue]
|
||
// 是否使用高德sdk自定义导航
|
||
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
|
||
// 是否支持换肤
|
||
buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true'
|
||
// 是否支持查询导航目的地车友
|
||
buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true'
|
||
// 是否支持桌面卡片刷新
|
||
buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'true'
|
||
}
|
||
// d系列 1+16 版本
|
||
d82x {
|
||
applicationId rootProject.ext.android.independentApplicationId
|
||
dimension "product"
|
||
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
|
||
// 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0
|
||
buildConfigField 'int', 'CAR_MACHINE_TYPE', '0'
|
||
buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'false'
|
||
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.commonIndependentAmapApiValue]
|
||
// 是否使用高德sdk自定义导航
|
||
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
|
||
// 是否支持换肤
|
||
buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true'
|
||
// 是否支持查询导航目的地车友
|
||
buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true'
|
||
// 是否支持桌面卡片刷新
|
||
buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'true'
|
||
}
|
||
// 比亚迪
|
||
bydauto {
|
||
applicationId rootProject.ext.android.bydautoIndependentApplicationId
|
||
dimension "product"
|
||
buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false'
|
||
// 车机类型,主要用于区分自研车机还是别人家的车机,其他车机,比亚迪定为1
|
||
buildConfigField 'int', 'CAR_MACHINE_TYPE', '1'
|
||
buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'true'
|
||
manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.bydautoIndependentApiValue]
|
||
// 是否使用高德sdk自定义导航
|
||
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'true'
|
||
// 是否支持换肤
|
||
buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'false'
|
||
// 是否支持查询导航目的地车友
|
||
buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'false'
|
||
// 是否支持桌面卡片刷新
|
||
buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'false'
|
||
}
|
||
// 演示地点-顺义
|
||
shunyi{
|
||
dimension "site"
|
||
// 西迪obu
|
||
buildConfigField 'int', "OBU_TYPE", '1'
|
||
}
|
||
// 演示地点-苏州
|
||
suzhou{
|
||
dimension "site"
|
||
// 华砺智行obu
|
||
buildConfigField 'int', "OBU_TYPE", '2'
|
||
}
|
||
qa {
|
||
dimension "env"
|
||
buildConfigField 'int', 'NET_ENV', '2'
|
||
}
|
||
online {
|
||
dimension "env"
|
||
buildConfigField 'int', 'NET_ENV', '3'
|
||
}
|
||
demo {
|
||
dimension "env"
|
||
buildConfigField 'int', 'NET_ENV', '4'
|
||
}
|
||
}
|
||
|
||
packagingOptions {
|
||
exclude 'META-INF/io.netty.versions.properties'
|
||
}
|
||
|
||
sourceSets {
|
||
main {
|
||
res.srcDirs = ['src/main/res', 'src/main/res-night']
|
||
}
|
||
}
|
||
}
|
||
|
||
repositories {
|
||
flatDir {
|
||
dirs 'libs'
|
||
}
|
||
}
|
||
|
||
dependencies {
|
||
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
|
||
|
||
//Crash日志收集
|
||
implementation rootProject.ext.dependencies.crashSdk
|
||
implementation rootProject.ext.dependencies.androidxappcompat
|
||
implementation rootProject.ext.dependencies.arouter
|
||
implementation rootProject.ext.dependencies.boostmultidex
|
||
debugImplementation rootProject.ext.dependencies.debugleakcanary
|
||
releaseImplementation rootProject.ext.dependencies.releaseleakcanary
|
||
|
||
implementation rootProject.ext.dependencies.carcallprovider
|
||
implementation rootProject.ext.dependencies.carcall
|
||
|
||
implementation rootProject.ext.dependencies.mogologlib
|
||
compileOnly rootProject.ext.dependencies.adasapi
|
||
compileOnly rootProject.ext.dependencies.adasconfigapi
|
||
|
||
// implementation rootProject.ext.dependencies.modulepushbase
|
||
// launcherImplementation rootProject.ext.dependencies.modulepush
|
||
// independentImplementation rootProject.ext.dependencies.modulepushnoop
|
||
|
||
if (Boolean.valueOf(RELEASE)) {
|
||
implementation rootProject.ext.dependencies.mogocommons
|
||
implementation rootProject.ext.dependencies.modulecommon
|
||
implementation rootProject.ext.dependencies.mogobasewebsocketsdk
|
||
implementation rootProject.ext.dependencies.modulesearch
|
||
implementation rootProject.ext.dependencies.mogomoduleguide
|
||
implementation rootProject.ext.dependencies.mogomoduleauth
|
||
implementation rootProject.ext.dependencies.modulemedia
|
||
implementation rootProject.ext.dependencies.moduleservice
|
||
// implementation rootProject.ext.dependencies.moduleobu
|
||
implementation rootProject.ext.dependencies.modulesplash
|
||
implementation rootProject.ext.dependencies.moduleV2x
|
||
implementation rootProject.ext.dependencies.moduletanlu, {
|
||
exclude group: 'com.mogo.module', module: 'module-share'
|
||
}
|
||
implementation rootProject.ext.dependencies.moduletanluapi
|
||
implementation rootProject.ext.dependencies.mogomonitor
|
||
implementation rootProject.ext.dependencies.mogomoduleback
|
||
implementation rootProject.ext.dependencies.guideshow
|
||
} else {
|
||
implementation project(':foudations:mogo-commons')
|
||
implementation project(':foudations:mogo-base-websocket-sdk')
|
||
implementation project(':modules:mogo-module-common')
|
||
implementation project(':modules:mogo-module-search')
|
||
implementation project(':modules:mogo-module-authorize')
|
||
implementation project(':modules:mogo-module-media')
|
||
implementation project(':modules:mogo-module-service')
|
||
// implementation project(':modules:mogo-module-obu')
|
||
implementation project(':modules:mogo-module-splash')
|
||
implementation project(':modules:mogo-module-v2x')
|
||
implementation project(':modules:mogo-module-tanlu'), {
|
||
exclude group: 'com.mogo.module', module: 'module-share'
|
||
}
|
||
implementation project(':libraries:mogo-tanlu-api')
|
||
implementation project(':modules:mogo-module-monitor')
|
||
implementation project(':modules:mogo-module-back')
|
||
implementation project(':modules:mogo-module-guide')
|
||
}
|
||
|
||
apply from: "./functions/perform.gradle"
|
||
apply from: "./functions/baseservices.gradle"
|
||
apply from: "./functions/socketpush.gradle"
|
||
apply from: "./functions/gpssimulator.gradle"
|
||
apply from: "./functions/leftpanel.gradle"
|
||
apply from: "./functions/skin.gradle"
|
||
apply from: "./functions/crashreport.gradle"
|
||
apply from: "./functions/widgets.gradle"
|
||
apply from: "./functions/tts.gradle"
|
||
}
|
||
|
||
android.applicationVariants.all { variant ->
|
||
def buildTime = new Date().format("yyyyMMdd", TimeZone.getTimeZone("GMT+08:00"))
|
||
def flavor = variant.productFlavors.collect { it.name }.join('-')
|
||
|
||
variant.outputs.all { output ->
|
||
outputFileName = [
|
||
rootProject.applicationName,
|
||
"v${variant.versionName}",
|
||
buildTime,
|
||
flavor.length() > 0 ? "[${flavor}]" : "",
|
||
variant.buildType.name
|
||
].findAll { it.length() > 0 }.join('_') << ".apk"
|
||
}
|
||
}
|
||
|
||
apply from: "./regroup.gradle"
|