diff --git a/app/build.gradle b/app/build.gradle index 47494ab66..758323627 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,12 +3,9 @@ apply plugin: 'com.android.application' apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'com.huawei.agconnect' -apply plugin: 'com.tencent.vasdolly' apply from: '../mob.gradle' apply plugin: 'android-junk-code' -def onlyArm64 = Boolean.parseBoolean(only_arm64) - android { compileSdkVersion COMPILE_SDK_VERSION.toInteger() @@ -21,20 +18,20 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled true - ndk { - abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' - } +// ndk { +// abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' +// } flavorDimensions 'default' } - splits { - abi { - enable true - reset() - include 'armeabi-v7a', 'arm64-v8a', 'x86' - universalApk true - } - } +// splits { +// abi { +// enable true +// reset() +// include 'armeabi-v7a', 'arm64-v8a', 'x86' +// universalApk true +// } +// } //在apk文件后边生成版本号信息 android.applicationVariants.configureEach { variant -> @@ -50,7 +47,7 @@ android { if (abi == null) { abi = "universal" } - outputFileName = "yinmeng_${buildType.name}_v${defaultConfig.versionName}_${abi}_${date}.apk" + outputFileName = "yinmeng_${variant.flavorName}_${buildType.name}_v${defaultConfig.versionName}_${defaultConfig.versionCode}_${abi}_${date}.apk" } } @@ -182,6 +179,54 @@ android { buildToolsVersion = '30.0.3' + productFlavors { + official { + ndk { + abiFilters 'armeabi-v7a', 'arm64-v8a' + } + } + mlq { + ndk { + abiFilters 'x86' + } + } + yingyongbao { + ndk { + abiFilters 'armeabi-v7a' + } + } + vivo { + ndk { + abiFilters 'arm64-v8a' + } + } + oppo { + ndk { + abiFilters 'arm64-v8a' + } + } + xiaomi { + ndk { + abiFilters 'arm64-v8a' + } + } + huawei { + ndk { + abiFilters 'arm64-v8a' + } + } + kuaishou_01 { + ndk { + abiFilters 'armeabi-v7a', 'arm64-v8a' + } + } + } + productFlavors.all { flavor -> + flavor.manifestPlaceholders = [ + // 渠道 + CHANNEL_VALUE : name, + ] + } } @@ -258,7 +303,7 @@ dependencies { //oppo推送需要 implementation 'commons-codec:commons-codec:1.6' - api 'com.tencent.vasdolly:helper:3.0.3' +// api 'com.tencent.vasdolly:helper:3.0.3' implementation "io.github.tencent:vap:2.0.24" implementation 'com.github.mmin18:realtimeblurview:1.2.1' @@ -276,36 +321,20 @@ repositories { } -channel { - //多渠道包的输出目录,默认为new File(project.buildDir,"channel") - outputDir = new File(project.buildDir, "channelapk") - //多渠道包的命名规则,默认为:${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}-${buildTime} - def only64 = onlyArm64 ? "-only64" : "" - apkNameFormat = 'yinmeng-${buildType}only64-${flavorName}-v${versionName}-${buildTime}'.replace("only64", only64) - //快速模式:生成渠道包时不进行校验(速度可以提升10倍以上,默认为false) - fastMode = false - //buildTime的时间格式,默认格式:yyyyMMdd-HHmmss - buildTimeDateFormat = 'MMddHHmm' - //低内存模式(仅针对V2签名,默认为false):只把签名块、中央目录和EOCD读取到内存,不把最大头的内容块读取到内存,在手机上合成APK时,可以使用该模式 - lowMemory = false -} - android.applicationVariants.all { variant -> print("variant.name=" + variant.name) - switch (variant.name) {//变体名称,如果没有设置productFlavors就是buildType名称,如果有设置productFlavors就是flavor+buildType,例如(freeRelease、proRelease) - case "release": - androidJunkCode.configMap.put(variant.name, { - packageBase = "com.nnbc123.plugin.ui" //生成java类根包名 - packageCount = 30 //生成包数量 - activityCountPerPackage = 30 //每个包下生成Activity类数量 - excludeActivityJavaFile = false - //是否排除生成Activity的Java文件,默认false(layout和写入AndroidManifest.xml还会执行),主要用于处理类似神策全埋点编译过慢问题 - otherCountPerPackage = 50 //每个包下生成其它类的数量 - methodCountPerClass = 20 //每个类下生成方法数量 - resPrefix = "mango_" //生成的layout、drawable、string等资源名前缀 - drawableCount = 300 //生成drawable资源数量 - stringCount = 300 //生成string数量 - }) - break + if (variant.name.contains("release") || variant.name.contains("Release")) { + androidJunkCode.configMap.put(variant.name, { + packageBase = "com.nnbc123.plugin.ui" //生成java类根包名 + packageCount = 30 //生成包数量 + activityCountPerPackage = 30 //每个包下生成Activity类数量 + excludeActivityJavaFile = false + //是否排除生成Activity的Java文件,默认false(layout和写入AndroidManifest.xml还会执行),主要用于处理类似神策全埋点编译过慢问题 + otherCountPerPackage = 50 //每个包下生成其它类的数量 + methodCountPerClass = 20 //每个类下生成方法数量 + resPrefix = "mango_" //生成的layout、drawable、string等资源名前缀 + drawableCount = 300 //生成drawable资源数量 + stringCount = 300 //生成string数量 + }) } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 594c745a0..d37ae22f8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -86,6 +86,10 @@ android:theme="@style/MyMaterialTheme" android:usesCleartextTraffic="true" tools:replace="android:name,android:allowBackup"> + +