android组件模板,提高效率必备神器 ---- Android Studio模板详解

原标题:提高效率必备神器 ---- Android Studio模板详解

Android Studio模板大家应该很熟悉,你新建一个project或者module的时候,AS会帮你提供几个选项供你选择,那个就是AS自带的模板,还有就是你点击project名字右键,选择new,你会发现有很多快捷功能,比如Activity,系统就给你提供了很多模板供你选择。

熟练使用Android Studio模板,能大大的提高开发效率,希望大家都来看看。

下面就全面系统的总结一下Android Studio模板。

本文同步发表在github,完整版的请看,写的这么辛苦,给个star吧!!

https://github.com/AweiLoveAndroid/The-pit-of-the-Android-Studio

一、工程目录模板

Android Studio 新建一个 project时并没有将 Android 开发中常用的文件目录全部生成,比如默认只生成了一个 drawable文件夹,常用的 drawable-hdpi等文件夹需要我们自己去创建。再比如values目录下的dimens.xml,res目录下的anim文件夹都是没有的,需要我们手动去创建。这样一来,自己创建浪费时间,同时创建的目录名字错了,编译肯定会报错。所以为了效率和安全起见,我们需要把工程目录模板进行修改,达到创建 project 时就可以生成完整的目录结构,不再手动去创建的目的。

(一) 新建module的时候自动生成dimens.xml.操作方式:进入 Android Studio 安装目录,依次进入 plugins --> android --> lib --> templates --> gradle-projects --> NewAndroidModule --> root --> res --> values,在values文件夹下创建 dimens.xml 文件夹,写入以下内容,保存:<?xml version="1.0" encoding="utf-8"?>

(二) 这里有3个需要变更的地方。

(1)新建module时,自动添加v4依赖,并且指定v4,v7包依赖版本。

(2)新建module时自动生成不同分辨率的drawable文件夹。

(3)指定dimens.xml的路径。

(三) 操作方式:

进入 Android Studio 安装目录,依次进入 plugins --> android --> lib --> templates --> gradle-projects --> NewAndroidModule,然后用编辑器打开 recipe.xml.ftl文件,并加入以下配置,如下图红色框框所示

8c6d4a14dab2811dee19f5c1e95af8a7.png

修改NewAndroidModule自带的模板

说明:

(1)dependency 这个意思是配置依赖库的url,默认的只有一个v7包,我这里新增了一个v4包的依赖

(2)v7或者v4后面的25.3.1是对应的版本号,比如你想用24的版本,你可以替换成你的sdk里面对应的版本号(不知道sdk版本号的可以查看 Android studio常用设置和快捷键)。

(3)mkdir 意思是创建目录

(4)解释一下以下这段代码的意思: 意思是把 模板的root/res/values/demins.xml 这个路径里面的dimens.xml拷贝到创建的项目资源目录下面的values/dimens.xml

(四) 新建module的时候想让module的build.gradle里面的编译指定某一个版本。比如我想要的结果是这样的:

android{

compileSdkVersion25

buildToolsVersion "25.0.3"

defaultConfig {

minSdkVersion25

targetSdkVersion 25

...

}

...

}

重点要设置的有4个:compileSdkVersion、buildToolsVersion、minSdkVersion、targetSdkVersion,下面讲一下操作方法:进入 Android Studio 安装目录,依次进入 plugins --> android --> lib --> templates --> gradle-projects --> NewAndroidModule --> root,然后用编辑器打开build.gradle.ftl,修改配置如下图所示:

f4921c45d5d690eb36128c48f17e290c.png

修改NewAndroidModule指定编译版本号

说明:先把这个文件备份,再去做修改。免费出问题了还可以还原回来。

(五) 新建一个project看看效果如何:

8cf9c884c99cfad7dbc0f1b42c5b4862.png

效果图 二、Live Templates 活动模板(暂且翻译为 灵活的模板 比较好)(一)打开方法: 点击菜单File --> 点击Settings --> 选择Editor --> Code Style --> Live Templates,这里面配置了常用代码,比如log,System.out.println,for循环等由于太多,下面只列举开发中经常用到的:(后面写注释“ //修改了快捷键名称” 表示修改了快捷键名称,不再使用默认的快捷键,没修改的是默认的快捷键)

(1)Android 安卓有关的

const常量

fbc findViewById

fore 创建 foreach循环 //修改了快捷键名称

gone 设置View为gone //修改了快捷键名称

IntentView 用ACTION_VIEW创建一个Intent

key 结果是 privatestaticfinal String KEY_$ value$ = "$value$";

newInstance 使用参数创建一个新的Fragment实例

co 生成构造方法 //修改了快捷键名称

cop 私有构造方法 //修改了快捷键名称

rgS 从资源文件getString(R. string.XXX)

rouiT 生成runOnUIThread

sbc 生成方格状注释代码块

Sfmt 格式化String String.format(XXX)

starter 创建一个静态的start(...)方法来启动一个Activity

toal 创建一个长时间的Toast //新增

toas 创建一个Toast //修改了快捷键名称

vi 设置View为visible //修改了快捷键名称

(2)AndroidComments 安卓组件fix 添加

// FIXME //修改了快捷键名称

do添加 // TODO //修改了快捷键名称

(3)AndroidLog 安卓打log有关的logd Log.d(TAG,

String)

loge Log.e(TAG, String)

logi Log.i(TAG, String)

logm 打印方法名称及其参数,Log.d(TAG,XXX)

logr 打印方法的结果

tag 根据当前的类名生成一个静态logtag //修改了快捷键名称,修改了内容,描述改为“根据当前类生成一个TAG”

private staticfinal StringTAG = $className$. class.getSimpleName();

logw Log.w(TAG, String,Exception)

logf Log.wtf(TAG, String, Exception) //修改了快捷键名称

(4)iterations 快速生成循环和迭代器代码块

for示例:

for(

inti =

0; i < ; i++) {}

//修改了快捷键名称

fora 示例:遍历数组 //修改了快捷键名称

for( inti = 0; i < Array.length; i++) {

inti1 = Array[i];

}

forc 示例:使用iterator遍历一个容器变量 //修改了快捷键名称

for(Iterator iterator = collection.iterator(); iterator.hasNext(); ) {

Object next = iterator.next();

} //这个是遍历一个容器变量的,直接让容器返回一个iterator进行遍历

whe 示例: while循环遍历枚举内容 //修改了快捷键名称

while(枚举类.hasMoreElements()) {

Object nextElement = 枚举类.nextElement();

}

iter 示例:遍历选中状态下的 set//修改了快捷键名称

for( inti : FOCUSED_STATE_SET) {...}

whi 示例: while循环使用iterator进行遍历 //修改了快捷键名称

while(iterator.hasNext()) {

Object next = iterator.next();

} //获取到了迭代器对象后,对迭代器进行遍历操作

forl 示例:遍历 list对象里面的内容 //修改了快捷键名称

for( inti = 0; i < list.size(); i++) {

Object o = list.get(i);

}

foraa 示例:倒叙遍历数组 //修改了快捷键名称

for( inti = Array.length - 1; i >= 0; i--) {

inti1 = FOCUSED_STATE_SET[i];

}

//以下这两个用的少,只是把快捷键改了一下,方便使用

fors 对StringTokenizer遍历 //修改了快捷键名称

forv 对Vector遍历 //修改了快捷键名称

(5)Other 其他的geti 获取到当前的实例 示例:

publicstaticMainActivity getInstance() {

return;

}

ifn 生成 ifnull代码块 示例: if(某变量 == null) {....}

inn 生成 ifnot null代码块 示例: if(某变量 != null) {....}

inst 判断某变量是不是某个类的实例对象 示例:

if($EXPR$ instanceof$TYPE$) {

$TYPE$ $VAR1$ = ($TYPE$)$EXPR$; $END$

}

lazy 执行延迟初始化,就是对象直到用的时候才进行初始化操作 示例:

if(savedInstanceState == null) {

savedInstanceState = newBundle();

}

st 获取数组最后一个元素 示例: arr[arr.length - 1]

mn 比较两个变量较小值 Math.min(var2,var3);

mx 比较两个变量较大值 Math.max(var2,var3);

main 生成一个main()函数的代码块

publicstaticvoid main(String[] args){ 。。。。 } //修改了快捷键名称

toar 把collection的对象存储到一个数组里面 示例:something.toArray( newcollection[something.size()])

(6)plain 关于修饰符psf

public

static

final

psfi publicstaticfinalint

psfs publicstaticfinalString

St String

thr thrownew

(7)surround 代码块被什么包裹。。

I被迭代器包裹 默认的是:

for( Objecto:){

}

(8)output(我改成了SystemOut) //修改了组的名称sysr 示例: System.err.println(

"example")

//修改了快捷键名称

sysf 示例: System. out.printf( "example") //修改了快捷键名称

syso 示例: System. out.println( "example") //修改了快捷键名称

sysom 打印当前类的当前方法名, 示例:System. out.println( "MainActivity.onCreate"); //修改了快捷键名称

sysop 打印当前方法的所有参数列表及其值, 示例:

System. out.println( "savedInstanceState = ["+ savedInstanceState + "]"); //修改了快捷键名称

sysov 打印一个变量值, 示例:System. out.println( "arr = "+ arr); //修改了快捷键名称

(二)自定义活动模板我自定义了几个常用功能,放在lzw组下面,如图所示:

28a3712d95ba767435c385bce15299ac.png

我的自定义模板

han: 自动生成一个类继承 Handler

swi 自定义 switch/ case选择语句

toli 把数组转成集合(自定义的,后面会讲解怎么自定义的)

zs:注释模板

(1)点击右边的“+” 加号,选择 Template Group,创建一个组,输入一个组名,点OK

(2)找到刚创建的组,点击右边的“+” 加号,选择 Live Template,创建一个模板

(3)Abbreviation后面的输入框输入一个快捷键名称,Deion后面的输入框输入描述

(5)Template text 输入自定义模板的代码内容

(6)点击右边的Edit variables,编辑指定的变量名

具体如下图所示:

a3e6762985c614375e40125e2c62d97e.png

我的自定义模板步骤

三、File and Code Templates 文件和代码模板,这里讲一下自定义注释模板(一) 类注释原则上编写完成每个类都要有一个头部注释,标注类的功能描述,作者,联系方式和修改日期等。对自己的代码负责。

头部注释的添加有两种方式:

(1)第一种方式,可以在AS中,Settings → Editor → File and Code Templates → Includes → File Header,输入:/**

* 描述:添加类的描述

* @author yourName

* @e-mail XXX@XX.com

* @time ${DATE}

* /

这样便可在每次新建类的时候自动加上该头注释,如下图所示。

e37c23b30945e12cf990cd2bd492f344.png

自定义类注释模板方式1

(2)第二种方式,在Settings → Editor → Live Templates中配置,如下图所示:

1aaae6a66f5043d28088f0ff8732e80b.png

自定义类注释模板方式2

关于这里的DATE,点击右边的Edit variables,属性配置成date()

这种方式是配置模板和对应的快捷键,比如我的配置完成后在类的开头输入 lzw回车就会自动生成对应的注释模板:

(二) 方法注释原则上每一个成员方法(包括自定义成员方法、覆盖方法、属性方法)的方法头都必须做方法头注释。

在方法前一行输入/** + 回车或者设置Fix doc comment(Settings → Keymap → Fix doc comment)快捷键,

AS便会帮你生成模板,我们只需要补全参数即可。

四、自定义UI模板,新建project或者module的时候,右键可以快速生成模板,比如点击新建Activity,可以选择EmptyActivity等。。

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值