Android技术知识Android开发经验谈Android精选

Android Studio Activity模版开发

2019-01-29  本文已影响25人  唠嗑008

为什么要使用模版开发

在开发之中,我们总会遇到一些比较通用的模块,比如启动页,登陆功能,网络请求,MVP模式等等。有些功能甚至需要重复使用多次,我们通常的做法是把之前的模块拷贝过来,修改名字,再修改内容。如果使用了代码模板的话,会减少很多重复的工作。

我们经常使用的系统的模版的结构如下图所示。如果你想自定义一个Activity模版或其他类模版,你可以把这2个文件拷贝过去,修改一下就行了。


这种方式稍微复杂一些,因为新手大都对这几个文件不熟悉,不知道怎么修改。我推荐一种插件化的方式(强烈推荐)
https://www.jianshu.com/p/e3548f441440

模板文件后缀名都是以【.ftl】结尾。

globals.xml.ftl

<?xml version="1.0"?>
<globals>
    <global id="resOut" value="${resDir}" />
    <global id="srcOut" value="${srcDir}/${slashedPackageName(packageName)}" />
    <global id="relativePackage" value="<#if relativePackage?has_content>${relativePackage}<#else>${packageName}</#if>" />
</globals>

定义一些全局的变量,可以看到其内部有<global>标签,分别定义id,type,默认值。同理,我们可以通过id的值访问到该值。

recipe.xml.ftl

<?xml version="1.0"?>
<recipe>

    <instantiate from="root/src/app_package/MVPActivity.java.ftl"
        to="${escapeXmlAttribute(srcOut)}/${activityName}Activity.java" />

    <merge from="root/AndroidManifest.xml.ftl"
           to="${escapeXmlAttribute(manifestOut)}/AndroidManifest.xml" />

    <merge from="root/${resIn}/values/strings.xml.ftl"
             to="${escapeXmlAttribute(resOut)}/values/strings.xml" />

</recipe>

template.xml

<?xml version="1.0"?>
<template
    format="5"
    revision="5"
    name="MVPActivity"
    minApi="7"
    minBuildApi="14"
    description="mvp">

    <category value="Activity" />
    <formfactor value="Mobile" />

    <!-- input data -->
    

    <parameter
        id="activityName"
        name="Activity Nme"
        type="string"
        default="MVP"
        help="" />

    <!-- 128x128 thumbnails relative to com.puke.template.xml -->
    <thumbs>
        <!-- default thumbnail is required -->
        <thumb>template_cover.png</thumb>
    </thumbs>

    <globals file="globals.xml.ftl" />
    <execute file="recipe.xml.ftl" />

</template>

parameter,部分属性介绍:

template.xml的最下面的部分引入了globals.xml.ftl和recipe.xml.ftl。

我创建了启动页和MVP模式的2个模版,大家可以参考一下。后续有新的,会继续添加上去。
https://github.com/zhouxu88/CustomTemplate

上一篇下一篇

猜你喜欢

热点阅读