本文主要记录 Android Studio 的使用技巧等,使用过程中遇到的问题详见我的另一篇博客 Android Studio 遇到问题集锦。
快捷键
C –> Ctrl
S –> Shift
M –> Alt
Cmd –> Command
导航与跳转
功能 | 快捷键 for win | 快捷键 for mac |
---|---|---|
Find Action | C-S-a | Cmd-S-a |
最近使用的文件 | C-e | Cmd-e |
Outline | C-F12 | Cmd-F12 |
定位到导航条 | M-Home | Cmd-Up |
快速打开类定义 | C-n | Cmd-n |
跳转至指定符号 | C-S-M-n | Cmd-S-M-n |
快速打开文件 | C-S-n | Cmd-S-o |
在…中选定当前文件 | M-F1 | M-F1 |
最近编辑过的文件 | C-S-e | Cmd-S-e |
打开光标所在变量类定义 | C-S-b | Cmd-S-b |
跳到变量/函数/类定义 | C-b/鼠标左键 | Cmd-b/鼠标左键/Down |
导航 Back/Forward | C-M-Left/Right | Cmd-[/] |
Super Method | C-u | Cmd-u |
Implementations | C-M-b | Cmd-M-b |
Method Hierarchy | C-S-h | Cmd-S-h |
Type Hierarchy | C-h | C-h |
Call Hierarchy | C-M-h | C-M-h |
Find Usages | M-F7 | M-F7 |
Show Usages | C-M-F7 | Cmd-M-F7 |
搜索 Everywhere | 双击 S | 双击 S |
搜索文本 | C-S-f | Cmd-S-f |
打开文件所在目录 | M-F1 8 | M-F1 8 |
打开设置 | C-M-s | Cmd-, |
切换至指定的工具窗口
功能 | 快捷键 for win | 快捷键 for mac |
---|---|---|
Project | M-1 | Cmd-1 |
Terminal | M-F12 | M-F12 |
Editor | Esc | Esc |
编辑
功能 | 快捷键 for win | 快捷键 for mac |
---|---|---|
注释/取消注释(//) | C-/ | Cmd-/ |
注释/取消注释(/**/) | C-S-/ | C-S-/ |
格式化代码 | C-M-l | Cmd-M-l |
智能 Import | C-M-o | C-M-o |
Undo | C-z | Cmd-z |
Redo | C-S-z | Cmd-S-z |
删除行 | C-y | Cmd-x |
复制行 | C-c | Cmd-c |
复制当前行到下一行 | C-d | Cmd-d |
在下面另起一行 | S-Enter | S-Enter |
在上面另起一行 | C-M-Enter | Cmd-M-Enter |
上/下移动代码行 | M-S-Up/Down | M-S-Up/Down |
上/下一处引用 | C-M-Up/Down | Cmd-M-Up/Down |
关闭浮动窗口 | S-Esc | S-Esc |
单步 | F8 | F8 |
步入 | F7 | F7 |
继续执行 | F9 | Cmd-M-r |
执行直到返回 | S-F8 | S-F8 |
执行到光标处 | M-F9 | M-F9 |
运行当前应用 | S-F10 | C-r |
调试当前应用 | S-F9 | C-d |
开/关断点 | C-F8/鼠标左键 | Cmd-F8 |
查看所有断点 | C-S-F8 | Cmd-S-F8 |
自动生成 | M-Insert | Cmd-n |
隐藏底部视图 | S-Esc | S-Esc |
删除一个单词 | C-Backspace | M-delete |
重构 - 重命名 | S-F6 | S-F6 |
注:
- 在 Windows 下格式化代码的 Ctrl+Alt+l 和 QQ 锁热键冲突了,我去 QQ 的设置里删除了QQ 锁热键。
- 在 Windows 下打开 Settings 的 Ctrl+Alt+s 与 QQ 打开消息盒子热键冲突了,我删除了 QQ 里的该热键。
折叠
功能 | 快捷键 for win | 快捷键 for mac |
---|---|---|
折叠当前代码块 | C-S-. | |
展开当前代码块 | 鼠标左键 | |
折叠当前折叠区域 | C– | |
展示当前折叠区域 | C-+ |
小技巧
快速在 Activity/Fragment 与 Layout 文件之间跳转
在 Activity/Fragment 里点击类名前的小图标跳转到关联的 Layout XML 文件:
在 Layout XML 文件里点击根节点前的小图标跳转到关联的 Activity/Fragment:
插件
-
Android Studio / IDEA plugin that helps to create styles
-
根据 Gson 库使用的要求,根据 Json 数据生成 Java 实体
打包
设置
此部分与 Intellj IDEA 通用。
在工程视图里隐藏指定类型文件
比如要隐藏 Vim 打开文件产生的 *.swp
文件,操作步骤:
-
在 Android Studio 里打开 File - Settings - Editor - File Types;
-
在 Ignore files and folders 里加上
*.swp
,点 OK 保存。
屏蔽 IDE 的某些弹出通知
有些 IDE 通知经常弹出,而你却并不想看到它,比如 Usage Statistics,Vcs Notifications 等,屏蔽步骤:
-
在 Android Studio 里打开 File - Settings - Appearance & Behavior - Notifications;
-
在界面上找到你想屏蔽的 Group,将 Popup 列改为 No popup,点 OK 保存即可。
定制自动生成的 Getter、Setter
默认行为下,如果一个类有成员变量 mUser,那么生成的 Getter/Setter 的名字会叫做 getmUser 和 setmUser,但我期望的是 getUser 和 setUser,这可以通过修改设置来实现:
-
在 Android Studio 里打开 File - Settings - Editor - Code Style - Java
-
在右侧找到 Code Generation 这个 tab,在 Naming 的 Prefer longer names 里,field 的 Name prefix 里填上
m
,Static field 的 Name prefix 里填上s
。
设置 logcat 缓冲区条数
logcat 默认缓冲区条数不大,在日志比较多的时候经常出现想要的信息被冲掉的情况,所以一般都将缓冲区条数设置大一些,方法:
-
关闭 Android Studio;
-
给 Android Studio 安装目录下的 bin/idea.properties 文件添加如下内容:
idea.cycle.buffer.size=1024000
这个数字可以根据需求修改。
-
启动 Android Studio。
设置生成注释时的 author
默认情况下文件头注释里的 author 是当前登录操作系统的用户名,如 Administrator 或 Lenovo 等,如果我们想替换成自己的名字,方法是打开 Android Studio 可执行程序,比如 studio64.exe 同目录下的 studio64.exe.vmoptions,在最下面加入这样一行:
-Duser.name=mazhuang
然后重新启动 Android Studio 即可。
此方法同样适用于 IntelliJ Idea,修改 idea64.exe.vmoptions 即可。
修改新建 Activity 的默认布局
现在新建 Activity 等,layout 文件里的默认布局为 ConstraintLayout,这个布局被吹得神乎其技,但我还没有用惯……所以希望新建 Activity 的默认布局改为 RelativeLayout。
在 StackOverflow 上搜索到解决方案:
链接:How to switch from the default ConstraintLayout to RelativeLayout in Android Studio
简述:
-
找到 Android Studio 安装目录,打开子目录 plugins/android/lib/templates/activities/common/root/res/layout,在下面应该能看到 simple.xml.ftl 文件,这就是我们新建 Activity 时的 layout 模板了;
-
备份 simple.xml.ftl 文件;
-
打开 simple.xml.ftl 文件,可以看到如下内容:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" <#if hasAppBar && appBarLayoutName??> app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:showIn="@layout/${appBarLayoutName}" </#if> tools:context="${packageName}.${activityClass}"> <#if isNewProject!false> <TextView <#if includeCppSupport!false> android:id="@+id/sample_text" </#if> android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </#if> </android.support.constraint.ConstraintLayout>
将这些内容修改为:
<?xml version="1.0" encoding="utf-8" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > </RelativeLayout>
-
重启 Android Studio。
同理,如果要修改新创建的 BlankFragment、ListFragment 等的默认布局,可以在 Android Studio 安装目录下的 plugins/android/lib/templates/other 下找到对应的模板内容并修改。
这样修改之后,会导致一个问题,就是 Android Studio 升级会失败,提示:
Some conflicts were found in the installation area.
Some on the conficts below do not have a solution, so the patch cannot be applied.
Press Cancel to exit.
File | Action | Problem | Solution |
---|---|---|---|
plugins/android/lib/templates/activities/common/root/res/layout/simple.xml.ftl | Validate | Modified | NONE |
解决方案:
将备份的文件贴回去,然后等 Android Studio 升级完成之后再改成我们想要的版本即可。
其它信息
Android Plugin 与 Gradle 版本对应
https://developer.android.com/studio/releases/gradle-plugin.html