移动应用开发:如何创建自定义Android代码模板
介绍
这篇教程会为你展示如何创建属于你自己的代码模板。大多数的Android开发者都至少一次使用过Android代码模板来新建工程。但是你有没有尝试过创建自己的Android代码模板?
在这篇教程中,我们将会为你展示可用于从Android Studio IDE生成包含Google Analytics配置的Android工程模板。
源码
在这里下载源码
代码生成过程图解
具体创建步骤
要创建自己的模板,请确保:
- 你已经了解上述代码生成过程图解;
- 你有一些关于FreeMarker的知识;
- 你有一些关于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"?> template_google_analytics.png
其中的一些参数比如: 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)} #if> 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:
请检查模板中所有文件的行分隔符是否正确,请确保使用正确的行分隔符在对应的的计算机的操作系统中。
原文链接
更多相关文章
- Android应用程序进程启动过程的源代码分析(1)
- Android API之Typeface代码演示
- Android的4种文件类型Java,class,dex,apk
- Android生成APK文件
- 【Android】在Android上使用OrmLite数据库框架 之 使用表配置文
- Android开发中的drawable文件:shape、layer-list和selector标签