介绍

这篇教程会为你展示如何创建属于你自己的代码模板。大多数的Android开发者都至少一次使用过Android代码模板来新建工程。但是你有没有尝试过创建自己的Android代码模板?
在这篇教程中,我们将会为你展示可用于从Android Studio IDE生成包含Google Analytics配置的Android工程模板。

源码

在这里下载源码

代码生成过程图解

具体创建步骤

要创建自己的模板,请确保:

  1. 你已经了解上述代码生成过程图解;
  2. 你有一些关于FreeMarker的知识;
  3. 你有一些关于Android IDE模板格式的知识,你可以在这里查看相关文档。

第一步:创建Google Analytics应用程序文件夹

这是你的模板目录,在Windows上,${android studio 安装路径}/plugins/android/lib/templates/,其他平台Linux,Mac OS请自行查找;
在GoogleAnalyticApplication文件夹中创建根文件夹和其他文件,如下所示:


第二步:创建template.xml文件

每个模板目录必须包含一个template.xml文件,这其中包含有关模板的一些元数据,包括名称,描述,类别和用户可见参数这些IDE将作为选项呈现给用户。
文件中还会在指明FreeMarker处理的recipe文件名称和全局变量文件,如果除了模板参数值之外还有全局变量应该对所有FreeMarker处理的文件可见。
Template.xml

<?xml version="1.0"?>

其中的一些参数比如: activityClass, layoutName, classApplication, googleAnalyticID, dispatchPeriod, autoActivityTracking,将在创建项目时显示在弹出窗口中。

第三步:创建globals.xml.ftl文件

这是一个可选的文件,里面包含全局变量的定义,用于此模板的所有FreeMarker处理任务。
globals.xml.ftl

<?xml version="1.0"?>                    

第四步:在root文件夹中创建相关文件和文件夹

root文件夹中包含模板源代码

1.创建AndroidManifest.xml.ftl
<?xml version="1.0" encoding="utf-8"?>                                                                                                

其中的packageName,classApplication是在template.xml文件中定义的。

2.创建Application.java.ftl文件
package ${packageName};import android.app.Application;import com.google.android.gms.analytics.GoogleAnalytics;import com.google.android.gms.analytics.Tracker;/** * Created by TungDX on 5/29/2015. */public class ${classApplication} extends Application {    private static GoogleAnalytics analytics;    private static Tracker tracker;    @Override    public void onCreate() {       analytics = GoogleAnalytics.getInstance(this);       tracker = analytics.newTracker("${googleAnalyticID}");    }    public static GoogleAnalytics getGoogleAnalytics() {       return analytics;    }    public static Tracker getTracker() {        return tracker;    }}

其中的packageName,googleAnalyticID是在template.xml文件中定义的。

3.创建MainActivity.java.ftl文件
package ${packageName}.activities;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import ${packageName}.${classApplication};import ${packageName}.R;public class MainActivity extends ActionBarActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    @Override    protected void onStart() {        super.onStart();        ${classApplication}.getGoogleAnalytics().reportActivityStart(this);    }    @Override    protected void onStop() {        super.onStop();        ${classApplication}.getGoogleAnalytics().reportActivityStop(this);    }}

其中的packageName,classApplication是在template.xml文件中定义的。

4.创建activity_main.xml.ftl文件
    
5.创建strings.xml.ftl文件
    <#if !isNewProject>    ${escapeXmlString(activityTitle)}        Google Analytic is ready!
6.创建dimens.xml文件
        16dp    16dp
7.创建recipe.xml.ftl文件

recipe.xml文件中包含了从该模板生成代码时应执行的各个命令。比如,你可以复制某些文件或目录,或者通过FreeMarker运行源文件,并要求IDE在代码生成后打开一个文件。

<?xml version="1.0"?>                
8.检查依赖
9.检查AndroidManifest.xml.ftl
10.检查Application.java.ftl
https://robusttechhouse.com/wp-admin/post.php?post=6937&action=edit&message=10#
11.检查MainActivity.java.ftl

12.检查analytics_global_config.xml.ftl
13.从模板中生成 activity_main.xml, dimens.xml, strings.xml文件
14.工程创建成功后打开对应文件

如果你的Android Studio IDE运行,请重新启动它看到自己的模板如下图



如果从模板生成项目时遇到此错误:AssertionError: Wrong line separators: ‘…plication;\r\n\r\nimport…’ at offset 29:
请检查模板中所有文件的行分隔符是否正确,请确保使用正确的行分隔符在对应的的计算机的操作系统中。

原文链接

更多相关文章

  1. Android应用程序进程启动过程的源代码分析(1)
  2. Android API之Typeface代码演示
  3. Android的4种文件类型Java,class,dex,apk
  4. Android生成APK文件
  5. 【Android】在Android上使用OrmLite数据库框架 之 使用表配置文
  6. Android开发中的drawable文件:shape、layer-list和selector标签

随机推荐

  1. MySQL数据库8——数据库中函数的应用详解
  2. mysql下载与安装过程详解
  3. MySQL使用LOAD_FILE()函数方法总结
  4. mysql 8.0.15 下载安装详细教程 新手必备
  5. Centos7下mysql 8.0.15 安装配置图文教程
  6. Linux下mysql 8.0.15 安装配置图文教程以
  7. sql与各个nosql数据库使用场景的讲解
  8. MySQL group by对单字分组序和多字段分组
  9. MySQL开发规范与使用技巧总结
  10. pycharm2017实现python3.6与mysql的连接