使用FreeMarker模板引擎自定义Android工程模板

使用FreeMarker模板引擎自定义Android工程模板

前两天受邀回答了这个问题:Androidstudio 快速创建各种各样的Activity的插件是什么? - Android 开发

根据提问中的截图,再结合作者在脉脉上的动态,基本上可以确定这个插件还没有发布,并且这个插件就是工程模板插件,可以通过模板直接创建各种各样的Activity、Module、Project,之前有在简书上写过一篇文章:自定义Android Studio工程模板,深入了解AS的模板之后感觉写得太浅显了。


通过Android Studio创建Project、Module、Activity、Fragment时,都会有像下图这样的对话框一步一步引导开发者生成想要的文件,这就是AS的模板,这些模板在Android Studio安装目录下,具体路径在“SDK_INSTALL_LOCATION\\plugins\android\lib\templates”:

进入任何一个模板文件夹,可以看到有很多以ftl结尾的文件:

ftl是FreeMarker Template Language的缩写,AS中的这些模板是通过FreeMarker模板引擎创建的,所以只要熟悉了FreeMarker的语法,自定义模板基本没什么问题:

FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

模板编写为FreeMarker Template Language (FTL)。它是简单的,专用的语言, 不是 像PHP那样成熟的编程语言。 那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,你可以专注于如何展现数据, 而在模板之外可以专注于要展示什么数据。


如果细心找,网络上关于如何自定义AS的工程模板的文章还是比较多的,比如下面这些文章,已经讲得足够详细了,没有必要再花篇幅讲解如何自定义模板:


了解AS的工程模板还是有必要的:

  1. 比如我们需要修改创建AS模板中的默认样式:

  • 模板中的.gitingore中默认过滤掉了local.properties文件,可以在模板中加上,没有必要每次都手动添加;
  • 在模板中修改build.gradle,依赖公司内部的私有maven库;
  • 模板中增加对公司内部公共组件的依赖;
  • 去掉Activity布局文件中根标签的paddding属性;
  • 其它。。。

2. 或者由于业务需要公司内很多APP都需要用到同样的界面时。

但不要担心这种模板插件会危及我们的工作,这种模板都是静态的,无法实现程序中的逻辑,并且需求都是变化的,模板的适用场景太少了。

专栏开通了打赏功能,如果文章对你有帮助,你的打赏是我持续写作的动力噢,加油~

发布于 2016-06-04

文章被以下专栏收录