概述现如今开发越来越追求效率和节奏,节省出时间做更多的事情,除了开发技术上的封装等,开发工具的使用技巧也是很重要的,今天就根据自己的经验来给大家介绍一下Android Studio 快速开发之道。Postfix completion介绍Postfix completion 是 IntelliJ IDEA 很早就有的功能,该功能基于已经输入的表达式和你添加的后缀来实现另一个你想要的表达式。例如在布尔表达式之后加上后缀 if 就是 if 语句 。常用后缀介绍下面介绍一下个人工作中觉得比较常用的几个后缀。cast当一个变量需要类型转换时,你是不是经常多次回退到变量名前面,然后括号再输入类型,现在你只需要.cast 之后潇洒的输入类型。 if对于 if 语句你有更好的选择,.ifelseelse 就是 if 取反,就是那么快field假设你的代码写了很长,突然在 1000 行的时候要给一个变量赋值并且声明为全局变量,难道要返回去重新声明吗,简直麻烦。有了 field,在哪都可以。fori简单快速 for 循环,就是那么吊forfor 循环第二式,增强 for 循环 (使用.iter 也是同样的效果)forrfor 循环第三式,反向 for 循环 .forrnull快速判空nn/notnull快速判断非空 .nn,与.notnull 效果一致switch.switch 通过字符串枚举等类型的对象直接生成 switch 语句inst/instantsof快速进行 instanof 判断 并进行类型转换var快速为一个表达式生成变量par快速为一个表达式添加括号log快速 log,想输出的内容.log 即可toast快速 toast,想输出的内容.toast 即可部分后缀如 log,toast 需要 Android Postfix completion 插件的支持,大家搜索下载即可。除了以上的后缀语句,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+sps: 由于我之前设置过快捷键,还以为有默认的快捷键,想看看默认快捷键写下来,所以点了下 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 (Control + Shift + A/Command + Shift + A)查找 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/LinuxMacOpen settings dialogue快速打开设置Control + Alt + SCommand + , (comma)Open project structure dialog打开项目结构Control + Alt + Shift + SCommand + ; (semicolon)Switch between tabs and tool windowtab 的切换Control + Alt + Shift + SCommand + ; (semicolon)追踪和搜索description解释Windows/LinuxMacFind查找Control + Alt + SCommand + , (comma)Search everything (including code and menus)查找所有点击 shift 两次即可搜索点击 shift 两次即可搜索Find next顺序向下查找F3Command + GFind action查找功能,超级强大,as 的所有功能可以通过该功能来查找Control + Shift + ACommand + Shift + AFind class快速找到类并打开文件Control + NCommand + OFind file (instead of class)快速查找文件Control + Shift + NCommand + Shift + OFind in path在项目下的所有路径查找Control + Shift + FCommand + Shift + FFind action Recently opened files pop-up列出最近打开的文件F3Control + ECommand + ERecently edited files pop-up列出最近编辑过的文件Control + Shift + ECommand + Shift + EGo to last edit location回到最近一次编辑的位置Control + Shift + BackspaceCommand + Shift + BackspaceClose active editor tab关闭当前编辑的文件Control + F4Command + WOpen type hierarchy打开类型层次关系Control + HControl + HOpen method hierarchy打开方法层次关系Control + Shift + HCommand + Shift + HOpen call hierarchy打开调用层次关系Control + Alt + HControl + Option + H写代码常用快捷键description解释Windows/LinuxMacGenerate code (getters, setters, constructors, hashCode/equals, toString, new file, new class)快速生成各种方法Alt + InsertCommand + NOverride methods显示所有可以重写的方法Control + OControl + OImplement methods显示所有可以实现的方法Control + IControl + ISurround with (if…else / try…catch / etc.)快速为语句生成 if else,try catch for 循环等Control + Alt + TCommand + Option + TDelete line at caret删除光标所在行Control + YCommand + BackspaceDuplicate current line or selection快速产生新的当前行,或者新的多行代码Control + DCommand + DQuick documentation lookup快速查看简要文档Control + PCommand + PGo to declaration (directly)找到变量或方法声明处Control + B or Control + ClickCommand + B or Command + ClickGo to implementations找到一个接口的实现类,接口方法的是实现处Control + Alt + BCommand + Alt + BGo to super-method/super-class找到父类或父类方法Control + UCommand + UToggle project tool window visibility显示或隐藏 as 左边的项目窗口Alt + 1Command + 1Comment/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 + EnterOption + EnterReformat code格式化代码Control + Alt + LCommand + Option + LNext/previous highlighted error找到下一个/上一个错误F2 / Shift + F2F2 / Shift + F2编译运行description解释Windows/LinuxMacBuild编译Control + F9Command + F9Build and run编译Shift + F10Control + R调试description解释Windows/LinuxMacDebug Shift + F9Shift + F9Step over F8F8Step into F7F7Smart step into Shift + F7Shift + F7Resume program F9Command + Option + R修改description解释Windows/LinuxMacSafe delete安全删除Alt + DeleteCommand + DeleteExtract method提取方法Control + Alt + MCommand + Option + MExtract method提取方法Control + Alt + VCommand + Option + VExtract variable提取变量Control + Alt + VCommand + Option + VExtract field提取全局变量Control + Alt + FCommand + Option + FExtract constant提取常量Control + Alt + CCommand + Option + CExtract parameter提取参数Control + Alt + PCommand + Option + P版本控制/本地历史description解释Windows/LinuxMacCommit project to VCS Control + KCommand + KUpdate project from VCS Control + TCommand + TView recent changes查看最近修改Alt + Shift + COption + Shift + COpen 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.htmlTip of the day不知道大家有没有注意,每天当你第一次打开 Android Studio 的时候,总是先弹出一个对话框,相信大多数同学都是果断关闭然后开始今天的工作,被猜中的给我点赞!hahaTip of the day 会推荐给你一些使用 Android Studio 的技巧,快捷键等等功能,所以希望大家能够花一分钟看一看,每天一个积累,半年一年之后你就是开发效率之王了!你可以随时菜单选择 help->tip of the day 进行查看 结语
作者:zml2015
链接:https://hacpai.com/article/1488000012289
来源:黑客派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。