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
模板基础代码配置

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

编码
添加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文件夹用于放置自定义模板

正式开始编写自定义模板,以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
- 添加org.jetbrains.android,org.jetbrains.kotlin,com.intellij.modules.java的依赖
- 修改applicationService和projectService的值
- 修改applicationListenersv中listener的值
- 添加wizardTemplateProvider为刚才添加的类
生成jar文件
在AS最上面选择运行
Run plugin
,成功以后即可在build/libs找见对应的jar文件。最后在AS的设置里将这个jar包添加的plugin,重启AS即可。
u


- 作者:Tony
- 链接:https://bigademo.com/article/5166a538-1495-44a5-8335-09c8d1da0bf8
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章