pandorapan/app/build.gradle

298 lines
12 KiB
Groovy
Raw Normal View History

2022-07-18 15:31:45 +08:00
apply plugin: 'com.android.application'
apply plugin: 'img-optimizer'
apply plugin: 'com.google.gms.google-services'
2022-10-24 17:55:43 +08:00
apply plugin: 'com.google.firebase.crashlytics'
2022-11-10 11:17:04 +08:00
apply plugin: 'com.alibaba.arouter'
2022-07-18 15:31:45 +08:00
android {
dexOptions {
jumboMode = true
2023-06-15 13:41:57 +08:00
}
project.tasks.getByName("tasks").doFirst {
2022-07-18 15:31:45 +08:00
}
2022-10-20 10:49:08 +08:00
/* applicationVariants.all { variant ->
variant.mergeAssetsProvider.configure {
doLast {
delete(fileTree(dir: outputDir, includes: [
'model/ai_bgseg_green.bundle',
'model/ai_face_processor.bundle',
'model/ai_face_processor_lite.bundle',
'model/ai_hairseg.bundle',
'model/ai_hand_processor.bundle',
'model/ai_human_processor.bundle',
'model/ai_human_processor_gpu.bundle',
'model/ai_human_processor_mb_fast.bundle',
'graphics/body_slim.bundle',
'graphics/controller_cpp.bundle',
'graphics/face_beautification.bundle',
'graphics/face_makeup.bundle',
'graphics/fuzzytoonfilter.bundle',
'graphics/fxaa.bundle',
'graphics/tongue.bundle'
]))
}
}
}*/
2022-09-19 13:51:59 +08:00
2022-07-18 15:31:45 +08:00
compileSdkVersion rootProject.ext.android.compileSdkVersion
buildToolsVersion rootProject.ext.android.buildToolsVersion
packagingOptions {
pickFirst "lib/armeabi/libyuvutils.so"
pickFirst "lib/arm64-v8a/libyuvutils.so"
pickFirst "lib/armeabi-v7a/libyuvutils.so"
pickFirst "lib/armeabi/libyuvtools.so"
pickFirst "lib/arm64-v8a/libyuvtools.so"
pickFirst "lib/armeabi-v7a/libyuvtools.so"
exclude "lib/arm64-v8a/libmmcv_api_handgesture.so"
exclude "lib/arm64-v8a/libmmcv_api_express.so"
exclude "lib/arm64-v8a/libMediaEncoder.so"
exclude "lib/arm64-v8a/libarcore_sdk_c.so"
exclude "lib/arm64-v8a/libmediadecoder.so"
exclude "lib/arm64-v8a/libMediaMuxer.so"
exclude "lib/arm64-v8a/libarcore_sdk_jni.so"
exclude "lib/arm64-v8a/libMediaUtils.so"
exclude "lib/arm64-v8a/libcosmosffmpeg.so"
2022-10-20 10:49:08 +08:00
//旧美颜so
exclude 'lib/arm64-v8a/libxeengine.so'
exclude 'lib/arm64-v8a/libmmcv_base.so'
exclude 'lib/arm64-v8a/libmmcrypto.so'
exclude 'lib/arm64-v8a/libMNN.so'
exclude 'lib/arm64-v8a/libc++_shared.so'
exclude 'lib/arm64-v8a/libmmcv_api_base.so'
exclude 'lib/arm64-v8a/libmmcv_api_beauty.so'
exclude 'lib/arm64-v8a/libmmcv_api_bodylandmark.so'
exclude 'lib/arm64-v8a/libmmcv_api_express.so'
exclude 'lib/arm64-v8a/libmmcv_api_faceattributes.so'
exclude 'lib/arm64-v8a/libmmcv_api_facefeatures.so'
exclude 'lib/arm64-v8a/libmmcv_api_faceprocessor.so'
exclude 'lib/arm64-v8a/libmmcv_api_facerecognition.so'
exclude 'lib/arm64-v8a/libmmcv_api_handgesture.so'
exclude 'lib/arm64-v8a/libmmcv_api_imagequality.so'
exclude 'lib/arm64-v8a/libmmcv_api_objectdetect.so'
exclude 'lib/arm64-v8a/libmmcv_api_segmentation.so'
exclude 'lib/arm64-v8a/libmmcv_api_videoprocessor.so'
exclude 'lib/arm64-v8a/libmmlic.so'
exclude 'lib/arm64-v8a/libMNN_CL.so'
exclude 'lib/arm64-v8a/libMNN_Express.so'
exclude 'lib/armeabi-v7a/libxeengine.so'
exclude 'lib/armeabi-v7a/libmmcv_base.so'
exclude 'lib/armeabi-v7a/libmmcrypto.so'
exclude 'lib/armeabi-v7a/libMNN.so'
exclude 'lib/armeabi-v7a/libc++_shared.so'
exclude 'lib/armeabi-v7a/libmmcv_api_base.so'
exclude 'lib/armeabi-v7a/libmmcv_api_beauty.so'
exclude 'lib/armeabi-v7a/libmmcv_api_bodylandmark.so'
exclude 'lib/armeabi-v7a/libmmcv_api_express.so'
exclude 'lib/armeabi-v7a/libmmcv_api_faceattributes.so'
exclude 'lib/armeabi-v7a/libmmcv_api_facefeatures.so'
exclude 'lib/armeabi-v7a/libmmcv_api_faceprocessor.so'
exclude 'lib/armeabi-v7a/libmmcv_api_facerecognition.so'
exclude 'lib/armeabi-v7a/libmmcv_api_handgesture.so'
exclude 'lib/armeabi-v7a/libmmcv_api_imagequality.so'
exclude 'lib/armeabi-v7a/libmmcv_api_objectdetect.so'
exclude 'lib/armeabi-v7a/libmmcv_api_segmentation.so'
exclude 'lib/armeabi-v7a/libmmcv_api_videoprocessor.so'
exclude 'lib/armeabi-v7a/libmmlic.so'
exclude 'lib/armeabi-v7a/libMNN_CL.so'
exclude 'lib/armeabi-v7a/libMNN_Express.so'
2023-06-14 13:41:12 +08:00
//美颜
2023-06-15 13:41:57 +08:00
if (rootProject.ext.manifestPlaceholders.isPluginModel) {
2023-06-14 17:59:08 +08:00
exclude 'lib/armeabi-v7a/libCNamaSDK.so'
exclude 'lib/arm64-v8a/libCNamaSDK.so'
exclude 'lib/armeabi-v7a/libfuai.so'
exclude 'lib/arm64-v8a/libfuai.so'
}
2022-07-18 15:31:45 +08:00
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
2022-10-13 16:07:52 +08:00
applicationVariants.all { variant ->
2023-06-15 13:41:57 +08:00
println "清空build文件夹";
for (final def project in rootProject.getAllprojects()) {
2023-08-05 18:04:36 +08:00
delete project.buildDir
2023-06-15 13:41:57 +08:00
println project.buildDir
}
2022-10-13 16:07:52 +08:00
String variantName = variant.name.capitalize()
def processManifestTask = project.tasks.getByName("process${variantName}Manifest")
2022-10-20 10:49:08 +08:00
processManifestTask.doLast { pm ->
2022-10-13 16:07:52 +08:00
String manifestPath = "build/intermediates/bundle_manifest/release/bundle-manifest/AndroidManifest.xml"
2022-10-20 10:49:08 +08:00
def isGooglePlay = rootProject.ext.manifestPlaceholders.isGooglePlay
if (file(manifestPath).exists() && isGooglePlay) {
2022-10-13 16:07:52 +08:00
def manifestContent = file(manifestPath).getText()
2022-10-13 18:29:23 +08:00
manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />', '')
2022-10-13 16:07:52 +08:00
file(manifestPath).write(manifestContent)
2022-10-20 10:49:08 +08:00
} else {
print "not Exists = " + manifestPath
2022-10-13 16:07:52 +08:00
}
}
variant.mergeAssetsProvider.configure {
doLast {
delete(fileTree(dir: outputDir, includes: [
'model/ai_bgseg_green.bundle',
2022-10-20 10:49:08 +08:00
'model/ai_face_processor.bundle',
//'model/ai_face_processor_lite.bundle',
'model/ai_hairseg.bundle',
'model/ai_hand_processor.bundle',
'model/ai_human_processor.bundle',
'model/ai_human_processor_gpu.bundle',
'model/ai_human_processor_mb_fast.bundle',
'graphics/body_slim.bundle',
'graphics/controller_cpp.bundle',
//'graphics/face_beautification.bundle',
'graphics/face_makeup.bundle',
'graphics/fuzzytoonfilter.bundle',
'graphics/fxaa.bundle',
2022-10-20 10:49:08 +08:00
'graphics/tongue.bundle',
//旧美颜
'model-all.zip',
'filterData.zip',
'KSYResource/*',
'Resources/*',
'Asset/*',
'image_effect_shaders/*',
2023-06-14 17:59:08 +08:00
'internal/*'
2023-06-14 13:41:12 +08:00
//美颜基础组件
2023-06-14 17:59:08 +08:00
]))
2023-06-15 13:41:57 +08:00
println "isPluginModel = " + rootProject.ext.manifestPlaceholders.isPluginModel
if (rootProject.ext.manifestPlaceholders.isPluginModel) {
2023-06-14 17:59:08 +08:00
delete(fileTree(dir: outputDir, includes: [
'model/ai_face_processor_lite.bundle',
'graphics/face_beautification.bundle'
]))
2023-06-15 13:41:57 +08:00
} else {
2023-06-14 17:59:08 +08:00
println "不删除bundle"
}
}
2022-10-13 16:07:52 +08:00
}
2023-06-15 13:41:57 +08:00
variant.outputs.all {
def isGoogle = "link"
if (rootProject.ext.manifestPlaceholders.isGooglePlay) {
isGoogle = "Google"
}
def isPlugin = "all"
if (rootProject.ext.manifestPlaceholders.isPluginModel) {
isPlugin = "plugin"
}
def isTest = "测试服"
if (rootProject.ext.manifestPlaceholders.serverHost == "https://napi.yaoulive.com") {
isTest = "正式服"
}
outputFileName = "[${new Date().format("yyyy-MM-dd HHmmss", TimeZone.getTimeZone("GMT+8"))}]PDLive-${defaultConfig.versionName}-${isGoogle}-${isPlugin}-${variant.buildType.name}-${isTest}.apk"
}
2022-10-13 16:07:52 +08:00
}
2022-07-18 15:31:45 +08:00
signingConfigs {
release {
keyAlias 'phonelive'
keyPassword 'phonelive'
storeFile file('../hdl.jks')
storePassword 'phonelive'
}
//陌陌本地配置需要
config {//TODO BEAUTYSDK 这里需要配置keystore相关信息
keyAlias 'phonelive'
keyPassword 'phonelive'
storeFile file('../hdl.jks')//keystore的存放路径
storePassword 'phonelive'
v2SigningEnabled true // android 5.0-8.0必须用V2否则会有安全问题
v1SigningEnabled true
}
}
aaptOptions {
cruncherEnabled = false
useNewCruncher = false
}
packagingOptions {//加上这写代码 为了mob兼容性androidx
2022-10-20 10:49:08 +08:00
// pickFirst 'META-INF/*'
2022-07-18 15:31:45 +08:00
}
defaultConfig {
// applicationId "myname.pdlive.shayu"
applicationId "com.pdlive.shayu"
minSdkVersion rootProject.ext.android.minSdkVersion
//版本在这里修改
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode rootProject.ext.android.versionCode
versionName rootProject.ext.android.versionName
manifestPlaceholders = rootProject.ext.manifestPlaceholders
multiDexEnabled true
ndk {
// TODO: 谷歌商城需要兼容两个平台
abiFilters "armeabi-v7a", "arm64-v8a"
}
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
}
}
}
buildTypes {
release {
2023-05-08 13:29:24 +08:00
minifyEnabled true
2023-05-09 10:09:03 +08:00
shrinkResources true
zipAlignEnabled true
2022-07-18 15:31:45 +08:00
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
2023-06-14 13:41:12 +08:00
minifyEnabled false
shrinkResources false
zipAlignEnabled false
2023-05-08 13:29:24 +08:00
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
2022-07-18 15:31:45 +08:00
signingConfig signingConfigs.release
}
}
lintOptions {
checkReleaseBuilds false
abortOnError false
}
}
repositories {
flatDir {
dirs 'libs', '../libs'
}
}
dependencies {
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
2022-10-24 17:55:43 +08:00
implementation platform('com.google.firebase:firebase-bom:30.5.0')
implementation 'com.google.firebase:firebase-crashlytics'
2022-07-18 15:31:45 +08:00
//直播
api project(':main')
//短视频
api project(':video')
2022-07-18 15:31:45 +08:00
annotationProcessor rootProject.ext.dependencies["arouter-compiler"]
2022-08-26 13:00:45 +08:00
2022-10-20 10:49:08 +08:00
// implementation rootProject.ext.dependencies["leakcanary"]
2022-12-05 17:44:49 +08:00
//debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.10'
2022-09-09 13:36:01 +08:00
2022-08-26 13:00:45 +08:00
2022-07-18 15:31:45 +08:00
}
2022-09-19 13:51:59 +08:00
// 链接包需要注释掉 否正无法更新 谷歌包需要打开
2022-10-13 16:07:52 +08:00
/*
2022-09-28 18:04:21 +08:00
project.afterEvaluate {
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
output.processResources.doFirst { pm->
String manifestPath = output.processResources.manifestFile;
def manifestContent = file(manifestPath).getText()
manifestContent = manifestContent.replace('android.permission.REQUEST_INSTALL_PACKAGES', '')
file(manifestPath).write(manifestContent)
}
}
}
2022-10-13 16:07:52 +08:00
}*/