Android Studio 使用小技巧和快捷键

Alt+回车 导入包,自己主动修正

Ctrl+N   查找类

Ctrl+Shift+N 查找文件

Ctrl+Alt+L  格式化代码

Ctrl+Alt+O 优化导入的类和包

Alt+Insert 生成代码(如get,set方法,构造函数等)

Ctrl+E或者Alt+Shift+C  近期更改的代码

Ctrl+R 替换文本

Ctrl+F 查找文本

Ctrl+Shift+Space 自己主动补全代码

Ctrl+空格 代码提示

Ctrl+Alt+Space 类名或接口名提示

Ctrl+P 方法參数提示

Ctrl+Shift+Alt+N 查找类中的方法或变量

Alt+Shift+C 对照近期改动的代码

Shift+F6  重构-重命名

Ctrl+Shift+先上键

Ctrl+X 删除行

Ctrl+D 复制行

Ctrl+/ 或 Ctrl+Shift+/  凝视(// 或者 )

Ctrl+J  自己主动代码

Ctrl+E 近期打开的文件

Ctrl+H 显示类结构图

Ctrl+Q 显示凝视文档

Alt+F1 查找代码所在位置

Alt+1 高速打开或隐藏project面板

Ctrl+Alt+ left/right 返回至上次浏览的位置

Alt+ left/right 切换代码视图

Alt+ Up/Down 在方法间高速移动定位

Ctrl+Shift+Up/Down 代码向上/下移动。

F2 或Shift+F2 高亮错误或警告高速定位

代码标签输入完毕后。按Tab,生成代码。

选中文本,按Ctrl+Shift+F7 ,高亮显示全部该文本,按Esc高亮消失。

Ctrl+W 选中代码,连续按会有其它效果

选中文本,按Alt+F3 。逐个往下查找同样文本。并高亮显示。

Ctrl+Up/Down 光标跳转到第一行或最后一行下

Ctrl+B 高速打开光标处的类或方法

最经常使用快捷键

1.Ctrl+E。能够显示近期编辑的文件列表

2.Shift+Click能够关闭文件

3.Ctrl+[或]能够跳到大括号的开头结尾

4.Ctrl+Shift+Backspace能够跳转到上次编辑的地方

5.Ctrl+F12,能够显示当前文件的结构

6.Ctrl+F7能够查询当前元素在当前文件里的引用,然后按F3能够选择

7.Ctrl+N。能够高速打开类

8.Ctrl+Shift+N,能够高速打开文件

9.Alt+Q能够看到当前方法的声明

10.Ctrl+W能够选择单词继而语句继而行继而函数

11.Alt+F1能够将正在编辑的元素在各个面板中定位

12.Ctrl+P。能够显示參数信息

13.Ctrl+Shift+Insert能够选择剪贴板内容并插入

14.Alt+Insert能够生成构造器/Getter/Setter等

15.Ctrl+Alt+V 能够引入变量。比如把括号内的SQL赋成一个变量

16.Ctrl+Alt+T能够把代码包在一块内,比如try/catch

17.Alt+Up and Alt+Down可在方法间高速移动

以下的不是非常实用

18.在一些地方按Alt+Enter能够得到一些Intention Action,比如将”==”改为”equals()”

19.Ctrl+Shift+Alt+N能够高速打开符号

20.Ctrl+Shift+Space在非常多时候都可以给出Smart提示

21.Alt+F3能够高速寻找

22.Ctrl+/和Ctrl+Shift+/能够凝视代码

23.Ctrl+Alt+B能够跳转到抽象方法的实现

24.Ctrl+O能够选择父类的方法进行重写

25.Ctrl+Q能够看JavaDoc

26.Ctrl+Alt+Space是类名自己主动完毕

27.高速打开类/文件/符号时,能够使用通配符。也能够使用缩写

28.Live Templates! Ctrl+J

29.Ctrl+Shift+F7能够高亮当前元素在当前文件里的使用

30.Ctrl+Alt+Up /Ctrl+Alt+Down能够高速跳转搜索结果

31.Ctrl+Shift+J能够整合两行

32.Alt+F8是计算变量值

----------------------------------------------------------------------------------------------------------------

写在前面

本文翻译自 Android Studio Tips by Philippe Breault。一共收集了62个 Android Studio 使用小技巧和快捷键。
依据这些小技巧的使用场景,本文将这62个小技巧分为经常使用技巧(1 – 28)、编码技巧(29 – 49)和调试技巧(50 – 62)。分成三个部分。

每一个小技巧都配有 gif 动图,因为原图在 google photo 上,载入较慢,本文所有转存到七牛上了。

因为能力有限,翻译过程中难免有所疏漏,如发现错误或问题,请在评论中提出,谢谢。

经常使用技巧

1. 书签(Bookmarks)

  • 描写叙述:这是一个非常实用的功能。让你能够在某处做个标记(书签)。方便后面再跳转到此处。

  • 调用:Menu → Navigate → Bookmarks
  • 快捷键:
    • 加入/移除书签:F3(OS X) 、F11(Windows/Linux);
    • 加入/移除书签(带标记):Alt + F3(OS X)、Ctrl + F11(Windows/Linux);
    • 显示所有书签:Cmd + F3(OS X) 、Shift + F11(Windows/Linux),显示所有的书签列表。而且是能够搜索的。
    • 上一个/下一个书签:无。能够在设置中设置快捷键。
  • 很多其它:当你为某个书签指定了标记,你能够使用快捷键 Ctrl + 标记 来高速跳转到标记处,比方输入Ctrl + 1。跳到标记为1的书签处。

2. 折叠/展开代码块(Collapse Expand Code Block)

  • 描写叙述:该操作提供一种方法。让你隐藏你不关心的部分代码,以一种较为简洁的格式显示关键代码。

    一个有意思的使用方法是隐藏匿名内部类的代码,让其看起来像一个Lambda表达式。

  • 快捷键:Cmd + “+”/”-“(OS X)、Ctrl + Shift + “+”/”-“(Windows/Linux);
  • 很多其它:能够在Settig → Editor → General → Code Folding 中设置折叠规则。

3. 与分支比对(Compare With Branch (Git))

  • 描写叙述:假如你的项目是使用git来管理的。你能够将当前文件或者目录与其它的分支进行比对。比較实用的是能够让你了解到你与主分支有多少区别。

  • 调用:Menu → VCS → Git → Compare With Branch

4. 与剪切板比对(Compare With Clipboard)

  • 描写叙述:将当前选中的部分与剪切板上的内容进行比对。
  • 调用:右键选中的部分,在右键菜单中选择“Compare With Clipboard”。

5. 上下文信息(Context Info)

  • 描写叙述:当前作用域定义超过滚动区域,运行该操作将显示所在的上下文信息,通常它显示的是类名或者内部类类名或者当前所在的方法名。该操作在xml文件里相同适用。
  • 调用:Menu → View → Context Info
  • 快捷键:Alt + Q (Windows/Linux)
  • 很多其它:个人觉得,这个功能更好的使用方法是高速查看当前类继承的父类或者实现的接口。

6. 查找操作(Find Action)

  • 描写叙述:输入某个操作的名称,高速查找,对于没有快捷键的部分操作这是一个非常实用的技巧。

  • 快捷键:Cmd +Shift + A(OS X)、Ctrl + Shift + A(Windows/Linux)。
  • 很多其它:当某个操作是有快捷键的。会显示在旁边。

7. 查找补全(Find Complection)

  • 描写叙述:当你在一个文件里进行查找时,使用自己主动补全快捷键能够给出在当前文件里出现的建议单词;
  • 快捷键:Cmd + F(OS X),Ctrl + F(Windows/Linux),输入一些字符,然后使用自己主动补全。

8. 隐藏全部面板(Hide All Panels)

  • 描写叙述:切换编辑器铺满整个程序界面。隐藏其它的面板。再次运行该操作,将会回到隐藏前的状态。
  • 调用:Menu → Window → Active Tool Window → Hide All Windows。
  • 快捷键:Cmd +Shift + F12(OS X)、Ctrl + Shift + F12(Windows/Linux);

9. 高亮一切(Hightlight All the Things)

  • 描写叙述:该操作将会高亮某个字符在当前文件里全部出现的地方。

    这不不过简单的匹配,实际上它会分析当前的作用域,只高亮相关的部分。

  • 调用:Menu → Edit → Find → Highlight Usages in File。
  • 定位到上一处/下一处:Menu → Edit → Find → Find Next/Previous。
  • 快捷键:相关快捷键请在菜单中查看;
  • 很多其它:
    • 假设高亮一个方法的returnthrow语句。将会高亮这种方法的全部出口/结束点;
    • 假设高亮某个类定义处的extendimplements语句,将会高亮继承的或实现的方法;
    • 高亮一个import语句也会高亮使用到的地方;
    • 按下Esc能够退出高亮模式。

10. 回到上一个工具窗体(Jump to Last Tool Window)

  • 描写叙述:有时候你会从某个工具窗体跳到编辑器里面,然后又须要又一次回到刚才操作的那个工具窗,比方你查找使用情况的时。使用该操作能够在不使用鼠标的情况下跳转到之前的工具窗体。

  • 快捷键:F12;

11. 上一个编辑位置(Last Edit Location)

  • 描写叙述:该操作将使得你导航到上一处你修改过的地方。这与点击工具栏上的返回箭头回到上一个定位位置是不一样的,该操作将会返回到上一个编辑的位置。
  • 快捷键: Cmd + Shift + Delete(OS X)、Ctrl + Shift + Backspace(Windows/Linux);

12. 在方法和内部类之间跳转(Move Between Methods and Inner Classes)

  • 描写叙述:该操作让光标在当前文件的方法或内部类的名字间跳转。
  • 调用:Navigate → Next Method/Previous Method;
  • 快捷键:Ctrl + Up/Down(OS X)、Alt + Up/Down(Windows/Linux);

13. 定位到嵌套文件(Navigate to Nested File)

  • 描写叙述:有时你有一堆存放在不同文件夹下的同名文件。比如不同模块下的AndroidManifest.xml文件。当你想定位到当中的一个文件,你会得到一堆搜索结果。你还得辨认哪个才是你须要的。通过在检索框中输入部分路径的前缀。并加入斜杠号。你就能够在第一次尝试的时候就找到正确的那个。

  • 快捷键:Shift + Cmd + O(OS X)、Shift + Ctrl + N(Windows/Linux);

14. 定位到父类(Navigate to parent)

  • 描写叙述:假设光标是在一个继承父类重写的方法里,这个操作将定位到父类实现的地方。

    假设光标是在类名上。则定位到父类类名。

  • Menu → Navigate → Super Class/Method
  • 快捷键:Cmd + U(OS X)、Ctrl + U(Windows/Linux);

15. 依据编号打开面板(Open a Panel by Its Number)

  • 描写叙述:你可能已经注意到某些面板的名称左边有一个数字,这里有个快捷操作能够打开它们。

    假设你没看到面板的名称。请点击IDE的左下角的切换button。

  • 快捷键:Cmd + 数字(OS X)、Alt + 数字(Windows/Linux);

16. 在外部打开文件(Open File Externally)

  • 描写叙述:通过这个快捷键,简单地点击Tab,就能够打开当前文件所在的位置或者该文件的随意上层路径。

  • 快捷键:Cmd + 单击Tab(OS X)、Ctrl + 点击Tab(Windows/Linux);

17. 參数信息(Parameter Info)

  • 描写叙述:这个操作将显示和你在方法声明处写一样的參数列表,当你想看某个存在的方法的參数,这是一个非常实用的操作。

    光标下的參数显示为黄色。假设没有參数显示黄色。意味着你的方法调用是无效的,非常可能是某个參数分配不正确。(比如一个浮点数赋值给了整型參数)。假设你正在写一个方法调用,突然离开编辑的地方,再返回的时候。输入一个逗号,就能够又一次触发參数信息。

  • 快捷键:Cmd + P(OS X)、Ctrl + U(Windows/Linux);

18. 高速查看定义(Quick Definition Lookup)

  • 描写叙述:你以前是否想查看一个方法或者类的详细实现,可是不想离开当前界面? 该操作能够帮你搞定。

  • 快捷键:Alt + Space / Cmd + Y(OS X)、Ctrl + Shift + I(Windows/Linux)

19. 近期改动的文件(Recently Changed Files)

  • 描写叙述:该操作类似于“近期訪问(Recents)”弹窗。会显示近期本地改动过的文件列表,依据改动时间排列。

    能够输入字符来过滤列表结果。

  • 快捷键:Cmd + Shift + E(OS X)、Ctrl + Shift + E(Windows/Linux)

20. 近期訪问(Recents)

  • 描写叙述:该操作能够得到一个近期訪问文件的可搜索的列表。
  • 快捷键:Cmd + E(OS X)、Ctrl + E(Windows/Linux)

21. 相关文件(Related File)

  • 描写叙述:该操作有助于在布局文件和Activity/Fragment之间轻松跳转。这也是一个快捷操作,在类名/布局顶端的左側。
  • 快捷键:Ctrl + Cmd + Up(OS X)、Ctrl + Alt + Home(Windows/Linux)

22. 返回到编辑器(Return to the Editor)

  • 描写叙述:一大堆快捷键操作会把你从编辑器带走(type hierarchy, find usages, 等等)。

    假设你想返回到编辑器,你有两个选项:

    1. Esc:该操作只把光标移回编辑器。
    2. Shift + Esc:该操作会关闭当前面板,然后把光标移回到编辑器。
  • 快捷键:
    • 返回但保留打开的面板:Esc
    • 关闭面板并返回:Shift + Esc

23. Select In

  • 描写叙述:拿着当前文件然后问你在哪里选中该文件。

    恕我直言,最实用的就是在项目结构或者资源管理器中打开该文件。每个操作都有数字或者字母作为前缀,能够通过这个前缀来高速跳转。通常,我会 Alt + F1 然后 回车(Enter) 来打开项目视图,然后 再用 Alt + F1 在OS X的Finder里找到文件。

    你能够在文件里或者直接在项目视图里使用该操作。

  • 快捷键:Alt + F1;

24. 扩大/缩小选择(Extend/Shrink Selection)

  • 描写叙述:该操作会在上下文逐渐扩大/缩小当前选择范围。比如。它会先选中当前变量。再选中当前语句。然后选中整个方法,缩小选择则相反。

  • 快捷键:Alt + 上/下 (OS X)、Ctrl+W / Ctrl + Shift + W(Windows、Linux)

25. Sublime Text式的多处选择(Sublime Text Multi Selection)

  • 描写叙述:这个功能超级赞。该操作会识别当前选中字符串,选择下一个相同的字符串,而且加入一个光标。

    这意味着你能够在同一个文件中拥有多个光标,你能够同一时候在全部光标处输入不论什么东西。

  • 快捷键:Ctrl + G(OS X)、Alt + J(Windows、Linux)

26. 文件结构弹窗(The File Structure Popup)

  • 描写叙述:该操作能够展示当前类的大纲。而且能够高速跳转。你还能够通过键盘输入来过滤结果。这是一种非常高效的方法来跳转到指定方法。

  • 很多其它:
    • 你在输入字符的时候能够用驼峰风格来过滤选项。比方输入”oCr”会找到”onCreate”
    • 你能够通过勾选多选框来决定是否显示匿名类。

      这在某些情况下非常实用。比方你想直接跳转到一个OnClickListener的onClick方法。

  • 快捷键:Cmd + F12(OS X)、Ctrl + F12(Windows/Linux)
  • 调用:Menu → Navigate → File Structure

27. 切换器(The Switcher)

  • 描写叙述:该快捷键基本上就是IDE的alt+tab/cmd+tab命令。你能够用它在导航tab或者面板切换。一旦打开这个窗体。仅仅要一直按着ctrl键。你能够通过相应的数字或者字母快捷键高速选择。你也能够通过backspace键来关闭一个已选中的tab或者面板。

  • 快捷键:Ctrl + Tab

28. 版本号控制操作弹窗(VCS Operations Popup)

  • 描写叙述:该操作会给你显示最经常使用的版本号控制操作。假设你的项目没实用git等版本号控制软件进行管理。它至少会给你提供一个由IDE维护的本地历史记录。
  • 快捷键:Ctrl + V(OS X)、Alt + `(Windows/Linux)

编码技巧

29. 列选择/块选择(Column Selection)

  • 描写叙述:正常选择时,当你向下选择时。会直接将当前行到行尾都选中,而块选择模式下,则是依据鼠标选中的矩形区域来选择。
  • 调用:按住Alt。然后拖动鼠标选择。
  • 开启/关闭块选择:Menu → Edit → Column Selection Mode
  • 快捷键:切换块选择模式:Cmd + Shift + 8(OS X)、Shift + Alt + Insert(Windows/Linux);

30. 语句补全(Complete Statement)

  • 描写叙述:这种方法将会生成缺失的代码来补全语句。经常使用的使用场景例如以下:

    • 在行末加入一个分号,即使光标不在行末。
    • 为if、while、for 语句生成圆括号和大括号。
    • 方法声明后,加入大括号;
  • 调用:Menu → Edit → Compelete Current Statement
  • 快捷键:Cmd + Shift + Enter(OS X)、Ctrl + Shift + Enter(Windows/Linux)。
  • 很多其它:假设一个语句已经补全,当你运行该操作时。则会直接跳到下一行,即使光标不在当前行的行末。

31. 删除行(Delete Line)

  • 描写叙述:假设没选中,则删除光标所在行,假设选中。则会删除选中所在的全部行。
  • 快捷键:Cmd + Delete(OS X)、Ctrl + Y(Windows/Linux)

32. 行复制(Duplicate Line)

  • 描写叙述:复制当前行,并粘贴到下一行。这个操作不会影响剪贴板的内容。这个命令配合移动行快捷键很实用。
  • 快捷键:Cmd + D(OS X)、Ctrl + D(Windows/Linux)

33. 编写正則表達式(Edit Regex)

  • 描写叙述:使用Java编写正則表達式是一件非常困难的事。主要原因是:

    • 你必须得避开反斜杠。
    • 说实话。正则非常难;
    • 看第二条。

IDE能帮我们干点啥呢?当然是一个舒服的界面来编写和測试正则啦~ - 快捷键:Alt + Enter → check regexp

34. 使用Enter和Tab进行代码补全的区别(Enter vs Tab for Code Completion)

  • 描写叙述:代码补全时,能够使用Enter或Tab来进行补全操作,可是两者是有区别的。
  • 使用Enter时:从光标处插入补全的代码,对原来的代码不做不论什么操作。
  • 使用Tab时:从光标处插入补全的代码。并删除后面的代码,直到遇到点号、圆括号、分号或空格为止。

35. 提取方法(Extract Method)

  • 描写叙述:提取一段代码块,生成一个新的方法。当你发现某个方法里面过于复杂,须要将某一段代码提取成单独的方法时,该技巧是非常实用的。
  • 调用:Menu → Refactor → Extract → Method
  • 快捷键:Cmd + Alt + M(OS X)、Ctrl + Alt + M(Windows/Linux)。
  • 很多其它:在提代替码的对话框。你能够更改方法的修饰符和參数的变量名。

36. 提取參数(Extract Parameter)

  • 描写叙述:这是一个提取參数的快捷操作。当你认为能够通过提取參数来优化某个方法的时候。这个技巧将非常实用。该操作会将当前值作为一个方法的參数。将旧的值放到方法调用的地方,作为传进来的參数。
  • 调用:Menu → Refactor → Extract → Parameter
  • 快捷键:Cmd + Alt + P(OS X)、Ctrl + Alt + P(Windows/Linux);
  • 很多其它:通过勾选“delegate”。能够保持旧的方法,重载生成一个新方法。

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循环代码。

  • 调用: 你能够在某个表达式后面输入点号,出现一个候选列表,在常规的代码补全提示就能够看到一系列后缀补全keyword,相同的。你也能够在Editor
    → Postfix Completion
    中看到一系列后缀补全keyword。

  • 经常使用的有后缀补全keyword有:

    • .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处。

通常的情况是: 1. 你在某处触发了断点 2. 然后在文件里任意浏览 3. 直接调用这个快捷键,高速返回之前逐步调试的地方。

  • 快捷键:(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





来源:写代码的猴子

Android Studio 使用小技巧和快捷键的更多相关文章

  1. 最强 Android Studio 使用小技巧和快捷键

    写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...

  2. 最强 Android Studio 使用小技巧和快捷键总结

    最强 Android Studio 使用小技巧和快捷键总结   写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android ...

  3. Android课程---Android Studio使用小技巧:提取方法代码片段

    这篇文章主要介绍了Android Studio使用小技巧:提取方法代码片段,本文分享了一个快速复制粘贴方法代码片段的小技巧,并用GIF图演示,需要的朋友可以参考下 今天来给大家介绍一个非常有用的Stu ...

  4. Android开发学习之路-Android Studio开发小技巧

    上一次发过了一个介绍Studio的,这里再发一个补充下. 我们都知道,Android Studio的功能是非常强大的,也是很智能的.如果有人告诉你学Android开发要用命令行,你可以告诉他Andro ...

  5. Android Studio使用小技巧:提取方法代码片段

    http://www.jb51.net/article/65510.htm 今天来给大家介绍一个非常有用的Studio Tips,有些时候我们在一个方法内部写了过多的代码,然后想要把一些代码提取出来再 ...

  6. Android Studio每日小技巧

    一般的什么快捷键,技巧的文章也有很多.我也看过很多.下面这些事我在来自国外大神发布的:Android Studio Tips of the Day查看到的,而且对于我来说有帮助的及没用过的. Andr ...

  7. Android Studio 使用小技巧

    1.如何打开设置界面? File --> Settings 快捷键  Ctrl + Alt  + s 2.修改Java文件字体大小 ? File --> Settings --> E ...

  8. Android Studio常用小技巧

    1. Debug 模式查看变量的值: To quickly evaluate the value of any expression while debugging the program, hold ...

  9. (转载) Android Studio你不知道的调试技巧

    Android Studio你不知道的调试技巧 标签: android studio 2015-12-29 16:05 2514人阅读 评论(0) 收藏 举报  分类: android(74)    ...

随机推荐

  1. lua字符串对齐函数

    最近要用到字符串对齐,开始只是一部分字符串,就直接加空格了,后来发现有很多, 于是写了个字符串对齐的函数. --功能:分割字符串 --参数:带分割字符串,分隔符 --返回:字符串表 function ...

  2. ip: either "dev" is duplicate, or "type" is garbage

    Driver installation Nothing has to be done for the APF51Dev, the APF28Dev and the APF6Dev. For the A ...

  3. netlink--内核态与用户态通信

    1. 什么是 Netlink 什么是Netlink?Netlink是linux提供的用于内核和用户态进程之间的通信方式.但是注意虽然Netlink主要用于用户空间和内核空间的通信,但是也能用于用户空间 ...

  4. spring boot的@RequestParam和@RequestBody的区别

    一.问题描述 由于项目是前后端分离,因此后台使用的是spring boot,做成微服务,只暴露接口.接口设计风格为restful的风格,在get请求下,后台接收参数的注解为RequestBody时会报 ...

  5. c libghttp ghttp 库使用指南

    libghttp是一个很好用的 http 库,能够轻松地实现同步和异步的HTTP请求 目录 [隐藏]  1 安装 2 GET示例 3 POST示例 4 相关函数 5 艺搜参考 安装 库文件下载: 在6 ...

  6. I2C和SPI

    I2C(Inter-Integrated Circuit)总线 两线式串行总线,用于连接微控制器及其外围设备.是微电子通信控制领域广泛采用的一种总线标准.它是同步通信的一种特殊形式,具有接口线少,控制 ...

  7. MySQL数据库运维的五大指标

    如何评价一个公司数据库运维水平的高低?用什么来进行横向与纵向对比?自动化平台建设的目标是什么?必须有相应的指标体系来指导,此指标体系必须满足以下条件: • 可以用数字来测算和衡量 • 最终指标,而不是 ...

  8. Mac OSX使用 XAMPP path 下的php

    修改-/.bash_profile文件或.zshrc文件 export XAMPP_HOME=/Applications/XAMPP export PATH=${XAMPP_HOME}/bin:${P ...

  9. Administrator privileges required for OLE Remote Procedure Call debugging: this feature will not work..

    VC++ 6.0单步调试(F10)出现警告框: 解决方法: 右键VC++ 6.0程序图标

  10. PHP项目中经常用到的无限极分类函数

    //无限极分类函数调用 function getTree($data,$parent_id = 0,$dept_level = 0){ static $tree = []; foreach ($dat ...