返回

Android Template学习笔记——探索模板的复杂世界

Android

Android Template的类型介绍
Android Template可以从复杂程度分为三种:Live Template、File Template和Android Studio 工程模板。Live Template和File Template可以被多个IDE使用,他们都依赖于IDE本身的功能;而Android Studio 工程模板则需要比较复杂的配置。接下来分别介绍这三种模板。

Live Template

Live Template是一种可以在任何位置创建或编辑的模板,它使用的是IDE本身的自带的代码模板,如Android Studio中Live Template是基于Groovy语言的。Live Template的主要优点是即开即用,不需要任何外部环境,在Android Studio中,它可以在XML代码中使用<template>这种方式使用。Live Template又分为snippet和surround,可以理解为局部和全局的含义,snippet就是对选中部分进行操作,surround就是对选中部分之外的内容进行操作。它可以在文本编辑器中,通过快捷键触发后,将预先的内容插入到文本编辑器中。Live Template常用来简化输入或操作。以下是一些常见的Live Template示例:

  • TabstoFragments: 这是一个将TabView转换成Fragments的Live Template。
  • ViewBinding: 这是一个将View和数据绑定在一起的Live Template。
  • Log: 这是一个将打印日志的代码直接插入到编辑器的Live Template。

File Template

File Template是一种用来创建一个新的文件的模板,使用的是自定义的模版,用户可以自主选择创建新的模版或者修改原有模版。File Template的实现要依赖于外部环境,如Android Studio需要Ant的支持。在Android Studio中,File Template的扩展名为 .android,它可以被用来创建完整的Android应用程序,这是一种非常灵活且强大的模板。以下是一些常见的File Template示例:

  • Activity: 这是一个创建新的Activity的File Template。
  • Fragment: 这是一个创建新的Fragment的File Template。
  • Service: 这是一个创建新的服务的File Template。
  • Broadcast Receiver: 这是一个创建新的广播接收者的File Template。

Android Studio 工程模板

Android Studio 工程模板是一种比File Template更为复杂的模板,它不仅仅是创建一个文件,它还需要修改Android Studio中的build.gradle、AndroidMainfest.xml和app/build/AndroidPackages/AndroidManifests。这种模板的使用场景一般是增加一个组件到Android Studio的项目。以下是一些常见的Android Studio 工程模板示例:

  • Empty: 这个Android Studio 工程模板将创建一个新的Android应用程序。
  • Basic: 这个Android Studio 工程模板将创建一个新的Android应用程序,其中包含一些基本的组件,如Activity、Fragment等。
  • Navigation: 这个Android Studio 工程模板将创建一个新的Android应用程序,其中包含一些导航组件,如BottomNavigationBar、NavigationView等。
  • Dagger: 这个Android Studio 工程模板将创建一个新的Android应用程序,其中包含一些Dagger组件,如DaggerRepository、DaggerUseCase等。

Android Studio 工程模板的使用

接下来,以Android Studio 工程模板为例,提供一个全面的案例,解释如何使用它。

前提条件

  • 确保已经安装了Android Studio。
  • 确保已经安装了Ant。
  • 确保已经将Ant添加到Android Studio的构建路径中。

步骤

  1. 打开Android Studio并创建一个新的Android项目。
  2. 在Android项目的根文件夹中,创建一个名为“Templates”的文件夹。
  3. 在“Templates”文件夹中,创建一个名为“MyTemplate”的子文件夹。
  4. 将模板文件复制到“MyTemplate”文件夹中。
  5. 编辑Android Studio的build.gradle文件,添加以下内容:
apply plugin: 'com.android.application'

android {
    ...
    // 添加模板
    source.buildTypes.each {
        def buildType = it.name
        def projectDirectory = rootDir
        ["create" + capitalize(buildType)].each {
            def taskName = it
            project.tasks.registerTask(taskName, TemplateTask) {
                projectDir = projectDirectory
                taskName = name
            }
            tasks.get(taskName).dependsOn assemble.name
        }
    }
}
  1. 编辑Android Studio的AndroidMainfest.xml文件,添加以下内容:
<application ...>
    <activity ...>
        ...
    </activity>
</application>
  1. 编辑Android Studio的app/build/AndroidPackages/AndroidManifests文件,添加以下内容:
<manifest ...>
    <activity ...>
        ...
    </activity>
</application>
  1. 构建Android项目。

结果

  • Android Studio项目中将有一个新的组件。
  • Android Studio项目中的build.gradle文件中有新的任务。
  • Android Studio项目中的AndroidMainfest.xml文件中有一个新的活动。
  • Android Studio项目中的app/build/AndroidPackages/AndroidManifests文件中有一个新的活动。

结论

Android Template的复杂性体现在不同类型的模板,Android Studio的Template可分为Live Template、File Template和Android Studio 工程模板,前两种模板可以被多个IDE使用,可以看做是依赖于IDE本身的功能,最后一个则需要比较复杂的配置。本文对这三种模板做了详细的介绍,并提供一个全面的Android Studio 工程模板案例,以解释如何使用它。