美文网首页Android知识
如何写一个 Android Studio 工程模版

如何写一个 Android Studio 工程模版

作者: 9bc96fd72f8e | 来源:发表于2016-10-02 17:16 被阅读270次

    一个简单的示例效果如下

    1

    ftl 预处理文件的好处可以用以下示例来说明

    package ${packageName};
    
    public class ${activityClass} extends ${superClass} {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            <#if generateLayout>
                setContentView(R.layout.${layoutName});
            </#if>
            <#include "../../../../common/jni_code_usage.java.ftl">
        }
        <#include "../../../../common/jni_code_snippet.java.ftl">
    }
    
    1. ${activityClass} 表示一个变量,这样就可以指定生成活动的名称。
    2. ${activityToLayout(activityClass)} 其中activityToLayout是一个内置函数,将类名转为布局文件名。
    3. FreeMarker还可以使用 ifinclude 语法。

    创建模版必须熟悉模版的目录结构,也可以参考已存在的模版。

    一些注意点

    1.template.xml 文件是根配置文件,其中 parameter 标签的参数 type 可以是 string, boolean, enum 以及 separator,将被渲染成不同的UI控件。

    2.globals.xml.ftl配置文件中存放的是全局变量,大部分来源于Comman目录中的定义,也可以自定义,全局变量的另一个来源是parameter 标签,如表示活动名的 activityClass 变量就是一个全局变量。

    3.recipe.xml.ftl文件决定了那些文件将参与工程构建,是创建模版的核心。

    <instantiate from="root/src/app_package/SimpleActivity.java.ftl"
                   to="${escapeXmlAttribute(srcOut)}/${activityClass}.java" />
    
    <open file="${escapeXmlAttribute(srcOut)}/${activityClass}.java" />
    

    这里instantiate表示将使用SimpleActivity.java文件的包装 ftl 文件做底,在工程的srcOut目录下生成名为 activityClass(如 MainActivity ) 的活动类。

    open则表示新建模版工程后将打开该活动,一般应避免打开布局文件。

    相关文章

      网友评论

        本文标题:如何写一个 Android Studio 工程模版

        本文链接:https://www.haomeiwen.com/subject/mpydyttx.html