概述

现如今开发越来越追求效率和节奏,节省出时间做更多的事情,除了开发技术上的封装等,开发工具的使用技巧也是很重要的,今天就根据自己的经验来给大家介绍一下Android Studio快速开发之道。

Postfix completion

介绍

Postfix completion 是IntelliJ IDEA很早就有的功能,该功能基于已经输入的表达式和你添加的后缀来实现另一个你想要的表达式。例如在布尔表达式之后加上后缀if就是if语句 。

常用后缀介绍

下面介绍一下个人工作中觉得比较常用的几个后缀。

cast

当一个变量需要类型转换时,你是不是经常多次回退到变量名前面,然后括号再输入类型,现在你只需要.cast之后潇洒的输入类型。

if

对于if语句你有更好的选择,.if

else

else就是if取反,就是那么快

field

假设你的代码写了很长,突然在1000行的时候要给一个变量赋值并且声明为全局变量,难道要返回去重新声明吗,简直麻烦。有了field,在哪都可以。

fori

简单快速for循环,就是那么吊

for

for循环第二式,增强for循环(使用.iter也是同样的效果)

forr

for循环第三式,反向for循环 .forr

null

快速判空

nn/notnull

快速判断非空 .nn,与.notnull效果一致

switch

.switch 通过字符串枚举等类型的对象直接生成switch语句

inst/instantsof

快速进行instanof判断 并进行类型转换

var

快速为一个表达式生成变量

par

快速为一个表达式添加括号

log

快速log,想输出的内容.log即可

toast

快速toast,想输出的内容.toast即可

除了以上的后缀语句,Android Studio还有很多其它的后缀语句,由于个人觉得不是很常用,所以没有提到,大家可以打开setting-Editor-General-Postfix Completion查看更多用法。

下面贴一张Postfix Completion的图

Live Templates

介绍

让您插入频繁使用的或自定义的代码结构,快速、高效、准确地构建到您的源代码文件中。

我们可以直接打开Settings/Preferences 对话框 选中Editor下的Live Templates进行查看

通过上图大家可以看到Android Studio已经为我们提供了大量的模版。

系统模版简单认识

这里我们通过系统提供的一个模版来对Live Templates简单认识一下。

先看一张图

上图中Android为分组名,该分组下系统提供了许多模版。

我们可以在右上角点击+进行添加自己的group或者模版

Abbreviation就是模版的缩写,定义了缩写之后就能直接输入缩写得到模版具体内容。

Description在输入的时候会有一个附带的描述信息进行提示。

Tempplate text中的就是具体内容,具体内容中可以通过$variable$来进行变量定义,上图中的模版定义了的$name$ 和$value$两个变量。

通过右边的Edit variables按钮可以进行变量的编辑,点击之后弹出如下 对话框

可以看到 name指定了默认值NAME,value是一个1000以内的随机数。关于变量的编辑里面有很多细节,由于篇幅原因,不再这里详细讨论,后续我会写一篇博客对live templelates各个功能进行详细介绍。

继续刚才说到第一个模版,左下角有一个change按钮,点击之后可以指定该模版的作用范围。

基本介绍就完毕了,看下效果

系统提供的模版很多并且大多数都很有用,我就不一一列举了,大家可以自己查看Live Templates找到自己合适的使用,开始的时候可能不适应,之后,你会发现,你越来越快。

自定义模版

了解了Live Templates之后,我发现我经常使用butterknife的时候会写onClick,但是每次都是一样的代码,这时候我就可以自定义一个模版,请看下图:

自定义了一个分组 custom,并且在该分组下定义了一个缩写为onclick的模版

模版内容就是一个butterknife注解修饰的click方法,并且声明了一个个变量id。

点击Edit variables如下图

指定了 Expression为completeSmart(),表示该变量会智能型的完成调用(光标会出现在变量位置)

具体效果如下:

这里为了方便 随便赋值为 activity的资源id了。

小技巧1

在使用Live Templates我如果正在写代码,写了半个小时,我发现此时正在鞋一段代码已经写了几次并且很可能接下来也会写。难道我们copy下来再 打开setting找到Live Templates去添加吗?你完全有更好的选择!

选中你的代码,点击菜单拦Tools->Save as Live templates

之后直接指定缩写等参数保存即可。

或者 打开设置 keymap,输入过滤条件live template,找到Save as Live templates设置快捷键

这里我设置为cmd+shift+s

就不用点菜单了,选中代码直接cmd+shift+s

ps:由于我之前设置过快捷键,还以为有默认的快捷键,想看看默认快捷键写下来,所以点了下reset,发现这个功能没有提供默认快捷键,然后最悲剧的来了,发现reset之后我没有点apply尼玛居然也生效了,所有我修改过的快捷键全没拉。。。。。

小技巧2

加入你想使用一个模版,但是忘记了它的缩写,此时怎么办呢?

快速的cmd+j,windows电脑我不清楚,大家设置技巧1的时候会看到一个insert live templates,就可以看到快捷键了。该功能可以提示出所有适合当前场景的模版。

当然Live Templates的知识很有很多,比如定义变量里的expression有好多,各自代表什么意思,但是这些不是本篇文章的重点,所以就不做讨论了。

快捷键

Android Studio提供的快捷键功能非常强大,个人觉得只要你对快捷键熟悉至极,从打开Android Studio那一刻,你就可以把鼠标扔了。。。

个人常用快捷键介绍

先来一波常用功能快捷键效果演示,没图我也是不能服众啊(由于快捷键很多这里只做部分演示),ps:这里的快捷键是基于as自带的快捷键类型,如果你选择了其它的快捷键类型(如eclipse),你只需要打开设置,keymap,通过输入过滤条件找到对应的功能查看快捷键。

以下格式为

描述/Windows或Linux的快捷键/Mac 快捷键

介绍

图片

Find action (F3/Command + G)

查找as所有动作功能(超级强大)

Find next (F3/Command + G)

查找下一个

Find previous

查找上一个

Find class(Control + N/Command + O)

直接通过类名过滤打开类文件,有了这个基本我很少用鼠标去找类文件了。

Duplicate current line or selection(Control + D/Command + D)

快速产生一个单行或者选中行的copy

Go to implementations( Control + Alt + B/Command + Alt + B)

找到当前接口的实现类,或接口方法的实现方法,在mvp模式里最常用

Extract method( Control + Alt + M/Command + Option + M)

为选中代码生产一个方法,超级智能,甚至能识别处是否要参数和返回值,如果有多个相似代码,会提示是否要统一替换,吊到没朋友。

Extract variable(Control + Alt + V/Command + Option + V)

为选中表达式生成临时变量,如果有多个地方会提示是否需要统一替换。

Extract field(Control + Alt + F/Command + Option + F)

为选中表达式生成全局变量,如果有多个地方会提示是否需要统一替换。

Next highlighted error(F2 / F2)

你一定有过在一个很长代码文件中找一个错误的时候,很麻烦,有了这个功能,光标直接移到错误的地方。

篇幅有限,就介绍这么多了,其它的系统快捷键我以表格的形式整理下来,许多功能需要自己去尝试才能发现它的强大。

系统默认快捷键

以表格形式列出个人觉得比较常用得系统快捷键,ps:这里列出得是系统默认的快捷键,如果你快捷键类型选定为eclipse或者其它,你需要找到对应的描述进行查看或者修改。

普通类型

description 解释 Windows/Linux Mac
Open settings dialogue 快速打开设置 Control + Alt + S Command + , (comma)
Open project structure dialog 打开项目结构 Control + Alt + Shift + S Command + ; (semicolon)
Switch between tabs and tool window tab的切换 Control + Alt + Shift + S Command + ; (semicolon)

追踪和搜索

description 解释 Windows/Linux Mac
Find 查找 Control + Alt + S Command + , (comma)
Search everything (including code and menus) 查找所有 点击shift两次即可搜索 点击shift两次即可搜索
Find next 顺序向下查找 F3 Command + G
Find action 查找功能,超级强大,as的所有功能可以通过该功能来查找 Control + Shift + A Command + Shift + A
Find class 快速找到类并打开文件 Control + N Command + O
Find file (instead of class) 快速查找文件 Control + Shift + N Command + Shift + O
Find in path 在项目下的所有路径查找 Control + Shift + F Command + Shift + F
Find action
Recently opened files pop-up 列出最近打开的文件 F3Control + E Command + E
Recently edited files pop-up 列出最近编辑过的文件 Control + Shift + E Command + Shift + E
Go to last edit location 回到最近一次编辑的位置 Control + Shift + Backspace Command + Shift + Backspace
Close active editor tab 关闭当前编辑的文件 Control + F4 Command + W
Open type hierarchy 打开类型层次关系 Control + H Control + H
Open method hierarchy 打开方法层次关系 Control + Shift + H Command + Shift + H
Open call hierarchy 打开调用层次关系 Control + Alt + H Control + Option + H

写代码常用快捷键

description 解释 Windows/Linux Mac
Generate code (getters, setters, constructors, hashCode/equals, toString, new file, new class) 快速生成各种方法 Alt + Insert Command + N
Override methods 显示所有可以重写的方法 Control + O Control + O
Implement methods 显示所有可以实现的方法 Control + I Control + I
Surround with (if...else / try...catch / etc.) 快速为语句生成if else,try catch for循环等 Control + Alt + T Command + Option + T
Delete line at caret 删除光标所在行 Control + Y Command + Backspace
Duplicate current line or selection 快速产生新的当前行,或者新的多行代码 Control + D Command + D
Quick documentation lookup 快速查看简要文档 Control + P Command + P
Go to declaration (directly) 找到变量或方法声明处 Control + B or Control + Click Command + B or Command + Click
Go to implementations 找到一个接口的实现类,接口方法的是实现处 Control + Alt + B Command + Alt + B
Go to super-method/super-class 找到父类或父类方法 Control + U Command + U
Toggle project tool window visibility 显示或隐藏as左边的项目窗口 Alt + 1 Command + 1
Comment/uncomment with line comment 快速单行注释或去除注释 Control + / Command + /
Comment/uncomment with block comment 多行注视或除去多行注释 Command + Shift + / Command + Shift + /
Project quick fix (show intention actions and quick fixes) 给出当前问题的多种解决方法(该方法非常常用) Alt + Enter Option + Enter
Reformat code 格式化代码 Control + Alt + L Command + Option + L
Next/previous highlighted error 找到下一个/上一个错误 F2 / Shift + F2 F2 / Shift + F2

编译运行

description 解释 Windows/Linux Mac
Build 编译 Control + F9 Command + F9
Build and run 编译 Shift + F10 Control + R

调试

description 解释 Windows/Linux Mac
Debug Shift + F9 Shift + F9
Step over F8 F8
Step into F7 F7
Smart step into Shift + F7 Shift + F7
Resume program F9 Command + Option + R

修改

description 解释 Windows/Linux Mac
Safe delete 安全删除 Alt + Delete Command + Delete
Extract method 提取方法 Control + Alt + M Command + Option + M
Extract method 提取方法 Control + Alt + V Command + Option + V
Extract variable 提取变量 Control + Alt + V Command + Option + V
Extract field 提取全局变量 Control + Alt + F Command + Option + F
Extract constant 提取常量 Control + Alt + C Command + Option + C
Extract parameter 提取参数 Control + Alt + P Command + Option + P

版本控制/本地历史

description 解释 Windows/Linux Mac
Commit project to VCS Control + K Command + K
Update project from VCS Control + T Command + T
View recent changes 查看最近修改 Alt + Shift + C Option + Shift + C
Open VCS popup 打开版本控制设置窗口 Alt + ` (backquote) Control + V

扩展

自定义快捷键

看到这里相信大家对快捷键有了更深的认识,我们可以通过简单的几个键就实现强大的功能,但是有时候许多系统提供的快捷键也许和你本身系统的快捷键冲突,或者说某些强大的功能as并没有提供你快捷键,此时就涉及到快捷键的自定义(修改或者添加)。

比如上面提到的 找到并高亮错误代码 as提供的是F2键,但是在Mac上是功能键并且我也想保留,我就修改为了command+shift+2

关于快捷键的自定义我就不细提了,大家百度一下有很多文章。

发现更多功能

keyMap里列出的功能众多,篇幅和精力有限,不能一一列出,

各位有时间的时候可以打开设置->KeyMap,去看里面的快捷键,不确定的就自己亲自按了试一下,你会发现原来可以那么方便。

插件

这里推荐几个个人使用中觉得的确很好的插件,这些插件的介绍文章都很多,我就不详细介绍了。

Android ButterKnife Zelezny

能够方便快速初始化,免去了findById等繁琐的操作。

Gsonformat

可根据json数据快速生成java实体类作。

Android Material Design Icon Generator

快速生成Material Design图标,对于在小公司,设计要求不那么严格的同学可以方便生成合适的图标。

Android Wifi ADB

是不是很讨厌调试总是要把手机放在电脑旁,有了这个插件你可以不用挨着电脑调试了。

由于时间关系,插件的图没有制作,上面两张图的地址出处:http://www.jcodecraeer.com/a/anzhuokaifa/Android_Studio/2015/1009/3557.html

Tip of the day

不知道大家有没有注意,每天当你第一次打开Android Studio的时候,总是先弹出一个对话框,相信大多数同学都是果断关闭然后开始今天的工作,被猜中的给我点赞!haha

Tip of the day会推荐给你一些使用Android Studio的技巧,快捷键等等功能,所以希望大家能够花一分钟看一看,每天一个积累,半年一年之后你就是开发效率之王了!

你可以随时菜单选择help->tip of the day进行查看

结语

花了一个周末给大家总结的快速开发到这里就结束了,由于时间关系,肯定有很多方面不足或者没有提及到,请见谅!该篇文章会持续更新,喜欢我的文章,欢迎关注我!

点赞只需一秒,动力确是永恒,点个赞呗!

我刚开通了微信公众号,每周至少两篇文章,下周开始运作,欢迎关注我的微信公众号

Android Studio快速开发之道的更多相关文章

  1. Android Studio快速开发之道(各种语法糖)

    现如今开发越来越追求效率和节奏,节省出时间做更多的事情,除了开发技术上的封装等,开发工具的使用技巧也是很重要的,今天就根据自己的经验来给大家介绍一下Android Studio快速开发之道. Post ...

  2. Android Studio 快速开发

    概述 现如今开发越来越追求效率和节奏,节省出时间做更多的事情,除了开发技术上的封装等,开发工具的使用技巧也是很重要的,今天就根据自己的经验来给大家介绍一下Android Studio快速开发之道. P ...

  3. Android Studio快速添加Gson以及GsonFormat的使用

    目录: 一.Android Studio快速添加Gson 二.Android Studio中GsonFormat的使用 三.在线JSON校验格式化工具 一.Android Studio快速添加Gson ...

  4. Android Studio快速集成讯飞SDK实现文字朗读功能

    今天,我们来学习一下怎么在Android Studio快速集成讯飞SDK实现文字朗读功能,先看一下效果图: 第一步 :了解TTS语音服务 TTS的全称为Text To Speech,即“从文本到语音” ...

  5. Android插件化开发之OpenAtlas生成插件信息列表

    上一篇文章.[Android插件化开发之Atlas初体验]( http://blog.csdn.net/sbsujjbcy/article/details/47446733),简单的介绍了使用Atla ...

  6. Android Studio快速添加Gson Gsonformat

    一.Android Studio快速添加Gson 具体操作:       1.File->Project Structure: 2.app->Dependencies->" ...

  7. [Android Studio] Android Studio快速定位当前打开的文件在哪个目录(package)下

    转载自:http://blog.csdn.net/hyr83960944/article/details/38067499 在Eclipse中有一个很好的功能,就是比如我打开一个AActivity,左 ...

  8. [Android Studio] Android Studio快速定位当前打开的文件在哪个目录(package)下

    转载自:http://blog.csdn.net/hyr83960944/article/details/38067499 在Eclipse中有一个很好的功能,就是比如我打开一个AActivity,左 ...

  9. Android Studio 快速实现上传项目到Github(详细步骤)

    前言: 本文主要讲解如何将Android Studio项目上传至GitHub,在此之前,先介绍几个概念. Android Studio:是谷歌推出一个Android集成开发工具,基于IntelliJ ...

随机推荐

  1. SurfaceView 绘制分形图

    之前一直做的是应用类,这次抽时间,参考网上资料实践了下SurfaceView.目标是在页面上画一个科赫曲线的分形图. 代码如下: package com.example.fredric.demo02; ...

  2. 阿里云服务器的坑=====部署EF+MVC

    异常处理汇总 ~ 修正果带着你的Net飞奔吧!http://www.cnblogs.com/dunitian/p/4599258.html 先参考:http://www.cnblogs.com/dun ...

  3. PHP 高级编程(4/5) - SPL异常类之 LogicException 逻辑异常

    SPL 提供了一系列标准异常.日常的使用中我们应该根据需求科学的使用它们,来使我们的程序更加健壮.LogicException 是从 Exception 基类派生的,没有添加任何附加方法.抛出逻辑异常 ...

  4. 使用SuperSlide 实现标签切换

    小颖之前还写过一篇jquery实现标签切换的文章  jquery实现Tab选项卡菜单 今天小颖逛博客园时看到了用SuperSlide 实现标签切换的文章,所以小颖就自己试了下,试了后发现SuperSl ...

  5. K近邻法(KNN)原理小结

    K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法了,在我们平常的生活中也会不自主的应用.比如,我们判断一个人的人品,只需要观察他来往最密切的几个人的人品好坏就可以得出 ...

  6. 无限循环轮播图之运动框架(原生JS)

    封装运动框架 function getStyle(obj,name){ if(obj.currentStyle){ return obj.currentStyle[name]; }else{ retu ...

  7. 绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来

    我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: ...

  8. php内核分析(四)-do_cli

    这里阅读的php版本为PHP-7.1.0 RC3,阅读代码的平台为linux # main 把剩下的代码增加了下注释全部贴出来了(这个是简化后的main函数,去掉了一些无关紧要的代码段): int m ...

  9. 基于WebGL 的3D呈现A* Search Algorithm

    http://www.hightopo.com/demo/astar/astar.html 最近搞个游戏遇到最短路径的常规游戏问题,一时起兴基于HT for Web写了个A*算法的WebGL 3D呈现 ...

  10. react入门(3)

    在第一篇文章里我们介绍了jsx.组件.css写法  点击查看react入门(1) 第二篇文章里我们介绍了事件.this.props.children.props....other.map循环  点击查 ...