Android Studio 使用自定義模板簡(jiǎn)化開(kāi)發(fā)

現(xiàn)在A(yíng)ndroid 項(xiàng)目中基本都是MVP或MVVM架構(gòu)的,相比之前的MVC架構(gòu)MVP需要為Presenter層創(chuàng)建單獨(dú)的類(lèi),有些麻煩。為了簡(jiǎn)化創(chuàng)建類(lèi)的過(guò)程,可以對(duì)Android Studio的模板文件進(jìn)行改造,在新建Activity或Fragment時(shí)自動(dòng)創(chuàng)建Presenter層文件。

基本知識(shí)

  • Android Studio模板文件位置 AndroidStudio\plugins\android\lib\templates\gradle-projects。
  • Android Studio中的模板使用FreeMarker ,不了解的可以到官網(wǎng)看看。
  • 模板主要由三個(gè)文件構(gòu)成分別為 template.xml(描述文件),globals.xml.ftl(變量),recipe.xml.ftl(生成新的文件)。

開(kāi)始改造

1 從模板中選出自己常用的activity和fragment模板,打開(kāi)template.xml,修改template中的name

<template
    format="5"
    revision="5"
    name="MVP Activity" //模板名稱(chēng),不能重復(fù)
    minApi="9"
    minBuildApi="14"
    description="Creates a new mvp activity">

2 根據(jù)需要添加新的參數(shù),因?yàn)槲伊?xí)慣把view,presenter,contract放在新的package中,我添加了下面兩個(gè)參數(shù),分別代表是否創(chuàng)建新package,和package名稱(chēng)


    <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中添加處理過(guò)程

<#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,不出意外的話(huà)點(diǎn)擊新建activity就可以在里面找到剛才改過(guò)的模板

新建Activity
新建Activity
新建完成

5 寫(xiě)完后最好將自己的模板文件另外保存一份,AndroidStudio更新會(huì)將自己放入的模板文件刪除。

文件模板已上傳至github,可供參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容