buildscript { repositories { mavenCentral() google() 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 "奥乐云桌面" } def releaseTime() { return new Date().format("yyyyMMdd", 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 216 versionName "1.6.1016" ndk { //选择要添加的对应 cpu 类型的 .so 库。 abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' // 还可以添加 'x86', 'x86_64', 'mips', 'mips64' } lintOptions { checkReleaseBuilds false abortOnError false } manifestPlaceholders = [ JPUSH_PKGNAME: "com.aoleyun.os", JPUSH_APPKEY : "0c7ba5a1622dba78d5bd00cc", //JPush 上注册的包名对应的 Appkey. JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可. ] 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("src/doc/zhanxun.keystore") storePassword "123456" keyAlias "zhanxun" keyPassword "123456" v1SigningEnabled true v2SigningEnabled true } mtk { storeFile file("src/doc/xueshibaoos.jks") storePassword "123456" keyAlias "xueshibaoos" keyPassword "123456" v2SigningEnabled false } SM8150 { storeFile file("src/doc/sm8150.jks") storePassword "logan-123456789" keyAlias "platformkey" keyPassword "logan-123456789" v1SigningEnabled true v2SigningEnabled true } } buildTypes { zhanRuiRelease.initWith(release) zhanRuiRelease { buildConfigField "String", "platform", '"ZhanRui"' signingConfig signingConfigs.zhanRui } zhanRuiDebug.initWith(debug) zhanRuiDebug { versionNameSuffix "-debug" buildConfigField "String", "platform", '"ZhanRui"' debuggable true signingConfig signingConfigs.zhanRui } debug { buildConfigField "String", "platform", '"MTK"' versionNameSuffix "_debug" minifyEnabled false signingConfig signingConfigs.SM8150 } release { buildConfigField "String", "platform", '"MTK"' minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.SM8150 } } android.applicationVariants.all { variant -> variant.outputs.all { output -> // 改为 all def buildType = variant.buildType.name if (buildType.contains("debug")) { outputFileName = "${appName()}_V${defaultConfig.versionName}_${releaseTime()}.apk" } else { outputFileName = "${appName()}_${variant.versionCode}_V${variant.versionName}_${releaseTime()}_${buildType}.apk" } } } // 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' } 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" } 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" } mavenCentral() google() jcenter() } dependencies { compileOnly files('libs/framework.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}" //RxJava和Retrofit implementation 'io.reactivex.rxjava2:rxjava:2.2.12' 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.5.0' //gson implementation 'com.google.code.gson:gson:2.8.7' //mmkv implementation 'com.tencent:mmkv-static:1.2.10' //极光推送 implementation 'cn.jiguang.sdk:jpush:3.8.5' // 此处以JPush 3.8.6 版本为例。 implementation 'cn.jiguang.sdk:jcore:2.7.8' // 此处以JCore 2.6.0 版本为例。 //下载 implementation 'me.laoyuyu.aria:core:3.8.16' annotationProcessor 'me.laoyuyu.aria:compiler:3.8.16' //工具类 implementation 'com.blankj:utilcodex:1.30.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" } } } } } }