type
status
date
slug
summary
tags
category
icon
password
原创文件,禁止未授权转载
AndroidStudio4.0之前,可以在template的文件夹里使用freemarker的自定义模板,可以在AndroidStudio的文件夹中,随意的添加适合自己的自定义模板,之前鸿洋大神的文章已经有来详细的介绍(https://blog.csdn.net/lmj623565791/article/details/51592043)。 但是从4.1版本开始提供新的方式,Geminio,用Kotlin的形式编写新的template,而且需要使用插件的形式,才能使用自定义的模板,摸索了好几天,终于解决了。
我的项目是使用MVVM的开发框架,每次在编写一个新的页面的时候,就需要新建四个文件Activity/Fragment, ViewModel, Repository, xml文件,写的多了就会很烦。自从使用了自定义的模板以后,头发掉得都少了。
开工!!!搞起!!!
#准备

开发工具 AndroidStudio4.1

模板基础代码配置

notion image
打开https://github.com/JetBrains/intellij-platform-plugin-template,点击绿色的#Use this template#,按步骤在自己的github上创建模板。 然后使用AndroidStudio 将模板下载到本地。
notion image
 

编码

添加wizard-template.jar

在根目录里添加lib文件夹,并添加AndroidStudio安装目录里的wizard-template.jar,位于 /Applications/Android\ Studio.app/Contents/plugins/android/lib/目录下。

修改build.gradle.kts

在dependencies里添加wizard-template.jar的依赖

修改gradle.properties

修改gradle.properties中的pluginGroup, pluginName_, platformPlugins, platformVersion。

将默认的listeners的父包名,调整为自己想要的样子,例如com.company.app

修改MyProjectManagerListener

在src/main/kotlin里创建other文件夹用于放置自定义模板

notion image

正式开始编写自定义模板,以Activity为例。

1. 实现WizardTemplateProvider

SamplePluginTemplateProviderImpl

2. 创建 mvvmActivityTemplate.kt.

这个文件是设置在创建Activity的时候,输入的信息,例如ActivityName,layoutName,packageName以及是否可以为为等 mvvmActivityTemplate.kt

3. 创建mvvmActivityRecipe.kt。

这个文件用于将创建的文件保存到文件夹中,例如Activity,布局文件等。原计划将Activity直接添加到AndroidManifest里,但是发现generateManifest有点问题,导致生成的插件不能使用,暂时去掉,只能手动添加了。
mvvmActivityRecipe.kt

4. 创建mvvmAcitivityKt。

这个文件用于创建Activity的模板代码,根据自己的情况,自行调整。
mvvmAcitivityKt.kt

5. 编写mvvmRepository。

这个文件是mvvm的repository层的代码。
mvvmRepository.kt

6. 编写mvvmViewModel。这个是mvvm的viewmodel层

mvvmViewModel.kt

7.编写mvvmActivityXml。这个文件是用于生成布局文件的

mvvmActivityXml.kt

8. 修改plugin.xml

  1. 添加org.jetbrains.android,org.jetbrains.kotlin,com.intellij.modules.java的依赖
  1. 修改applicationService和projectService的值
  1. 修改applicationListenersv中listener的值
  1. 添加wizardTemplateProvider为刚才添加的类

生成jar文件

在AS最上面选择运行
Run plugin
,成功以后即可在build/libs找见对应的jar文件。最后在AS的设置里将这个jar包添加的plugin,重启AS即可。 u
notion image
notion image
Docker+Git+Node+Hexo的静态博客Android的FloatView