Android Studio各种快捷功能及好用的插件
转载:http://www.jianshu.com/p/c439605a4364
概述
现如今开发越来越追求效率和节奏,节省出时间做更多的事情,除了开发技术上的封装等,开发工具的使用技巧也是很重要的,今天就根据自己的经验来给大家介绍一下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设置快捷键
[图片上传中。。。(24)]
这里我设置为cmd+shift+s
就不用点菜单了,选中代码直接cmd+shift+s
[图片上传中。。。(25)]
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)
快速产生一个单行或者选中行的copyGo 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 |
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 Studio插件
1.通过WiFi调试手机:Android Wifi ADB、ADB WiFI
2.ButterKnife 注解生成器:ButterKnife Zelezny
3.Selector文件生成:SelectorChapek
4.Gson自动化:GsonFormat
5.Parcelable自动化:Android Parcelable Code Generator
6.生成ViewHolder和findView方法:AndroidCodeGenerator
7.代码行数统计:statistic
8.代码检索:codota
9.模拟器:Genymotion
10.快速进行Log、Toast、isEmpty的代码书写:postfix
11.Android Studio 翻译插件,可以将英文翻译为中文:ECTranslation:https://github.com/Skykai521/ECTranslation
12.可用于快速定位代码:CodeGlance
13.可以根据Activity或者fragment的生命周期对其生命周期方法位置进行先后排序:Lifecycle Sorter
14.通过FindBugs帮你找到隐藏的bug及不好的做法:FindBugs-IDEA
15.该网站搜集了大量的代码,号称超过700W的代码实例:codota
16.检查代码风格的插件:checkstyle-idea
17.一个针对API 23,可在Activity/Fragment中快速生成Runtime Permissions代码的插件:PermissionsDispatcher
18.生成Material Design Icon的插件:Android Material Design Icon Generator
19.Material Theme配色方案:Material Theme UI
20.Android 高效开发调试神器:JRebel:https://zeroturnaround.com/
21.号称Android平台上的秒级编译方案:Freeline:https://yq.aliyun.com/articles/59122?spm=5176.8091938.0.0.1Bw3mU
安装插件方法:打开 File -> Settings -> Plugins -> Browse Repositories ,输入插件名搜索,直接点击"Install"安装。如果搜索不到的话可以去这里下载下来后,选择"Install plugin from disk"进行离线安装。
Android Studio各种快捷功能及好用的插件的更多相关文章
- Android Studio的git功能的使用介绍
本文介绍Android Studio(下面简称AS)中git工具的一些简单使用.因为AS为git的使用提供了很多人性化的图形界面操作,在很大程度上可以增加开发效率.本文面向新手,题主自己也是新手一枚, ...
- 基于android studio的快捷开发(将持续更新)
对于Android studio作为谷歌公司的亲儿子,自然有它的好用的地方,特别是gradle方式和快捷提示方式真的很棒.下面是我在实际开发中一些比较喜欢用的快速开发快捷键,对于基本的那些就不多说了. ...
- Android Studio 经常使用功能介绍
为了简化 Android 的开发力度,Google 决定将重点建设 Android Studio 工具.Google 会在今年年底停止支持其它集成开发环境.比方 Eclipse. Android St ...
- 关于Android Studio升级到2.0后和Gradle插件不兼容的问题
今天升级AS到2.0后,用AS在真机上调试,发现报了如下错误: This version of Android Studio is incompatible with the Gradle Plugi ...
- Android Studio的git功能的使用
初次使用AS自带的git工具的配置 初次使用AS自带的git工具需要设置一些配置,如果你已配置过,可跳过该部分内容. 首先你需要下载git,然后打开AS的git设置,路径如下,选择你安装在你电脑上的g ...
- Android Studio奇淫巧技
目录 3.1 Android Studio使用初探 Project面板 Stucture面板 Android Monitor Keymap Tip of the Day 快速查找 Search Act ...
- Android群英传神兵利器读书笔记——第三章:Android Studio奇技淫巧
这篇文章篇幅较长,可以使用版权声明下面的目录,找到感兴趣的进行阅读 3.1 Android Studio使用初探 Project面板 Stucture面板 Android Monitor Keymap ...
- 【Android】Android Studio 进行代码混淆,打包release APK
整了一天,感觉坑挺多. 1. 选择如图中的选项Android Studio进行签名打包: 2. 填写APP对应的信息:(最好用个文本记下来放在项目中同步给Team) - Key store path: ...
- Android开发环境--eclipse和Android Studio
一.eclipse下载.安装.配置 因为eclipse是之前就下载过的,现在只能大概说一下eclipse的下载安装过程. 1.下载jdk,配置java环境变量 (1)在官网(http://www.o ...
随机推荐
- MRC下多个对象的内存管理
//set方法传递进来对象的生命周期,要求是在当前对象销毁之前,它一直存在就好- (void)setCar:(Car *)car{ //1.判断set方法传递进来的值是否与成员变量中保存的是同一个对象 ...
- 使用FragmentTabHost+TabLayout+ViewPager实现双层嵌套Tab
大多数应用程序都会在底部使用3~5个Tab对应用程序的主要功能进行划分,对于一些信息量非常大的应用程序,还需要在每个Tab下继续划分子Tab对信息进行分类显示. 本文实现采用FragmentTabHo ...
- Ajax.BeginForm参数详解
在Asp.Net的MVC中的语法,在Razor页面中使用,替代JQuery的Ajax使用,方便快捷. 使用Ajax.BeginForm方法会生成一个form表单,最后以Ajax的方式提交表单数据:需要 ...
- Linux 硬盘分区生效命令partprobe
在Linux中使用fdisk命令进行分区时,有时会遇到"WARNING: Re-reading the partition table failed with error 16: Devic ...
- 如何使用 OpenStack CLI - 每天5分钟玩转 OpenStack(22)
本节首先讨论 image 删除操作,然后介绍 OpenStack CLI 的使用方法,最后讨如何 Troubleshoot. Web UI 删除 image admin 登录后,Project -&g ...
- mybatis 配置返回集合collection时只有一条记录
查询语句配置如下: <select id="selectCustomerList" resultMap="CustomerDtoMap" paramete ...
- Java Keytools 证书转换成Openssl 的PEM 文件或keytools 导出私钥文件
上一遍又说到Godaddy 生请证书流程与操作: 现因使用Incapsula 防护使用到https,在添加网站时需要自定义证书,其中需要上传私钥信息,因公钥是能过keytool 生成所以需要导出私钥信 ...
- 1、策略模式(Strategy)
//抽象接口 class ReplaceAlgorithm { public: ; }; //三种具体的替换算法 class LRU_ReplaceAlgorithm : public Replace ...
- TFS修改项目名称
引言 如何让TFS管理的项目更名后不丢失修改历史记录? 在工作中有时由于前期考虑不足,某个Project的名字在项目开发过程中需要修改以更准备表达它的功能.本文就对此进行抛砖引玉 操作 在Source ...
- Linux File Recovery Study
Background Today I did stupid things that I went into the ~/Downloads/ and pressed [Alt] + [A] then ...