Android 你可能忽略的提高敲代码效率的方式(转)

本文转自鸿洋微信公众号由大力-哥投稿。

大力-哥的博客地址:

http://blog.csdn.net/qq137722697

本篇将从 Live Templates简介,常用AS自带模板,自定义模板三个方面开展介绍,并且只介绍 Live Templates中Java代码方面的使用,其余感觉不是很常用,看完这篇之后你可以自己研究一下。

一个好的程序猿应该是花更多的时间在处理业务处理上,而不是重复敲相同的代码,一行代码节约1s也是节约。看完这篇之后你会觉得AS确实越来越强大了,简直是Android程序猿的福音呀,希望推出更多提高开发效率的工具或插件。废话不多说,直接进入主题。

1、什么是 Live Templates

没有统一的翻译,代码模板、热键模板、动态模板随便叫哪个都行

作用

代码快速补全

提高写代码的速度

位置

Settings->Editor->Live Templates

用法

全关键字型:关键字–>回车

后缀关键型:使用对象.关键字–>回车

简单使用

先来两个效果图,吊一下胃口,更加实用的还在后面

AS自带模板

快速打印日志

logt –>快速补全TAG

loge—>快速补全Log.e(TAG,”“);

自定义模板

输入 sin 回车即自动补全单例模式所需的代码

系统自带模板

系统自带模板从两个方面讲解,全关键字型和后缀关键型,由于篇幅的原因,这里只讲解常用的一些模板,未讲解到的可以到 Settings->Editor->Live Templates中查看

2、全关键字型

先来说说什么是全关键字型,其实就是输入关键字–>回车,

eg:输入loge 回车即会自动打印出

Log.e(TAG, "onCreate: ", );

(1)findViewById

在此之前我们在Activity中找到一个view可能是这样写的:

有了fbc之后我们可以这样写:fbc 回车

(2)定义常量

以前你写整形常量是不是要一个单词的敲出: private static final int 。。。

还有更快的写法:const 回车

字符串常量也有:key 回车

其他常量,目前as只提供了整形和字符串类型常量的模板,学了后面的自定义之后你就可以定义其他类型的了,当然还有一种捷径:psf 回车即可快速补全

public static final

(3)for循环

相信很多小伙伴也觉得每次都要写整个for循环好麻烦,as提供了:fori 回车,看对比图

这里还有一个隐藏的模板,sout 回车即可快速补全 System.out.printf(“”);

(4)if判断

ifn 回车(推荐)

inn 回车

(5)隐藏View

gone


(6)快速在子线程中切换到主线程

rouiT

(7)字符串格式化

Sfmt

(8)快速实现自定义View的三个构造方法

ViewConstructors

个人觉得这个是一个非常实用的模板了,比快捷键还方面,不行你自己试试

OK 全关键字型就只讲这些常用的了,不常用的可以去设置中查看。

3、后缀关键型

再来说说什么是后缀关键型,其实就是“使用对象.关键字–>回车”,继续往下看就知道是什么啦:

判断

.notnull

.null

局部变量

.var

全局变量

.field

这个也是一个非常实用的模板,在代码量非常多的类中就更加突出了,不用跑到来的最前面定义右跑回来初始化。

循环

.for 增强for循环

.fori 正序遍历

.forr 逆序遍历

还有针对下标的


return返回

.return

类型转换

.cast


抛出异常

.try

字符串格式化

.format

分支

.switch

后缀型的也只讲这些常用的了,快进入激动的自定义模板。

4、自定义模块

我这里给出几个比较常用的自定义模板,如果你觉得有比较好的可以抽取出来的,欢迎留言。

(1)单例模式

还是一开始就给出的单例模式,再来看看效果图:

是不是很带感,来看看怎么设置(建议先新建一个Template Group,便于管理):

然后点击 Edit variables

下面是单例模式的模板(根据个人写单例模式的习惯来)

来看看上面涉及到的知识:

更详细的Expression 介绍:

https://www.jetbrains.com/help/idea/2016.1/live-template-variables.html

Skip if defined :

如果选中,光标会直接跳到句末,不会停留在某个变量处。

(2)click

模板:

public void onClick(View view) {

switch (view.getId()) {

case R.id.$resId$:

$content$

break;

default:

break;

}

}

(3)打印带定位功能的日志

新建 dl (名字自拟)为下面的模板

Log.e("$class$",

"$method$($class$.java:$line$)"+$content$);

为什么打印下面的代码就可以定位到指定类所在的行数呢?

Log.e("MainActivity",

"onCreate(MainActivity.java:13)我是日志内容");

告诉你一个小秘密,logcat中只要打印的内容中带有”(类名.java:行号)”就可以自动变为可点击的链接,点击之后就可以跳转到改类指定的行数。

这样就实现了打印带定位功能的日志,但是这个是有一定的局限性的,比如打印语句之前很可能会增加代码,由于行数是固定死的,此时就会导致定位有一定的误差。怎么解决呢?这里推荐看一个日志打印的工具类,android studio日志打印神器,日志代码跟踪器ELog。

(4)Switch

快速搭建模式、防止漏掉break和default

switch ($content$) {

case $value$:

$code$

break;

default:

break;

}

(5)字符串非空判断

这也是一个非常实用的模板了

TextUtils.isEmpty($content$);

最后

这篇文章是本人在给组内同事培训时制作的ppt修改而来,我将ppt共享出来,如果你有这个需求也可以下来修改修改。

下载地址:

https://github.com/huangdali/livetemplates

如何你觉得这篇文章对你有用,欢迎star,如果你有更好的自定义模板,欢迎填充完善,帮助更多的人

如果你有想学习的文章直接留言,我会整理征稿。如果你有好的文章想和大家分享欢迎投稿,直接向我投递文章链接即可。

欢迎长按下图->识别图中二维码或者扫一扫关注我的公众号:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,919评论 25 709
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,118评论 6 342
  • 1 背景 一个项目开发必然会涉及团队协作,而工程质量就需要团队去保证。一般我们期望的代码:无潜在风险、无重复逻辑、...
    zyl06阅读 8,423评论 5 16
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,810评论 19 139
  • 中午的阳光总是那么热 地里的草总是那么高 看见爷爷的手一下一下磨着刀 这是要准备干嘛?
    蒋进爱阅读 1,670评论 0 0

友情链接更多精彩内容