前言
这篇文章主要介绍的就是如何通过 Android Studio 提供的模版功能去自定义模版结构,从而实现类似于一键创建整个MVP代码的功能。可以说在提高效率的道路上,又向前走了一大步
下面可以来看一看具体效果:
觉得文章不错的小伙伴欢迎关注我,我会定期分享Android知识点及解析,还会不断更新的BATJ面试专题,欢迎大家前来探讨交流,如有好的文章也欢迎投稿。
介绍
在 Android Studio 中,创建一个 Activity 可以直接通过 File -> New -> Activity 来进行选择创建
通过这种方式创建的 Activity 会自动在 AndroidManifest.xml 中完成注册,创建其他组件也可以通过这种方式。
不过,如果你正在使用某种开发模式,譬如 MVP、MVVM 等,你每创建一个 Activity 就意味着需要同时创建一系列其他相关的类。
为了避免这种毫无意义的重复性劳动,我们可以编写模板代码去实现一键创建重复代码。
开始
下面我们就来开始模版的编写吧。
首先,找到你的 Android Studio 的安装目录,然后根据这个目录找到 ...\templates 目录:
然后进入 activityes 目录,我们将要编写的各种模版就在这个目录内:
要说如何去编写模版代码,一开始我也是一无所知的,不过好在 Android Studio 已经为我们提供了这些例子,我们直接参考例子去写。
就拿最简单的 Empty Activity 来开始吧
进入到 EmptyActivity 目录
globals.xml.ftl
打开 globals.xml.ftl 文件,下面是它的内容:
<?xml version="1.0"?>
<globals>
<global id="hasNoActionBar" type="boolean" value="false" />
<global id="parentActivityClass" value="" />
<global id="simpleLayoutName" value="${layoutName}" />
<global id="excludeMenu" type="boolean" value="true" />
<global id="generateActivityTitle" type="boolean" value="false" />
<#include "../common/common_globals.xml.ftl" />
</globals>
根据文件名来看, globals.xml.ftl 的作用是用来控制一些全局变量,比如是否显示 ActionBar 等,暂且先不用管它
recipe.xml.ftl
recipe.xml.ftl 文件内容如下:
<?xml version="1.0"?>
<#import "root://activities/common/kotlin_macros.ftl" as kt>
<recipe>
<#include "../common/recipe_manifest.xml.ftl" />
<@kt.addAllKotlinDependencies />
<#if generateLayout>