android studio renamed plugin
来源:互联网 发布:交大长天软件怎么样 编辑:程序博客网 时间:2024/06/09 16:41
自动重命名android 里面的versionName字段(创建一个自定的gradle插件)
为毛开发这个屌功能,你们这些辣鸡开发都知道吧。
那么,我回答问题之前我先问一个问题,你们所有的apk自动生成一样的名字?当然不,应用的名字就像2.3 13.1.0——2342等等。这个似乎对发布一个版本已经足够了,但是这个应用是处于正在开发,应用程序的名字最好能提供更多的信息。
我发现这个方法对我的团队非常的有用,每个团队成员开发不同的功能,这个工具就会自动的根据开发的功能重命名,所以不同的构建系统的模块基于不同的开发功能命名,例如:测试,产品作者,代码整合。
自定义gradle插件
作为一个开发者日常开发就用到了几个gradle的插件,比如com.android.application 是用于android app的插件。插件将让我们操作和扩展我们的构建系统非常方便或者让我们指定一些设置。实际上,这就是我们想要的功能,修改默认的构建系统并让它修改viersionname字段。
有三种不同的方法去创建一个gradle的插件。构建gradle插件文档 ,但是我们将会使用一个buildSrc文件(文件找不到?看看文档吧,在根目录下创建一个buildSrc文件夹,然后sync一下。就可以哒),主要因为它简单,而且它会添加到你的仓库中。另一方面,插件会被附到你的项目上,不会被重用。
1.首先我需要在gradle的编译文件夹中创建一个proper的文件(提示:同步之后,gradle 会检测到groovy文件夹并且会标记成图片这样。)所以,构建进程会编译每个在这个文件夹下的代码。
2.然后我们创建一个插件文件夹(CustomPlugin.groovy) 在刚才那个包下。这个插件的主要功能是会创建一个gradle的工作task,其实就是为了去修改app versionName并且把它添加到任务流程中。我们在编写拆件之前创建一个gradle 的修改app名字的task。
gradle task
正如猜测的那样,一个task在一个构建进程中只有一个实例对现实跟。下一步我们就要自定义一个修改app的名字的task,类似android构建系统里面的task一样。
就想其它的task一样,我们需要继承DefaultTask 并且必须实现默认方法run
class RenameAppVersionNameTask extends DefaultTask { @TaskAction def run() { project.configure(project) { // Check if plugin works on an Android module if (it.hasProperty("android")) { // Iterate over app build variants (build types + flavors) project.android.applicationVariants.all { variant -> // Only change debug build type variants if (variant.buildType.name == project.android.buildTypes.debug.name) { // Rename versionName def customVersionName = variant.mergedFlavor.versionName variant.mergedFlavor.versionName = customVersionName + " custom" } } } } } RenameAppVersionNameTask() { group = 'customPlugin' description = 'Renames versionName of the app depends on the current git branch name' } }
task 依附
我们已经设计了一个task修改VersionName,现在我们要实现gradle插件并且把这个插件加到构建系统中去。
自动Android构建给app加入了versionName信息,我们必须确定task相关的功能会在android构建系统开始之前出发。下面是prebuild 能够在构建之前完成相关的任务。
class CustomPlugin implements Plugin<Project> { @Override void apply(Project project) { project.task('renameAppVersionName', type: RenameAppVersionNameTask) project.tasks.getByName('preBuild').dependsOn('renameAppVersionName') } }
应用插件:
这个我们已经创建的插件我们能够应用到android application module里面(甚至是android library modlue里面)
只需要应用这个插件在build。gradle文件中,就像下面这样。
apply plugin: CustomPlugin
原地址 科学上网姿势
- android studio renamed plugin
- Android Studio 错误 Plugin Error
- Android Studio集成Lombok Plugin
- Android Studio 错误 Plugin Error
- android studio 的android plugin版本号查询
- android studio 的android plugin版本号查询
- 【Android Studio】Gradle Plugin User Guide
- android studio plugin开发和使用
- Android Studio Experimental Gradle Plugin User Guide
- Android Studio for Mac Install PlantUML plugin
- Android Studio Plugin-Translate English to Chinese
- 初始android studio 的 Gradle Plugin
- Android Studio plugin is too old,please...
- Android Studio Plugin is too old
- Android studio提示“Plugin is too old”
- Android studio Plugin is too old 问题
- Intellij / Android Studio 调试 Gradle Plugin
- Idea-Plugin编写Android Studio插件
- Android组件复习之基本组件06—autocompletetextview自动完成文本框
- Struts2笔记
- android利用shap画小圆圈(空心圆、实心圆)
- POJ 3321 Apple Tree
- ViewAnimation和DrawableAnimation
- android studio renamed plugin
- Android UI :Try of Toolbar
- 删除远程svn上idea中的module (另附Linux解压命名)
- 数据存储和界面展现之二
- 位运算符,逻辑运算符,比较运算符
- Android-自定义PopupWindow
- 跟我学Java多线程——线程池与阻塞队列
- 1019 数字黑洞
- C语言整型溢出会怎样