studio模板,一键生成多个类,mvp党福利

人类进步的根源是什么?是懒惰,是的,没有错,就是懒惰,正是当你想偷懒时,你才会去寻找更便捷的方法搞定一件事。写代码也是一样的,不想偷懒的程序猿不是好程序猿,下面我们来看看如何“偷懒”。

首先,声明一下,本文的作用纯属抛砖引玉,并不会太详细的介绍具体使用方法,仅仅介绍大概使用思路及踩坑日记。虽然本文以mvp为例,但是本文所讲的内容不局限于此,基本上所有的模板代码,你都可以生成模板,方便后面使用。

使用mvp模式开发安卓项目的人都知道,创建一个activity通常需要创建包含接口在内的5个类,写一两个界面还好,如果真是写完整个项目,光是创建这些类都让人心烦,那么有没有快捷的方法呢?当然是有的,最简单的方法就是使用studio 自带的file template。

studio模板,一键生成多个类,mvp党福利_第1张图片

下面来写一个简单的Preseter类模板:

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")
public class ${NAME}Presenter extends StyleActivityPresenter{
    @Override
    protected void initPresenter (Bundle savedInstanceState) {

    }
}

使用效果:

public class TestPresenter extends StyleActivityPresenter {
    @Override
    protected void initPresenter (Bundle savedInstanceState) {

    }
}

可以看出,使用上还是非常简单的,${NAME}就是你创建文件时输入的名字,其他的相信不用解释大家都看的懂。

上面的模板功能虽然已经能够很方便的让我创建一个类而不用去写过多的重复代码了,但是依然不够好用,因为上面说了,mvp模式通常包含5个类,还有布局文件,还有activity注册代码,这些可以说是每次创建activity的必须代码,而如果仅仅使用上面的file template功能,依然需要多次在不同包下创建文件,还有没有更偷懒的方法呢?当然有,就是studio强大的activity模板功能了。
  其实这个功能,大家经常都在使用,只是很多人并没有注意罢了,就比如我们新建项目时:

studio模板,一键生成多个类,mvp党福利_第2张图片

这其实就是studio自带的activity模板,我们知道当我们选中某个类型的模板后,生成了项目之后,项目中就会有相应的java代码和布局,并且他会帮你在manifest注册好这个activity。

下面我们需要的也就是自定义这个功能,让他实现输入一个类名后在你指定的包下面自动生成5个mvp相关类和布局文件已经manifest注册。

首先,我们需要知道,系统自带的模板位置:XXX\android-studio\plugins\android\lib\templates\activities
这个目录下就是上面我们看到的所有activity模板的文件目录,先来简单介绍一下模板的目录下几个重要的文件及其作用,我们以LoginActivity这个模板为例:

studio模板,一键生成多个类,mvp党福利_第3张图片

root:这个目录下面放的是我们我们的代码模板,和file template代码类似,但是有一定区别。我喜欢叫他们模板输出原型。

globals.xml:这个文件是用来配置某些特殊属性的,比如是否是启动页面之类的属性。

recipe.xml:这个文件主要是配置需要生成哪些文件,用哪个模板生成,生成后要输出到哪个目录。

template.xml这个文件主要是用来定义我们的一些文件名和包名之类的变量属性,看看LoginActivity的配置界面效果,相信大家就懂这个文件的作用了:

studio模板,一键生成多个类,mvp党福利_第4张图片

template_login_activity.png:这个是上面图中那个界面示意图,通常不需要管它,当然你也可以放一张自己的图,替换掉。

下面说说怎么自定义自己的模板,(文章开始已经说了,本文并不会详细介绍如何进行自定义模板<我能说是自己也是才学这个东西吗?>,这里直接介绍我自己自定义时遇到的坑,和一些比较重要的注意事项):

  • 首先,建议大家从最简单的模板开始尝试,不要一开始就完全以自己的mvp类去写,等熟悉了相关属性和规则后再去写mvp相关的模板,这是因为模板这个东西不是我们的项目代码,如果你配置错了,使用时虽然会有报错提示,但是并不准确,所以如果你一次性写太多东西的话,排查错误时很慢。
  • 其次,建议直接先复制一份系统的模板代码比如(LoginActivity模板),然后在此基础上修改,不要自己去创建每个文件,理由和第一条类似,容易出错。

然后开始我们的模板创建之旅:

1.创建Demo项目用于测试

非常简单,只包含了一个默认的自动生成的MainActivity类


studio模板,一键生成多个类,mvp党福利_第5张图片

2.复制LoginActivity模板

在我们的对应目录XXX\android-studio\plugins\android\lib\templates\activities中复制LoginActivity文件夹并重命名为MVPTestActivity,接着进入我们复制的文件夹,打开template.xml这个文件,改掉name的值,最好是和你的目录名保持一致,我们这里就叫MVPTestActivity,其他几个属性可以按照自己的需要进行修改。