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


    每日推荐

    Eyepetizer-in-Kotlin:一款简约的小视频app,带你走进kotlin

    作为学习kotlin的一款app,在撸代码的过程中学习kotlin的语法及特性。

    Eyepetizer-in-Kotlin适合初学者作为学习kotlin语言的一个项目,可以在做项目的同时体验到kotlin语言的优点。

    https://github.com/LRH1993/Eyepetizer-in-Kotlin

    本文作者

    本文由大力-哥投稿。

    大力-哥的博客地址:

    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

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

  • 相关阅读:
    taro 填坑之路(一)taro 项目回顾
    Redux遵循的三个原则是什么?
    解释一下 Flux
    MVC框架的主要问题是什么?
    与 ES5 相比,React 的 ES6 语法有何不同?
    你了解 Virtual DOM 吗?解释一下它的工作原理
    DOM 事件有哪些阶段?谈谈对事件代理的理解
    CSS:用Less实现栅格系统
    .NET:国际化和本地化
    自定义工作流 之 模型设计与实现
  • 原文地址:https://www.cnblogs.com/woaixingxing/p/7193030.html
Copyright © 2020-2023  润新知