Files
Launcher3-Q-Aoleyun/build.gradle
T
tt 7a268c2156 version:zhanrui 6.3.1,MTK 2.3.1
fix:
update:更换应用图标,更新版本号命名规则
2023-01-07 16:56:10 +08:00

399 lines
13 KiB
Groovy

buildscript {
repositories {
google()
mavenCentral()
maven { url 'http://developer.huawei.com/repo/' }
maven { url "https://jitpack.io" }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}
dependencies {
classpath GRADLE_CLASS_PATH
classpath PROTOBUF_CLASS_PATH
classpath "com.tencent.android.tpns:tpnsplugin:1.8.0"
}
}
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs.add('-Xbootclasspath/p:libs/framework.jar')
}
}
}
def appName() {
return "AoleyunLauncher3"
}
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'
//apply plugin: "com.tencent.android.tpns"
android {
// gradle.projectsEvaluated {
// tasks.withType(JavaCompile) {
// Set<File> fileSet = options.bootstrapClasspath.getFiles()
// List<File> newFileList = new ArrayList<>();
// //JAVA语法,可连续调用,输入参数建议为相对路径
// newFileList.add(new File("libs/framework.jar"))
// //最后将原始参数添加
// newFileList.addAll(fileSet)
// options.bootstrapClasspath = files(
// newFileList.toArray()
// )
// }
// }
lintOptions {
checkReleaseBuilds false
abortOnError false
}
compileSdkVersion COMPILE_SDK
buildToolsVersion BUILD_TOOLS_VERSION
defaultConfig {
minSdkVersion 26
targetSdkVersion 28
// //MTK
versionCode 41
versionName "2.3.1"
// //cube
// versionCode 71
// versionName "6.3.1"
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
manifestPlaceholders = [
XG_ACCESS_ID : "1500026378",
XG_ACCESS_KEY: "AH5QD9ZMBJ6R",
]
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
//签名
signingConfigs {
zhanRui {
storeFile file("src/doc/zhanxun.keystore")
storePassword "123456"
keyAlias "zhanxun"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
zhanRuiUserdebug {
storeFile file("src/doc/zhanxunUserdebug.keystore")
storePassword "123456"
keyAlias "zhanxunUserdebug"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled false
}
mtk {
storeFile file("src/doc/xueshibaoos.jks")
storePassword "123456"
keyAlias "xueshibaoos"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
}
buildTypes {
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
}
debug {
buildConfigField "String", "platform", '"MTK"'
debuggable true
versionNameSuffix "-debug"
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//Zipalign优化
zipAlignEnabled true
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
//前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明,后一个文件是自己的定义混淆文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//Zipalign优化
zipAlignEnabled true
//签名
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}.apk"
output.outputFileName = fileName
}
}
}
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
// 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" }
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}"
//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:1.2.13'
//腾讯移动推送 TPNS
implementation 'com.tencent.tpns:tpns:1.3.2.0-release'
//极光推送
// implementation 'cn.jiguang.sdk:jpush:3.8.6' // 此处以JPush 3.8.6 版本为例。
// implementation 'cn.jiguang.sdk:jcore:2.6.0' // 此处以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.31.0'
}
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/
//https://blog.csdn.net/dhl_1986/article/details/102856026
//使用系统编译后的framework.jar
}
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"
}
}
}
}
}
}