移动应用开发:如何创建自定义Android代码模板

介绍

这篇教程会为你展示如何创建属于你自己的代码模板。大多数的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



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

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

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



        
    
        

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

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

1.创建AndroidManifest.xml.ftl


    
        
        
        
            
                
                
            
        
    

其中的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在代码生成后打开一个文件。












 






       
    
    

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:
请检查模板中所有文件的行分隔符是否正确,请确保使用正确的行分隔符在对应的的计算机的操作系统中。

原文链接

你可能感兴趣的:(移动应用开发:如何创建自定义Android代码模板)