美文网首页Android知识Android开发Android进阶之旅
Android Studio 使用自定义模板简化开发

Android Studio 使用自定义模板简化开发

作者: 水瓶鱼 | 来源:发表于2017-03-26 04:31 被阅读191次

    现在Android 项目中基本都是MVP或MVVM架构的,相比之前的MVC架构MVP需要为Presenter层创建单独的类,有些麻烦。为了简化创建类的过程,可以对Android Studio的模板文件进行改造,在新建Activity或Fragment时自动创建Presenter层文件。

    基本知识

    • Android Studio模板文件位置 AndroidStudio\plugins\android\lib\templates\gradle-projects。
    • Android Studio中的模板使用FreeMarker ,不了解的可以到官网看看。
    • 模板主要由三个文件构成分别为 template.xml(描述文件),globals.xml.ftl(变量),recipe.xml.ftl(生成新的文件)。

    开始改造

    1 从模板中选出自己常用的activity和fragment模板,打开template.xml,修改template中的name

    <template
        format="5"
        revision="5"
        name="MVP Activity" //模板名称,不能重复
        minApi="9"
        minBuildApi="14"
        description="Creates a new mvp activity">
    

    2 根据需要添加新的参数,因为我习惯把view,presenter,contract放在新的package中,我添加了下面两个参数,分别代表是否创建新package,和package名称

    
        <parameter
            id="createPackage"
            name="create new package"
            type="boolean"
            default="true"
            help="create a new package" />
    
        <parameter
            id="activityPackage"
            name="activity package path"
            type="string"
            default="${classToResource(activityClass)}"
        suggest="${classToResource(activityClass)}"
            />
    

    3 在recipe.xml.ftl中添加处理过程

    <#if createPackage>
            <instantiate from="root/src/app_package/SimpleActivity.java.ftl"
                        to="${escapeXmlAttribute(srcOut)}/${escapeXmlAttribute(activityPackage)}/${activityClass}.java" />
            <open file="${escapeXmlAttribute(srcOut)}/${escapeXmlAttribute(activityPackage)}/${activityClass}.java" />
            
            
            <instantiate from="root/src/app_package/SimpleContract.java.ftl"
                        to="${escapeXmlAttribute(srcOut)}/${escapeXmlAttribute(activityPackage)}/${contractName}.java" />
            <open file="${escapeXmlAttribute(srcOut)}/${escapeXmlAttribute(activityPackage)}/${contractName}.java" />
                        
            
            <instantiate from="root/src/app_package/SimplePresenter.java.ftl"
                        to="${escapeXmlAttribute(srcOut)}/${escapeXmlAttribute(activityPackage)}/${presenterName}.java" />
            <open file="${escapeXmlAttribute(srcOut)}/${escapeXmlAttribute(activityPackage)}/${presenterName}.java" />
        <#else>
            <instantiate from="root/src/app_package/SimpleActivity.java.ftl"
                       to="${escapeXmlAttribute(srcOut)}/${activityClass}.java" />
    
        <open file="${escapeXmlAttribute(srcOut)}/${activityClass}.java" />
        </#if>
    

    4 将修改完的文件放回template文件夹中,重启Android Studio,不出意外的话点击新建activity就可以在里面找到刚才改过的模板

    新建Activity 新建Activity 新建完成

    5 写完后最好将自己的模板文件另外保存一份,AndroidStudio更新会将自己放入的模板文件删除。

    文件模板已上传至github,可供参考

    相关文章

      网友评论

        本文标题:Android Studio 使用自定义模板简化开发

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