37. 提取变量(Extract Variable)
描述: 这是一个提取变量的快捷操作。当你在没有写变量声明的直接写下值的时候,这是一个很方便生成变量声明的操作,同时还会给出一个建议的变量命名。
调用: Menu → Refactor → Extract → Variable
快捷键: Cmd + Alt + V(OS X)、Ctrl + Alt + V(Windows/Linux);
更多: 当你需要改变变量声明的类型,例如使用 List 替代 ArrayList,可以按下Shift + Tab,就会显示所有可用的变量类型。
38. 内置(Inline)
描述: 当你开始对提取操作有点兴奋的时候,突然觉得东西太多了,怎么办呢?这是一个和提取相反的操作。该操作对方法、字段、参数和变量均有效。
调用: Menu → Refactor → Inline
快捷键: Cmd + Alt + N(OS X)、Ctrl + Alt + N(Windows/Linux);
39. 合并行和文本(Join Lines and Literals)
描述: 这个操作比起在行末使劲按删除键爽多了!该操作遵守格式化规则,同时:
- 合并两行注释,同时移除多余的
//
; - 合并多行字符串,移除
+
和双引号; - 合并字段的声明和初始化赋值;
- 合并两行注释,同时移除多余的
快捷键: Ctrl + Shift + J;
40. 动态模板(Live Templates)
描述: 动态模板是一种快速插入代码片段的方法,使用动态模板比较有意思的是你可以使用合适的默认值将模板参数化,当你插入代码片段时,这可以指导你完成参数。
更多: 如果你知道模板的缩写,就可以不必使用快捷键,只需要键入缩写并使用Tab键补全即可。
快捷键: Cmd + J(OS X)、Ctrl + J(Windows/Linux);
41. 上下移动行(Move Lines Up Down)
描述: 不需要复制粘贴就可以上下移动行了。
快捷键: Alt + Shift + Up/Down;
42. 移动方法(Move Methods)
描述: 这个操作和移动行操作很类似,不过该操作是应用于整个方法的,在不需要复制、粘贴的情况下,就可以将整个方法块移动到另一个方法的前面或后面。该操作的实际叫做“移动语句”,这意味着你可以移动任何类型的语句,你可以方便地调整字段或内部类的顺序。
快捷键: Cmd + Alt + Up/Down(OS X)、Ctrl + Shift + Up/Down(Windows/Linux);
43. 取反补全(Negation Completion)
描述: 有时你自动补全一个布尔值,然后回到该值的前面添加一个感叹号来完成取反操作,现在通过使用输入
!
代替enter
完成补全操作,就可以跳过这些繁琐的操作了。快捷键: 代码补全的时候,按下
!
即可(有时需要上下键选中候选项);
44. 后缀补全(Postfix Completion)
描述: 你可以认为该操作是一种代码补全,它会在点号之前生成代码,而不是在点号之后。实际上你调用这个操作和正常的代码补全操作一样:在一个表达式之后输入点号。
例如对一个列表进行遍历,你可以输入myList.for
,然后按下Tab
键,就会自动生成for循环代码。调用: 你可以在某个表达式后面输入点号,出现一个候选列表,在常规的代码补全提示就可以看到一系列后缀补全关键字,同样的,你也可以在
Editor → Postfix Completion
中看到一系列后缀补全关键字。- 常用的有后缀补全关键字有:
- .for (补全foreach语句)
- .format (使用
String.format()
包裹一个字符串) - .cast (使用类型转化包裹一个表达式)
45. 重构(Refactor This)
描述: 该操作可以显示所有对当前选中项可行的重构方法。这个列表可以用数字序号快速选择。
快捷键: Ctrl + T(OS X)、Ctrl + Alt + Shift + T(Windows/Linux)
46. 重命名(Rename)
描述: 你可以通过该操作重命名变量、字段、方法、类、包。当然了,该操作会确保重命名对上下文有意义,不会无脑替换掉所有文件中的名字;
快捷键: Shift + F6
更多: 如果你忘记了这个快捷键,你可以使用快速修复(Quick Fix)的快捷键,它通常包含重命名选项。
47. 分号/点 补全(Semicolon Dot Completion)
描述: 代码补全这个功能太棒啦!我们大概都对以下这种情况很熟悉:开始输入点什么东西,接着从IDE得到一些建议的选项,然后通过Enter或者Tab来选择我们想要的补全代码。其实还有另外一种方法来选择补全的代码:我们可以输入一个点(.)或者一个分号(;)。这样就会完成补全,添加所选字符。这在结束一条语句补全或者快速链式调用方法的时候特别有用。
注意点: 如果你要代码补全的方法需要参数,这些参数会被略过。
快捷键: Autocomplete + “.” 或者 “;”
48. 包裹代码(Surround With)
描述: 该操作可以用特定代码结构包裹住选中的代码块,通常是if语句,循环,try/catch语句或者runnable语句。 如果你没有选中任何东西,该操作会包裹当前一整行。
快捷键: Cmd + Alt + T(OS X)、Ctrl + Alt + T(Windows/Linux)
49. 移除包裹代码(Unwrap Remove)
描述: 该操作会移除周围的代码,它可能是一条if语句,一个while循环,一个try/catch语句甚至是一个runnable语句。该操作恰恰和包裹代码(Surround With)相反。
快捷键: Cmd + Shift + Delete(OS X)、Ctrl + Shift + Delete(Windows/Linux)
调试技巧
50. 分析传入数据流(Analyze data flow to here)
描述: 这个操作将会根据当前选中的变量、参数或者字段,分析出其传递到此处的路径。 当你进入某段陌生的代码,试图明白某个参数是怎么传递到此处的时候,这是一个非常有用的操作。
调用: Menu → Analyze → Analyze Data Flow to Here
快捷键: 无,可以在设置中指定。
相反的操作: 分析传出数据流(Analyze data flow from here),这个将会分析当前选中的变量往下传递的路径,直到结束。
51. 堆栈追踪分析(Analyze Stacktrace)
描述: 这个操作读取一份堆栈追踪信息,并且使它像logcat中那样可以点击。当你从bug报告中或者终端复制了一份堆栈追踪,使用该操作可以很方便地调试。
调用: Menu → Analyze → Analyze Stacktrace
快捷键: 无,可以在设置中指定。
更多: 通过使用“ProGuard Unscramble Plugin”插件,也可以分析混淆过的堆栈追踪。
52. 关联调试程序(Attach Debugger)
描述: 随时启动调试程序,即使你没有以调试模式启动你的应用。这是一个很方便的操作,因为你不必为了调试程序而以调试模式重新部署你的应用。当别人正在测试应用,突然遇到一个bug而将设备交给你时,你也可以很快地进入调试模式。
调用: 点击工具栏图标或者Menu → Build → Attach to Android Process
快捷键: 无,可以在设置中指定,或者点击工具栏对应的图标。
53. 条件断点(Conditional Breakpoints)
描述: 简单说,就是当设定的条件满足时,才会触发断点。你可以基于当前范围输入一个java布尔表达式,并且条件输入框内是支持代码补全的。
调用: 右键需要填写表达式的断点,然后输入布尔表达式。
54. 禁用断点(Disable Breakpoints)
描述: 这个操作将使得断点。当你有一个设置过复杂条件的断点或者是日志断点,当前不需要,但是下次又不用重新创建,该操作是很方便的。
调用: 按住Alt,然后单击断点即可。
55. 计算表达式(Evaluate Expression)
描述: 这个操作可以用来查看变量的内容并且计算几乎任何有效的java表达式。需要注意的是,如果你修改了变量的状态,这个状态在你恢复代码执行后依然会保留。
快捷键: 处在断点状态时,光标放在变量处,按Alt + F8,即可显示计算表达式对话框。
56. 审查变量(Inspect Variable)
描述: 该操作可以在不打开计算表达式对话框就能审查表达式的值。
快捷键: 调试状态下,按住Alt键,然后单击表达式即可。
57. 日志断点(Logging Breakpoints)
描述: 这是一种打印日志而不是暂停的断点,当你想打印一些日志信息但是不想添加
log
代码后重新部署项目,这是一个非常有用的操作。调用: 在断点上右键,取消
Suspend
的勾选,然后勾选上Log evaluated Expression
,并在输入框中输入你要打印的日志信息。
58. 标记对象(Mark Object)
描述: 当你在调试的时候,这个操作可以让你给某个特殊的对象添加一个标签,方便你后面很快地辨认。在调试时,当你从一堆相似的对象中查看某个对象是否和之前是一样的,这就是一个非常有用的操作。
调用: 右键你需要标记的对象,选中
Mark Object
,输入标签;快捷键: 选中对象时,按F3(OS X)、F11(Windows/Linux);
59. 显示当前运行点(Show Execution Point)
描述: 该操作会立刻把你的光标移回到当前debug处。
通常的情况是:- 你在某处触发了断点
- 然后在文件中随意浏览
- 直接调用这个快捷键,快速返回之前逐步调试的地方。
快捷键: (Debug时) Alt + F10;
60. 终止进程(Stop Process)
描述: 该操作会终止当前正在运行的任务。如果任务数量大于一,则显示一个列表供你选择。在终止调试或者中止编译的时候特别有用!
快捷键: Cmd + F2(OS X)、Ctrl + F2(Windows、Linux);
61. 临时断点(Temporary Breakpoints)
描述: 通过该操作可以添加一个断点,这个断点会在第一次被命中的时候自动移除。
快捷键: Alt + 鼠标左键 点击代码左侧(鼠标)、Cmd + Alt + Shift + F8(OS X)、Ctrl + Alt + Shift + F8(Windows/Linux)
62. 调用层级树弹窗(The Call Hierarchy Popup)
描述: 该操作会给你展示 在一个方法的声明和调用之间所有可能的路径。
快捷键: Ctrl + Alt + H
来源 写代码的猴子