Files
FLYSN/app/build.gradle
2026-06-24 14:50:33 +08:00

609 lines
20 KiB
Groovy
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
apply plugin: 'com.android.application'
static def appName() {
return "FLYSN"
}
static def releaseTime() {
return new Date().format("yyyyMMdd_HHmmss", TimeZone.getDefault())
}
android {
namespace "com.fuying.sn"
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
minSdkVersion 26
targetSdkVersion 29
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', "x86"
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
dataBinding true
buildConfig true
aidl true
}
//多版本
productFlavors {
beta {
flavorDimensions "default"
versionCode 89
versionName "4.3"
// applicationId "com.fuying.sn"
applicationId "com.fying.sntest"
buildConfigField "String", "ROOT_URL", '"https://fxyapi.17hxg.com/android/"'
buildConfigField "String", "SCREEN_URL", '"https://fxyapi.17hxg.com:3018/wm/is_online"'
// buildConfigField "String", "WEBSOCKET_URL", '"wss://47.111.23.154:3018"'
}
official {
flavorDimensions "default"
versionCode 89
versionName "3.4.9"
applicationId "com.fuying.sn"
buildConfigField "String", "ROOT_URL", '"https://as.fuyingy.com/android/"'
buildConfigField "String", "SCREEN_URL", '"https://as.fuyingy.com:3018/wm/is_online"'
// buildConfigField "String", "WEBSOCKET_URL", '"wss://47.111.23.154:3018"'
}
}
//签名
signingConfigs {
zhanRui {
storeFile file("keystore/zhanxun.keystore")
storePassword "123456"
keyAlias "zhanxun"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
zhanRuiUserdebug {
storeFile file("keystore/zhanxunUserdebug.keystore")
storePassword "123456"
keyAlias "zhanxunUserdebug"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled false
}
teclastUnisoc {
storeFile file("keystore/TeclastUnisoc.keystore")
storePassword "123456"
keyAlias "TeclastUnisoc"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
teclastUnisocUserdebug {
storeFile file("keystore/TeclastUnisocUserDebug.jks")
storePassword "123456"
keyAlias "teclast"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
teclastMTK {
storeFile file("keystore/TeclastMTK.jks")
storePassword "123456"
keyAlias "TeclastMTK"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
mtk {
storeFile file("keystore/xueshibaoos.jks")
storePassword "123456"
keyAlias "xueshibaoos"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
mtkAndroid11 {
storeFile file("keystore/mtkAndroid11.jks")
storePassword "123456"
keyAlias "mtk11"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
unisoc {
storeFile file("keystore/Unisoc.jks")
storePassword "123456"
keyAlias "unisoc"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
G10P {
storeFile file("keystore/G10PMTK11.jks")
storePassword "123456"
keyAlias "G10PMTK11"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
Teclast8515 {
storeFile file("keystore/Teclast8515.keystore")
storePassword "123456"
keyAlias "Teclast8515"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
iPlay50SE {
storeFile file("keystore/iPlay50SE.keystore")
storePassword "123456"
keyAlias "iplay50se"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
Huaruian8768 {
storeFile file("keystore/Huaruian8768.jks")
storePassword "123456"
keyAlias "Huaruian8768"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
MT6789 {
storeFile file("keystore/MT6789.keystore")
storePassword "123456"
keyAlias "mt6789"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
}
buildTypes {
MT6789Debug.initWith(debug)
MT6789Debug {
manifestPlaceholders = [
AMAP_KEY: "63e2c211ad3bf161969582a58cf3c598"
]
buildConfigField "String", "platform", '"G12NL"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.MT6789
}
MT6789Release.initWith(release)
MT6789Release {
manifestPlaceholders = [
AMAP_KEY: "63e2c211ad3bf161969582a58cf3c598"
]
buildConfigField "String", "platform", '"G12NL"'
signingConfig signingConfigs.MT6789
}
Huaruian8768Debug.initWith(debug)
Huaruian8768Debug {
manifestPlaceholders = [
AMAP_KEY: "a4d58ed320000359544e99e1189438c7"
]
buildConfigField "String", "platform", '"G10J"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.Huaruian8768
}
Huaruian8768Release.initWith(release)
Huaruian8768Release {
manifestPlaceholders = [
AMAP_KEY: "a4d58ed320000359544e99e1189438c7"
]
buildConfigField "String", "platform", '"G10J"'
signingConfig signingConfigs.Huaruian8768
}
iPlay50SEDebug.initWith(debug)
iPlay50SEDebug {
manifestPlaceholders = [
AMAP_KEY: "adfc5099b8305d05bff03dcfd6579640"
]
buildConfigField "String", "platform", '"ipaly50"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.iPlay50SE
}
iPlay50SERelease.initWith(release)
iPlay50SERelease {
manifestPlaceholders = [
AMAP_KEY: "adfc5099b8305d05bff03dcfd6579640"
]
buildConfigField "String", "platform", '"ipaly50"'
signingConfig signingConfigs.iPlay50SE
}
unisocDebug.initWith(debug)
unisocDebug {
manifestPlaceholders = [
AMAP_KEY: "a45f52890415873d7fe97731b9ff27a7"
]
buildConfigField "String", "platform", '"ZhanRui"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.unisoc
}
unisocRelease.initWith(debug)
unisocRelease {
manifestPlaceholders = [
AMAP_KEY: "a45f52890415873d7fe97731b9ff27a7"
]
buildConfigField "String", "platform", '"ZhanRui"'
debuggable true
signingConfig signingConfigs.unisoc
}
mtk11Debug.initWith(debug)
mtk11Debug {
manifestPlaceholders = [
AMAP_KEY: "2faeb0552117ccbbeb2fd63afd5d71f3"
]
buildConfigField "String", "platform", '"MTK"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.mtkAndroid11
}
mtk11Release.initWith(release)
mtk11Release {
manifestPlaceholders = [
AMAP_KEY: "2faeb0552117ccbbeb2fd63afd5d71f3"
]
buildConfigField "String", "platform", '"MTK"'
signingConfig signingConfigs.mtkAndroid11
}
teclastMTKDebug.initWith(debug)
teclastMTKDebug {
manifestPlaceholders = [
AMAP_KEY: "4ba0125745b17d0c73a6638dcda43d2f"
]
buildConfigField "String", "platform", '"T30PRO"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.teclastMTK
}
teclastMTKRelease.initWith(release)
teclastMTKRelease {
manifestPlaceholders = [
AMAP_KEY: "4ba0125745b17d0c73a6638dcda43d2f"
]
buildConfigField "String", "platform", '"T30PRO"'
signingConfig signingConfigs.teclastMTK
}
G6Debug.initWith(debug)
G6Debug {
manifestPlaceholders = [
AMAP_KEY: "418069ea951c42cdaa39a4d2015f23b9"
]
buildConfigField "String", "platform", '"G6"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.G10P
}
G6Release.initWith(release)
G6Release {
manifestPlaceholders = [
AMAP_KEY: "418069ea951c42cdaa39a4d2015f23b9"
]
buildConfigField "String", "platform", '"G6"'
signingConfig signingConfigs.G10P
}
G13Debug.initWith(debug)
G13Debug {
manifestPlaceholders = [
AMAP_KEY: "418069ea951c42cdaa39a4d2015f23b9"
]
buildConfigField "String", "platform", '"G13"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.G10P
}
G13Release.initWith(release)
G13Release {
manifestPlaceholders = [
AMAP_KEY: "418069ea951c42cdaa39a4d2015f23b9"
]
buildConfigField "String", "platform", '"G13"'
signingConfig signingConfigs.G10P
}
Teclast8515Debug.initWith(debug)
Teclast8515Debug {
manifestPlaceholders = [
AMAP_KEY: "29db21d44be7ae2cadb6ea7189ebec72"
]
buildConfigField "String", "platform", '"8515"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.Teclast8515
}
Teclast8515Release.initWith(release)
Teclast8515Release {
manifestPlaceholders = [
AMAP_KEY: "29db21d44be7ae2cadb6ea7189ebec72"
]
buildConfigField "String", "platform", '"8515"'
signingConfig signingConfigs.Teclast8515
}
//m40se
teclastUnisocdebug.initWith(zhanRuiDebug)
teclastUnisocdebug {
manifestPlaceholders = [
AMAP_KEY: "ef180363f53f3ea07af84be26b797f5d"
]
buildConfigField "String", "platform", '"M40SE"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.teclastUnisoc
}
teclastUnisocrelease.initWith(zhanRuiDebug)
teclastUnisocrelease {
manifestPlaceholders = [
AMAP_KEY: "ef180363f53f3ea07af84be26b797f5d"
]
buildConfigField "String", "platform", '"M40SE"'
signingConfig signingConfigs.teclastUnisoc
}
teclastUnisocUserdebug.initWith(zhanRuiDebug)
teclastUnisocUserdebug {
manifestPlaceholders = [
AMAP_KEY: "a89c464a7e619791d65bf683602b9e30"
]
buildConfigField "String", "platform", '"M40SE"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.teclastUnisocUserdebug
}
zhanRuiDebug.initWith(debug)
zhanRuiDebug {
manifestPlaceholders = [
AMAP_KEY: "63d3bf78053d530926309bb25e007e1a"
]
buildConfigField "String", "platform", '"ZhanRui"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.zhanRui
}
zhanRuiRelease.initWith(release)
zhanRuiRelease {
manifestPlaceholders = [
AMAP_KEY: "63d3bf78053d530926309bb25e007e1a"
]
buildConfigField "String", "platform", '"ZhanRui"'
signingConfig signingConfigs.zhanRui
}
zhanRuiUserdebugReleas.initWith(debug)
zhanRuiUserdebugReleas {
manifestPlaceholders = [
AMAP_KEY: "4ebbc3a36c028f6749fed5257f17c77e"
]
buildConfigField "String", "platform", '"ZhanRui"'
signingConfig signingConfigs.zhanRuiUserdebug
}
debug {
buildConfigField "String", "platform", '"MTK"'
versionNameSuffix "-debug"
manifestPlaceholders = [
AMAP_KEY: "9b4bdfa60aaacaf490356fc2e4e3ad0a"
]
//Zipalign优化
zipAlignEnabled true
minifyEnabled false
signingConfig signingConfigs.mtk
}
release {
buildConfigField "String", "platform", '"MTK"'
manifestPlaceholders = [
AMAP_KEY: "9b4bdfa60aaacaf490356fc2e4e3ad0a"
]
//Zipalign优化
zipAlignEnabled true
//混淆
minifyEnabled false
//前一部分代表系统默认的android程序的混淆文件该文件已经包含了基本的混淆声明后一个文件是自己的定义混淆文件
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
//签名
signingConfig signingConfigs.mtk
}
}
// Add application variant configuration here instead
applicationVariants.all { variant ->
variant.outputs.each { output ->
def buildType = variant.buildType.name
def fileName = ""
if (buildType.contains("debug")) {
fileName = "${appName()}_V${defaultConfig.versionName}_${releaseTime()}.apk"
} else {
fileName = "${appName()}_${variant.versionCode}_V${variant.versionName}_${releaseTime()}_${buildType}.apk"
}
output.outputFileName = fileName
}
}
}
dependencies {
// implementation fileTree(dir: 'libs', include: ['*.jar'])
compileOnly files('libs/framework.jar')
implementation project(path: ':FlycoTabLayoutZ_Lib')
//implementation 'com.android.support:multidex:1.0.3'
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
//okhttp
implementation 'com.squareup.okhttp3:okhttp:4.8.1'
//Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.retrofit2:adapter-rxjava3:2.9.0'
//RxJava
implementation 'io.reactivex.rxjava3:rxjava:3.0.0'
implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
//生命周期管理
implementation 'com.trello.rxlifecycle4:rxlifecycle:4.0.2'
implementation 'com.trello.rxlifecycle4:rxlifecycle-android:4.0.2'
implementation 'com.trello.rxlifecycle4:rxlifecycle-components:4.0.2'
implementation 'com.trello.rxlifecycle4:rxlifecycle-components-preference:4.0.2'
implementation 'com.trello.rxlifecycle4:rxlifecycle-android-lifecycle:4.0.2'
implementation 'com.jakewharton.rxbinding4:rxbinding:4.0.0'
implementation 'com.jeremyliao:live-event-bus-x:1.7.3'
//Google
implementation 'com.google.code.gson:gson:2.9.0'
implementation 'com.google.zxing:core:3.5.0'
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.13.2'
annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2'
//磁盘缓存
implementation 'com.jakewharton:disklrucache:2.0.2'
//Aria
implementation 'com.arialyy.aria:core:3.8.15'
annotationProcessor 'com.arialyy.aria:compiler:3.8.15'
//Java WebSocket
implementation "org.java-websocket:Java-WebSocket:1.5.3"
//MMKV
implementation 'com.tencent:mmkv-static:1.2.13'
//bugly
implementation 'com.tencent.bugly:crashreport:4.1.9.2'
// //腾讯移动推送 TPNS
// implementation 'com.tencent.tpns:tpns:1.4.4.2-release'
//阿里云推送
implementation 'com.aliyun.ams:alicloud-android-push:3.9.3'
// //百度地图
// implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.1.8'
//高德地图定位
implementation 'com.amap.api:location:5.1.0'
//工具类
implementation 'com.blankj:utilcodex:1.31.0'
//autosize会改变第三方view的大小
//https://github.com/JessYanCoding/AndroidAutoSize
//implementation 'me.jessyan:autosize:1.2.1'
implementation 'com.github.chrisbanes:PhotoView:2.0.0'
//沉浸状态栏
implementation 'com.gitee.zackratos:UltimateBarX:0.8.0'
//验证码输入
implementation 'com.jacktuotuo.customview:verificationcodeview:1.0.5'
// implementation 'com.king.view:splitedittext:1.0.0'
//动态权限框架
// implementation 'com.hjq:xxpermissions:6.0'
// 吐司框架https://github.com/getActivity/Toaster
implementation 'com.github.getActivity:Toaster:12.6'
}
// 在 dependencies 之后添加
project.afterEvaluate {
android.applicationVariants.all { variant ->
variant.javaCompileProvider.get().options.bootstrapClasspath = files(
file('libs/framework.jar'),
android.getBootClasspath()
)
}
}
tasks.register('deleteAppSourceWhiteList', Exec) {
// Windows 系统使用 cmd /c, Mac/Linux 使用 sh -c
if (System.properties['os.name'].toLowerCase().contains('windows')) {
commandLine 'cmd', '/c', 'adb', 'shell', 'settings', 'delete', 'system', 'app_source_white_list'
} else {
commandLine 'adb', 'shell', 'settings', 'delete', 'system', 'app_source_white_list'
}
// 即使命令执行失败也不中断构建(可选,防止因为没连手机导致编译失败)
ignoreExitValue = true
doLast {
println "ADB command executed: settings delete system app_source_white_list"
}
}
//preBuild {
// doLast {
// def imlFile = file(project.name + ".iml")
// println 'Change ' + project.name + '.iml order'
// try {
// def parsedXml = (new XmlParser()).parse(imlFile)
// def jdkNode = parsedXml.component[1].orderEntry.find { it.'@type' == 'jdk' }
// parsedXml.component[1].remove(jdkNode)
// def sdkString = "Android API " + android.compileSdkVersion.substring("android-".length()) + " Platform"
// println 'what' + sdkString
// new Node(parsedXml.component[1], 'orderEntry', ['type': 'jdk', 'jdkName': sdkString, 'jdkType': 'Android SDK'])
// groovy.xml.XmlUtil.serialize(parsedXml, new FileOutputStream(imlFile))
// } catch (FileNotFoundException e) {
// // nop, iml not found
// println "no iml found"
// }
// }
// //https://www.pianshen.com/article/93481144911/
// //使用系统编译后的framework.jar
//}