Files
Launcher3-Q-Aoleyun/build.gradle
T
2026-06-30 10:34:43 +08:00

754 lines
24 KiB
Groovy

buildscript {
repositories {
google()
mavenCentral()
maven { url 'https://jitpack.io' }
maven { url 'https://maven.google.com' }
maven { url 'https://developer.huawei.com/repo/' }
maven { url 'https://developer.hihonor.com/repo' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
}
dependencies {
classpath GRADLE_CLASS_PATH
classpath PROTOBUF_CLASS_PATH
}
}
allprojects {
configurations.all {
resolutionStrategy {
force 'androidx.constraintlayout:constraintlayout:2.0.4'
force 'androidx.core:core:1.5.0'
//for targetSdkVersion 29
force 'androidx.activity:activity:1.2.2'
force 'androidx.lifecycle:lifecycle-livedata:2.3.1'
force 'androidx.lifecycle:lifecycle-livedata-core:2.3.1'
force 'androidx.lifecycle:lifecycle-runtime:2.3.1'
force 'androidx.lifecycle:lifecycle-viewmodel:2.3.1'
force 'androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.1'
force 'androidx.lifecycle:lifecycle-service:2.3.1'
force 'androidx.lifecycle:lifecycle-process:2.3.1'
force 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
force 'androidx.savedstate:savedstate:1.1.0'
force 'androidx.profileinstaller:profileinstaller:1.1.0'
force 'androidx.startup:startup-runtime:1.0.0'
force 'androidx.arch.core:core-runtime:2.1.0'
force 'androidx.sqlite:sqlite:2.1.0'
force 'androidx.sqlite:sqlite-framework:2.1.0'
force 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
}
}
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs.add('-Xbootclasspath/p:libs/framework.jar')
}
}
}
def appName() {
return "AoleyunLauncher3"
}
def releaseTime() {
return new Date().format("yyyyMMdd_HHmmss", TimeZone.getDefault())
}
final String ANDROID_TOP = "${rootDir}"
final String FRAMEWORK_PREBUILTS_DIR = "${ANDROID_TOP}/prebuilts/framework_intermediates/"
apply plugin: 'com.android.application'
apply plugin: 'com.google.protobuf'
android {
namespace "com.aoleyun.os"
compileSdkVersion COMPILE_SDK
buildToolsVersion BUILD_TOOLS_VERSION
defaultConfig {
minSdkVersion 26
targetSdkVersion 28
versionCode 203
versionName "1.6.0526"
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
lintOptions {
checkReleaseBuilds false
abortOnError false
}
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
dataBinding true
buildConfig true
aidl true
}
//签名
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
}
zhanRui12 {
storeFile file("keystore/zhanrui12.jks")
storePassword "123456"
keyAlias "zhanrui12"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
mtk {
storeFile file("keystore/xueshibaoos.jks")
storePassword "123456"
keyAlias "xueshibaoos"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
TeclastP20S {
storeFile file("keystore/MTKP20S.keystore")
storePassword "123456"
keyAlias "MTKP20S"
keyPassword "123456"
v2SigningEnabled false
}
zhanruiG10Z {
storeFile file("keystore/zhanruiG10Z.keystore")
storePassword "123456"
keyAlias "zhanruiG10Z"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
G10P {
storeFile file("keystore/G10PMTK11.jks")
storePassword "123456"
keyAlias "G10PMTK11"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
G11Userdebug {
storeFile file("keystore/G11Userdebug.keystore")
storePassword "123456"
keyAlias "G11Userdebug"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
teclast8183 {
storeFile file("keystore/TeclastMTK12.jks")
storePassword "123456"
keyAlias "TeclastMTK12"
keyPassword "123456"
v2SigningEnabled false
}
Huaruian8768 {
storeFile file("keystore/Huaruian8768.jks")
storePassword "123456"
keyAlias "Huaruian8768"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
T40Air {
storeFile file("keystore/T40Air.jks")
storePassword "123456"
keyAlias "T40Air"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
P50 {
storeFile file("keystore/P50TD.jks")
storePassword "123456"
keyAlias "P50TD"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
seewo {
storeFile file("keystore/aiud.keystore")
storePassword "s4HdJuphaiHhU7WY"
keyAlias "androidreleasekey"
keyPassword "JwUw2oV16rUjWLBC"
v1SigningEnabled true
v2SigningEnabled true
}
U1302 {
storeFile file("keystore/U1302.jks")
storePassword "123456"
keyAlias "u1302"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
G128T {
storeFile file("keystore/HuaruianG128T.jks")
storePassword "123456"
keyAlias "g128t"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
G122 {
storeFile file("keystore/6789U.p12")
storePassword "123456"
keyAlias "6789u"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
}
buildTypes {
G122Debug.initWith(debug)
G122Debug {
buildConfigField "String", "platform", '"MT6765"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.G122
}
G122Release.initWith(release)
G122Release {
buildConfigField "String", "platform", '"MT6765"'
signingConfig signingConfigs.G122
}
QualcommDebug.initWith(debug)
QualcommDebug {
buildConfigField "String", "platform", '"QualcommA"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.zhanRui
}
QualcommRelease.initWith(release)
QualcommRelease {
buildConfigField "String", "platform", '"QualcommA"'
signingConfig signingConfigs.zhanRui
}
G128TDebug.initWith(debug)
G128TDebug {
buildConfigField "String", "platform", '"G128T"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.G128T
}
G128TRelease.initWith(release)
G128TRelease {
buildConfigField "String", "platform", '"G128T"'
signingConfig signingConfigs.G128T
}
QZ15Debug.initWith(debug)
QZ15Debug {
buildConfigField "String", "platform", '"QZA15"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.U1302
}
QZ15Release.initWith(release)
QZ15Release {
buildConfigField "String", "platform", '"QZA15"'
signingConfig signingConfigs.U1302
}
seewoDebug.initWith(debug)
seewoDebug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.seewo
buildConfigField "String", "platform", '"seewo"'
}
seewoRelease.initWith(release)
seewoRelease {
signingConfig signingConfigs.seewo
buildConfigField "String", "platform", '"seewo"'
}
P50Debug.initWith(debug)
P50Debug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.P50
buildConfigField "String", "platform", '"P50TD"'
}
P50Release.initWith(release)
P50Release {
signingConfig signingConfigs.P50
buildConfigField "String", "platform", '"P50TD"'
}
T40AirDebug.initWith(debug)
T40AirDebug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.T40Air
buildConfigField "String", "platform", '"HL500"'
}
T40AirRelease.initWith(release)
T40AirRelease {
signingConfig signingConfigs.T40Air
buildConfigField "String", "platform", '"HL500"'
}
// AiUduDebug.initWith(debug)
// AiUduDebug {
// versionNameSuffix "-debug"
// debuggable true
// signingConfig signingConfigs.G10P
// buildConfigField "String", "platform", '"AUDG104"'
// }
//
// AiUduRelease.initWith(release)
// AiUduRelease {
// signingConfig signingConfigs.G10P
// buildConfigField "String", "platform", '"AUDG104"'
// }
Huaruian8768Debug.initWith(debug)
Huaruian8768Debug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.Huaruian8768
buildConfigField "String", "platform", '"MT8768"'
}
Huaruian8768Release.initWith(release)
Huaruian8768Release {
signingConfig signingConfigs.Huaruian8768
buildConfigField "String", "platform", '"MT8768"'
}
G11Debug.initWith(debug)
G11Debug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.G11Userdebug
buildConfigField "String", "platform", '"MTKG11"'
}
G11Release.initWith(release)
G11Release {
signingConfig signingConfigs.G11Userdebug
buildConfigField "String", "platform", '"MTKG11"'
}
YXPD1Debug.initWith(debug)
YXPD1Debug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.G10P
buildConfigField "String", "platform", '"YXPD1"'
}
YXPD1Release.initWith(release)
YXPD1Release {
signingConfig signingConfigs.G10P
buildConfigField "String", "platform", '"YXPD1"'
}
c2Debug.initWith(debug)
c2Debug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.teclast8183
buildConfigField "String", "platform", '"MTK8183"'
}
c2Release.initWith(release)
c2Release {
signingConfig signingConfigs.teclast8183
buildConfigField "String", "platform", '"MTK8183"'
}
G10PDebug.initWith(debug)
G10PDebug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.G10P
buildConfigField "String", "platform", '"G10P"'
}
G10PRelease.initWith(release)
G10PRelease {
signingConfig signingConfigs.G10P
buildConfigField "String", "platform", '"G10P"'
}
G104Debug.initWith(debug)
G104Debug {
buildConfigField "String", "platform", '"MTK11"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.G10P
}
G104Release.initWith(release)
G104Release {
buildConfigField "String", "platform", '"MTK11"'
signingConfig signingConfigs.G10P
}
zhanRuiDebug.initWith(debug)
zhanRuiDebug {
versionNameSuffix "-debug"
buildConfigField "String", "platform", '"ZhanRui"'
debuggable true
signingConfig signingConfigs.zhanRui
}
zhanRuiRelease.initWith(release)
zhanRuiRelease {
buildConfigField "String", "platform", '"ZhanRui"'
signingConfig signingConfigs.zhanRui
}
//userdebug rom使用这个版本
zhanRuiUserdebug.initWith(zhanRuiDebug)
zhanRuiUserdebug {
versionNameSuffix "-debug"
buildConfigField "String", "platform", '"ZhanRui"'
debuggable true
signingConfig signingConfigs.zhanRuiUserdebug
}
zhanRui12Debug.initWith(debug)
zhanRui12Debug {
versionNameSuffix "-debug"
buildConfigField "String", "platform", '"AH6016"'
debuggable true
signingConfig signingConfigs.zhanRui12
}
zhanRui12Release.initWith(release)
zhanRui12Release {
buildConfigField "String", "platform", '"AH6016"'
signingConfig signingConfigs.zhanRui12
}
TeclastP20SDebug.initWith(debug)
TeclastP20SDebug {
debuggable true
versionNameSuffix "-debug"
buildConfigField "String", "platform", '"P20S"'
signingConfig signingConfigs.TeclastP20S
}
TeclastP20SRelease.initWith(release)
TeclastP20SRelease {
buildConfigField "String", "platform", '"P20S"'
signingConfig signingConfigs.TeclastP20S
}
zhanruiG10ZDebug.initWith(debug)
zhanruiG10ZDebug {
buildConfigField "String", "platform", '"ZR6016"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.zhanruiG10Z
}
zhanruiG10ZRelease.initWith(release)
zhanruiG10ZRelease {
buildConfigField "String", "platform", '"ZR6016"'
signingConfig signingConfigs.zhanruiG10Z
}
debug {
buildConfigField "String", "platform", '"MTK"'
debuggable true
versionNameSuffix "-debug"
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.mtk
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null) {
def fileName = "${appName()}_${variant.versionCode}_V${variant.versionName}_${releaseTime()}_${productFlavors[0].name}.apk"
output.outputFileName = fileName
}
}
}
}
release {
buildConfigField "String", "platform", '"MTK"'
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.mtk
//将release版本的包名重命名,加上版本及日期
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = ""
if (outputFile != null) {
def fileName = "${appName()}_${variant.versionCode}_V${variant.versionName}_${releaseTime()}_${productFlavors[0].name}_${buildType.name}.apk"
output.outputFileName = fileName
}
}
}
}
}
// The flavor dimensions for build variants (e.g. aospWithQuickstep, aospWithoutQuickstep)
// See: https://developer.android.com/studio/build/build-variants#flavor-dimensions
flavorDimensions "app", "recents"
productFlavors {
aosp {
dimension "app"
applicationId 'com.aoleyun.os'
testApplicationId 'com.aoleyun.os.tests'
}
/*hide l3go*/
// l3go {
// dimension "app"
// applicationId 'com.aoleyun.os'
// testApplicationId 'com.aoleyun.os.tests'
// }
/*withQuickstep {
dimension "recents"
minSdkVersion 28
}
withQuickstepIconRecents {
dimension "recents"
minSdkVersion 28
}*/
withoutQuickstep {
dimension "recents"
}
}
// Disable release builds for now
// android.variantFilter { variant ->
// if (variant.buildType.name.endsWith('release')) {
// variant.setIgnore(true)
// }
//
// // Icon recents is Go only
// if (name.contains("WithQuickstepIconRecents") && !name.contains("l3go")) {
// variant.setIgnore(true)
// }
// }
sourceSets {
main {
res.srcDirs = ['res']
java.srcDirs = ['src', 'src_plugins']
manifest.srcFile 'AndroidManifest-common.xml'
proto {
srcDir 'protos/'
srcDir 'proto_overrides/'
}
}
debug {
manifest.srcFile "AndroidManifest.xml"
}
androidTest {
res.srcDirs = ['tests/res']
java.srcDirs = ['tests/src', 'tests/tapl']
manifest.srcFile "tests/AndroidManifest-common.xml"
}
androidTestDebug {
manifest.srcFile "tests/AndroidManifest.xml"
}
aosp {
java.srcDirs = ['src_flags', 'src_shortcuts_overrides']
manifest.srcFile "AndroidManifest.xml"
}
/*hide l3go*/
// l3go {
// res.srcDirs = ['go/res']
// java.srcDirs = ['go/src']
// manifest.srcFile "go/AndroidManifest.xml"
// }
withoutQuickstep {
java.srcDirs = ['src_ui_overrides']
}
/*withQuickstep {
res.srcDirs = ['quickstep/res', 'quickstep/recents_ui_overrides/res']
java.srcDirs = ['quickstep/src', 'quickstep/recents_ui_overrides/src']
manifest.srcFile "quickstep/AndroidManifest.xml"
}
withQuickstepIconRecents {
res.srcDirs = ['quickstep/res', 'go/quickstep/res']
java.srcDirs = ['quickstep/src', 'go/quickstep/src']
manifest.srcFile "quickstep/AndroidManifest.xml"
}*/
}
}
repositories {
maven { url "../../../prebuilts/fullsdk-darwin/extras/android/m2repository" }
maven { url "../../../prebuilts/fullsdk-linux/extras/android/m2repository" }
google()
mavenCentral()
maven { url 'https://jitpack.io' }
maven { url 'https://maven.google.com' }
maven { url 'https://developer.huawei.com/repo/' }
maven { url 'https://developer.hihonor.com/repo' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
}
dependencies {
compileOnly files('libs/framework.jar')
implementation files('libs/vendor.mediatek.hardware.nvram-V1.0-java.jar')
implementation "androidx.dynamicanimation:dynamicanimation:${ANDROID_X_VERSION}"
implementation "androidx.recyclerview:recyclerview:${ANDROID_X_VERSION}"
implementation "androidx.preference:preference:${ANDROID_X_VERSION}"
implementation "androidx.constraintlayout:constraintlayout:2.0.4"
implementation project(':IconLoader')
implementation fileTree(dir: "${ANDROID_TOP}/libs", include: 'launcher_protos.jar')
// Recents lib dependency
//withQuickstepImplementation fileTree(dir: "${ANDROID_TOP}/libs", include: 'sysui_shared.jar')
// Recents lib dependency for Go
//withQuickstepIconRecentsImplementation fileTree(dir: "${ANDROID_TOP}/libs", include: 'sysui_shared.jar')
// Required for AOSP to compile. This is already included in ANDROID_TOP sysui_shared.jar
implementation 'androidx.appcompat:appcompat:1.3.0'
withoutQuickstepImplementation fileTree(dir: "${ANDROID_TOP}/libs", include: 'plugin_core.jar')
testImplementation 'junit:junit:4.12'
androidTestImplementation "org.mockito:mockito-core:1.9.5"
androidTestImplementation 'com.google.dexmaker:dexmaker:1.2'
androidTestImplementation 'com.google.dexmaker:dexmaker-mockito:1.2'
androidTestImplementation 'com.android.support.test:runner:1.0.0'
androidTestImplementation 'com.android.support.test:rules:1.0.0'
androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
androidTestImplementation "androidx.annotation:annotation:${ANDROID_X_VERSION}"
//OkHttp
implementation 'com.squareup.okhttp3:okhttp:4.9.2'
//RxJava和Retrofit
implementation 'io.reactivex.rxjava2:rxjava:2.2.21'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.9.0'
//gson
implementation 'com.google.code.gson:gson:2.9.0'
//磁盘缓存
implementation 'com.jakewharton:disklrucache:2.0.2'
//mmkv
implementation 'com.tencent:mmkv-static:2.4.0'
// //腾讯移动推送 TPNS
// implementation 'com.tencent.tpns:tpns:1.3.2.0-release'
// //阿里云推送
// implementation 'com.aliyun.ams:alicloud-android-push:3.8.0'
//下载
implementation 'me.laoyuyu.aria:core:3.8.16'
annotationProcessor 'me.laoyuyu.aria:compiler:3.8.16'
//工具类
implementation 'com.blankj:utilcodex:1.31.1'
// 吐司框架: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()
)
}
}
protobuf {
// Configure the protoc executable
protoc {
artifact = 'com.google.protobuf:protoc:3.0.0-alpha-3'
generateProtoTasks {
all().each { task ->
task.builtins {
remove java
javanano {
option "java_package=launcher_log_extension.proto|com.aoleyun.os.userevent.nano"
option "java_package=launcher_log.proto|com.aoleyun.os.userevent.nano"
option "java_package=launcher_dump.proto|com.aoleyun.os.model.nano"
option "enum_style=java"
}
}
}
}
}
}