【Android】AndroidStudio 輕鬆完成自定義文件模板編寫

戰爭即和平

自由即奴役

無知即力量

                             ——《1984》


前言

由於現在的項目開發多數採用 mvc , mvp 等帶有結構性的架構進行開發。所以必不可少的要進行模板文件的編寫,費時費力。故採用 AndroidStudio 的 TemplateBuilder 插件完成模板代碼的自動生成。

最終效果:一鍵生成一套模板文件

----->


正文

一、準備

安裝 TemplateBuilder 插件

Preference - > Plugins -> 搜索 TemplateBuilder

安裝後重啓 AS

 

二、實踐

實現一個同時生成 Activity 和 Layout 文件的模板

1. 正常創建一個 Activity ,開始編寫模板

TemplateActivity.java

package ${packageName};

import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;


public class ${ActivityName}Activity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_${LayoutName});
    }
}
  • packageName 對應你點擊新建的目錄。如果其中還有層級,可以寫成 ${packageName}.view
  • 使用 ${} 聲明的是動態傳入的參數

activity_template.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

</LinearLayout>

現在的目錄結構

2. 生成模板

同時選中兩個文件

按 ALT + T ,彈出模板信息編輯框

填寫模板信息

add 添加模板參數,就是上文說的 ${ActivityName} ${LayoutName}

具體內容說明

  • Template Category 對應模板的分類,對應選擇導入模板時的模板分類,比如AS原本就有的Activity分類(我們經常在這個分類裏面使用EmptyActivity),這裏默認值是電腦的用戶名。
  • Template Name 對應模板名稱,對應選擇導入模板時的模板名稱,默認值是當前的Module名稱。
  • Template Description 對應模板描述信息,對應導入模板時彈出的導入界面的文字描述,默認爲空。
  • Template Folder 對應生成模板所存放的位置,如果是Mac操作系統則默認爲/Applications/Android Studio.app/Contents/plugins/android/lib/templates, Windows系統的話由於差異比較大,就默認爲空了,可以自行配置[Android Studio安裝目錄]/plugins/android/lib/templates(這裏只需要配置一次即可,插件將自動保存該位置)。(最好要能找到該目錄,後期更改模板方便)
  • Input data區域

關於Input data的使用,先解釋下每個屬性對應的含義

  • id 變量名,必須和模板中使用的變量名對應,必填,比如上面模板文件中使用${testName},這裏就應該填上對應的名稱,testName
  • name 變量簡介,必填
  • type 變量類型,string和boolean兩種,通過下拉框選擇,必填
  • default 變量對應的默認值,選填
  • help 添加該變量時的提示信息,選填

注意:不要使用中文,因爲編碼問題所以使用中文會變成亂碼

點擊 next ,進入更詳細的配置

  • recipe.xml.ftl

  • <merge>標籤那行作用是將定義的 AndroidManifest.xml.ftl 文件轉化爲 manifest.xml後與項目中的 AndroidManifest.xml 文件合併,完成了 Activity 在 AndroidManifest.xml 文件中註冊的工作
  • instantiate 標籤是 recipe.xml.ftl 文件的核心標籤,它的作用是將 from 屬性的 ftl 文件轉化爲 to 屬性的文件。
  • open 文件會打開對應的文件

修改生成的文件名

  • AndroidManifest.xml.ftl

因爲是 merge 操作,我們就添加註冊 Activity 行

點擊 ok ,底部彈出如下。重啓 AS 後生效

其他配置

template.xml,是控制創建時候的ui面板配置的,像在上一步中填寫的,名稱,默認值,類型等最終都是生成在這個文件中,當某項配置出錯時,可以根據需要做調整,不用每次都Alt+T新建模板。

build.gradle.ftl,是添加依賴使用的,我們沒有用到,所以不需要配置。

globals.xml.ftl,是全局一些配置,比如resOut是指定資源輸出文件夾。默認就ok了

效果

一鍵添加完成,可自行擴展匹配自己項目的模板,如文章開頭效果

三、總結

使用 AndroidStudio 編寫自定義模板需要這幾步:

  1. AS 安裝 TemplateBuilder 插件
  2. 新建模板文件
  3. 重啓 AS

使用模板的好處:

  • 省時省力
  • 代碼結構規範化
  • 很舒服

四、坑 及 小技巧

  • ${packageName} 不要寫成大寫的 P 
  • 想要修改模板文件不需要每次都去 ALT + T ,可以找到自己的模板文件目錄,mac 的默認目錄可以通過 

content -> plugins -> android -> lib -> templates 裏面找到

root 文件就是我們編寫 activity 等模板文件位置,直接修改,記得重啓 AS

  • 如果你不幸沒有成功,可以點擊 IDE 右下角彈出的 error ,很容易定位到問題

參考

Android Studio輕鬆構建自定義模板的步驟記錄

提高開發效率-使用Android Studio Template快速生成模板文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章