欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android -- 打包release版本apk, 动态生成apk版本名, 打包.jar

程序员文章站 2022-11-18 15:51:29
Android – 打包release版本apk, 动态生成apk版本名, 打包.jar一)生成release 版本apk生成密匙(如已有可跳过此步骤)选择新建(create new):选择存储路径+文件名:填写相关信息:​密码:上下一致, 后面要用 ​Alias: 默认值:key0 ​Certificate: 随意利用上面生成的密钥生成release版本选择上面存放的.jks文件,然后填写密码,alias值与之前一致选择release apk 存放路径(一般为...

Android – 打包release版本apk, 动态生成apk版本名, 打包.jar

一)生成release 版本apk

  1. 生成密匙(如已有可跳过此步骤)
    Android -- 打包release版本apk, 动态生成apk版本名, 打包.jar
    Android -- 打包release版本apk, 动态生成apk版本名, 打包.jar
    选择新建(create new):
    Android -- 打包release版本apk, 动态生成apk版本名, 打包.jar
    选择存储路径+文件名:
    Android -- 打包release版本apk, 动态生成apk版本名, 打包.jar

    填写相关信息:
    ​密码:上下一致, 后面要用 ​ Alias: 默认值:key0 ​ Certificate: 随意Android -- 打包release版本apk, 动态生成apk版本名, 打包.jar

  2. 利用上面生成的密钥生成release版本

    1. 选择上面存放的.jks文件,然后填写密码,alias值与之前一致
      Android -- 打包release版本apk, 动态生成apk版本名, 打包.jar
    2. 选择release apk 存放路径(一般为当前项目app路径下), 下面V1, V2 都要勾选,然后点击Finish.
      Android -- 打包release版本apk, 动态生成apk版本名, 打包.jar

二)动态生成apk版本名

在项目app下的build.gradle文件下:
Android -- 打包release版本apk, 动态生成apk版本名, 打包.jar

  1. 带app名和版本名:

    android{
        ...
    	//1. appName + versionName
    	applicationVariants.all { variant ->
            variant.outputs.all { output ->
                def appName = "xxx"
                def outFilename = "appName-versionName.apk"
    
                outFilename = outFilename.replace("appName", appName)
                outFilename = outFilename.replace("versionName", getVersionName())
    			
                outputFileName = outFilename
            }
        }
    }
    
  2. 带app名和build类型:

    android{
        ...
    	//2. appName + buildType
    	applicationVariants.all { variant ->
            variant.outputs.all { output ->
                def appName = "xxx"
                def outFilename = "appName-buildType.apk"
    			
                outFilename = outFilename.replace("appName", appName)
                outFilename = outFilename.replace("buildType", variant.buildType.name)
    
                outputFileName = outFilename
            }
        }
    }
    
  3. 带app名,版本号和build类型:

    android{
    	...
    	//3. appName + versionName + buildType
    	applicationVariants.all { variant ->
            variant.outputs.all { output ->
                def appName = "xxx"
                def outFilename = "appName-versionName-buildType.apk"
    			
                outFilename = outFilename.replace("appName", appName)
                outFilename = outFilename.replace("versionName", getVersionName())
                outFilename = outFilename.replace("buildType", variant.buildType.name)
    
                outputFileName = outFilename
            }
        }
    }
    
  4. 带app名和日期(格式可自定义):

    android{
    	...
    	//4. appName + formattedDate
    	applicationVariants.all { variant ->
            variant.outputs.all { output ->
                def formattedDate = new Date().format('yyyyMMdd')
                def appName = "xxx"
                def outFilename = "appName-formattedDate.apk"
    
                outFilename = outFilename.replace("appName", appName)
                outFilename = outFilename.replace("formattedDate", formattedDate)
    
                outputFileName = outFilename
            }
        }
    }
    

三)打包项目成xxx.jar文件

  1. 在app下的build.gradle文件内添加

    android{
        ...
    	task makeJar(type: Copy) {
            //删除存在的
            delete 'src/main/libs/xxx.jar'
            //设置拷贝的文件
            from('build/intermediates/bundles/release/')
            //打进jar包后的文件目录
            into('src/main/libs/')
            //将classes.jar放入build/libs/目录下
            //include,exclude参数来设置过滤
            include('classes.jar')
            //重命名
            rename ('classes.jar', 'xxx.jar')
        }
        makeJar.dependsOn(build)
    }
    
  2. 在Terminal输入

    #启动task即可在定义的目录—src/main/libs生成xxx.jar
    $ gradlew makeJar
    

    Android -- 打包release版本apk, 动态生成apk版本名, 打包.jar

本文地址:https://blog.csdn.net/weixin_43738911/article/details/108153039