本文記錄了自己是如何建立一個(gè)模板的闯冷,其實(shí)過程很簡(jiǎn)單榨咐。
·1.查看android studio 本身自帶的模板璧亚;
2.模仿android studio 模板寫一個(gè)自己的模板版姑;
android studio 自身的模板在android studio\plugins\android\lib\templates\activities目錄下柱搜,然后我們查看最簡(jiǎn)單的EmptyActivity
template.xml ?android studio 創(chuàng)建項(xiàng)目,用戶選擇輸入的內(nèi)容
globals.xml.ftl 全局變量
recipe.xml.ftl ?用來創(chuàng)建模板代碼的主要文件
root文件夾 存放對(duì)應(yīng)源碼的ftl文件剥险,以及資源文件
效果縮略圖
2.新建自己的模板:
直接復(fù)制EmptyActivity的模板聪蘸,
我們只需要就改其中的recipe.xml.ftl
其中主要標(biāo)簽的含義:
copy :從root中copy文件到我們的目標(biāo)目錄,比如我們的模板Activity需要使用一些圖標(biāo)表制,那么可能就需要使用copy標(biāo)簽將這些圖標(biāo)拷貝到我們的項(xiàng)目對(duì)應(yīng)文件夾健爬。
merge : 合并的意思,比如將我們使用到的strings.xml合并到我們的項(xiàng)目的stirngs.xml中
instantiate : 和copy類似么介,但是可以看到上例試將ftl->java文件的娜遵,也就是說中間會(huì)通過一個(gè)步驟,將ftl中的變量都換成對(duì)應(yīng)的值壤短,那么完整的流程是ftl->freemarker process -> java设拟。
open:在代碼生成后,打開指定的文件久脯,比如我們新建一個(gè)Activity后纳胧,默認(rèn)就會(huì)將該Activity打開。
include:是包含的意思
下面貼出我自己改了之后的:
我把include中的內(nèi)容盡量都放到recipe.xml.ftl文件中去了帘撰,
注意點(diǎn):
layout中的xml和java文件不可以copy跑慕,這些文件需要使用instantiate方法來生成。如何生成你可以直接仿造EmptyActivity中的例子摧找。
其中生成java文件是通過freemarker模板引擎來做的相赁,如有興趣可以學(xué)習(xí)一個(gè)freemarker怎么寫相寇。
參考連接: