首页 > 其他分享 >Android studio 自动复制生成的 apk

Android studio 自动复制生成的 apk

时间:2024-06-13 12:32:19浏览次数:20  
标签:name val apkBaseName project apk studio Android outDir

KTS 脚本

// 顶层 build.gradle.kts
val apkBaseName: String = "VoiceAssistant"  
  
allprojects {  
    project.extra.apply {
        set("apkBaseName", apkBaseName)  
    }  
}

// 模块 build.gradle.kts
android {
	applicationVariants.all {  
	    val apkBaseName = project.ext.get("apkBaseName") as String  
	    val moduleName = project.name  
	    val apkName = if (apkBaseName.isNotBlank()) {  
	        "${apkBaseName}_${moduleName}_${versionName}.apk"  
	    } else {  
	        "${moduleName}_${versionName}.apk"  
	    }  
	  
	    if (buildType.name == "release") {  
		    // 也可以用 assembleProvider.configure {
	        assembleProvider.get().doLast {  
		        // 可以这样过滤 if (name == "assembleRelease") 
	            project.copy {  
	                val fromDir = packageApplicationProvider.get().outputDirectory.asFile  
	                val outDir = File(project.rootDir, "outputs")  
	                println("> Task : copy from $fromDir into $outDir")  
	  
	                from(fromDir)  
	                into(outDir)  
	                include("**/*.apk")  
	                rename { apkName }  
	            }        
			}    
		}  
	} 
}

Gradle

// 模块 build.gradle
android {
    applicationVariants.all { variant ->  
	    // apk 改名
        variant.outputs.all { output ->  
            outputFileName = "Factory" + "-" + buildType.name + "-" + defaultConfig.versionName + "-" + defaultConfig.versionCode + ".apk"  
        }
            
        variant.assemble.doLast {  
            // 将生成的 APK 复制到 app/release 文件夹  
            File outDir = new File('release')  
            variant.outputs.forEach { file ->  
                copy {  
                    from file.outputFile  
                    into outDir  
                } 
            }
		}
	}
}

标签:name,val,apkBaseName,project,apk,studio,Android,outDir
From: https://www.cnblogs.com/qianjiahong/p/18245661

相关文章

  • This version of the Android Support plugin for IntelliJ IDEA or Android Studio c
    解决低版本的android导入高版本的工程7.2修改适配android4.2.11、setting.gradle保留rootProject.name=""和include‘:app’,其余注释//pluginManagement{//repositories{//gradlePluginPortal()//google()//mavenCentral()//}//......
  • visual studio vs2015 代码正常编译 但printf count无法输出
    在成功安装VS2015后,就立刻开始创建新项目进行测试。(ps:VS2015和之前使用的版本有所不同,安装后为有两个:一个为Blend开头的,一个为VS2015,我们需要使用的是vs2015,并非Blend开头那个)在第一次创建新项目时会出现没有Win32配置,需要进一步下载才可以。代码如下:#include<iostream>......
  • Visual Studio 2022 v17.10 发布
    VisualStudio2022版本17.9 现已发布,带来了IDE各个领域的一系列性能增强。一些显着的改进包括:更快的WindowsFormsdesigner加载、更快的Razor着色、更快的解决方案加载以及减少的DLL开销。WindowsFormsdesigner加载速度此前有反馈称,在针对.NETC......
  • 关于Android切换系统字体大小和字体样式导致App崩溃或者界面错乱的问题
    测试小姐姐测试版本的时候,把系统字体给变大了,再回到app直接崩溃,分析原因找问题,主要有2种方式第一种.设置字体大小我们都是用的是sp,如果改为dp就不会有这个问题,我相信大部分写android的都是用的sp,现在改回来肯定是头痛,别着急,我们先看看源码 publicstaticfloata......
  • Android attachBaseContext作用
    在Android应用程序中,attachBaseContext()方法是一个回调方法,它在onCreate()方法之前被调用,其作用是向应用程序的Context对象中添加或修改一些信息。通常,开发人员会在这个方法中执行一些初始化操作,如创建全局对象、设置默认语言等。具体来说,attachBaseContext()方法的主要......
  • Android中自定义Toast文字大小
    在Android开发中,Toast是一种轻量级的提示框,用于在屏幕上显示临时消息。一般情况下,Toast显示的文字大小是固定的,无法直接改变。但是,我们可以通过一些方法来实现在Toast中显示不同大小的文字。方法一:使用自定义布局创建custom_toast.xml布局文件,如:<?xmlversion="1.0"encoding......
  • Android 10.0 Launcher修改density禁止布局改变功能实现
    1.前言在10.0的系统rom定制化开发中,在关于Launcher3的定制化功能中,在有些功能需要要求改变系统原有的density屏幕密度,这样就会造成Launcher3的布局变化,所以就不符合要求,接下来就来看下如何禁止改变density造成Launcher3布局功能改变的实现2.Launcher修改density禁止布局改......
  • Android property属性权限添加
    https://blog.csdn.net/qq_28648425/article/details/86691949Google在AndroidO以后,为了降低vendor和system之间的耦合度,对property的作用区域也做了明确的区分,分为vendor三方的property和system平台端的property.因为参与的项目中需要添加一个systemproperty用作三方应用的......
  • android生成二维码实例
     android生成二维码实例生成二维码工具类packagecom.catanddog.utils;importandroid.graphics.Bitmap;importandroid.graphics.Color;importandroid.text.TextUtils;importandroidx.annotation.ColorInt;importandroidx.annotation.Nullable;importcom.goog......
  • 03《android studio开发实战(第三版)》阅读笔记
    第四章:用户界面开发 本章介绍了Android中的常见布局管理器,如LinearLayout、RelativeLayout和ConstraintLayout,以及它们的使用场景和特点。 学习了各种用户界面元素,如TextView、EditText、Button等的使用方法,以及如何将它们组合在一起创建复杂的用户界面。理解了Android中的资源......