plugins { id 'com.android.application' } apply from: '../common.gradle' android { namespace 'cn.ykbox.dashboard' compileSdk 35 buildToolsVersion "30.0.3" defaultConfig { applicationId "cn.ykbox.dashboard" minSdk 21 targetSdk 35 versionCode gitVersionCode() versionName gitVersionTag() testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } // sign the application signingConfigs { release { storeFile file('..\\sinclass.jks') storePassword '=efX!O4i' keyAlias 'ScreenClient' keyPassword '=efX!O4i' v1SigningEnabled true v2SigningEnabled true } } buildTypes { debug { signingConfig signingConfigs.release } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } buildFeatures { viewBinding true } android.applicationVariants.all { variant -> def docDir = rootProject.getRootDir().getAbsolutePath() + "/../apk/dashboardclient" def releaseDir = rootProject.getRootDir().getAbsolutePath() + "/../apk/dashboardclient" if (versionName.contains("beta")) releaseDir += "/beta" variant.outputs.all { // 常规版本不加后缀 outputFileName = "dashboardclient_${defaultConfig.versionName}.apk" } // assemble 结束后,将apk复制到指定目录 variant.assembleProvider.get().doLast { variant.outputs.all { if (variant.buildType.name == 'release') { copy { from "${project.getProjectDir().path}/build/outputs/apk/${variant.buildType.name}/${outputFileName}" into releaseDir } def downloadUrl = "http://thinkdisk.thinkbo.cn/src/web/dashboardclient/${outputFileName}" genUpdateJson(downloadUrl, releaseDir, outputFileName, 'changelog.md', defaultConfig, variant) File file = new File("${project.getProjectDir().path}/changelog.md") replaceText(file, 'VERSION_CODE', "${defaultConfig.versionCode}") // 用 pandoc 将 changelog.md 导出为 html 格式 exec { workingDir project.getProjectDir().getAbsolutePath() commandLine 'pandoc', '--standalone', '--embed-resources', '--css', rootProject.getRootDir().getAbsolutePath() + '/doc/themes/blue/blue.css', 'changelog.md', '-f', 'markdown', '-t', 'html', '-s', '-o', "${docDir}/changelog.html" } } } } } } repositories { maven { url "https://s01.oss.sonatype.org/content/groups/public" } } dependencies { implementation libs.serialport implementation libs.acra.http implementation libs.appcompat implementation libs.material implementation libs.activity implementation libs.constraintlayout implementation libs.preference testImplementation libs.junit androidTestImplementation libs.ext.junit androidTestImplementation libs.espresso.core implementation libs.utilcodex implementation libs.dialogx implementation libs.okhttp implementation libs.banner implementation libs.glide annotationProcessor libs.glidecompiler }