Android Studio

闷骚的程序员

本文主要记录 Android Studio 的使用技巧等,使用过程中遇到的问题详见我的另一篇博客 Android Studio 遇到问题集锦

快捷键

C –> Ctrl

S –> Shift

M –> Alt

Cmd –> Command

导航与跳转

功能快捷键 for win快捷键 for mac
Find ActionC-S-aCmd-S-a
最近使用的文件C-eCmd-e
OutlineC-F12Cmd-F12
定位到导航条M-HomeCmd-Up
快速打开类定义C-nCmd-n
跳转至指定符号C-S-M-nCmd-S-M-n
快速打开文件C-S-nCmd-S-o
在…中选定当前文件M-F1M-F1
最近编辑过的文件C-S-eCmd-S-e
打开光标所在变量类定义C-S-bCmd-S-b
跳到变量/函数/类定义C-b/鼠标左键Cmd-b/鼠标左键/Down
导航 Back/ForwardC-M-Left/RightCmd-[/]
Super MethodC-uCmd-u
ImplementationsC-M-bCmd-M-b
Method HierarchyC-S-hCmd-S-h
Type HierarchyC-hC-h
Call HierarchyC-M-hC-M-h
Find UsagesM-F7M-F7
Show UsagesC-M-F7Cmd-M-F7
搜索 Everywhere双击 S双击 S
搜索文本C-S-fCmd-S-f
打开文件所在目录M-F1 8M-F1 8
打开设置C-M-sCmd-,

切换至指定的工具窗口

功能快捷键 for win快捷键 for mac
ProjectM-1Cmd-1
TerminalM-F12M-F12
EditorEscEsc

编辑

功能快捷键 for win快捷键 for mac
注释/取消注释(//)C-/Cmd-/
注释/取消注释(/**/)C-S-/C-S-/
格式化代码C-M-lCmd-M-l
智能 ImportC-M-oC-M-o
UndoC-zCmd-z
RedoC-S-zCmd-S-z
删除行C-yCmd-x
复制行C-cCmd-c
复制当前行到下一行C-dCmd-d
在下面另起一行S-EnterS-Enter
在上面另起一行C-M-EnterCmd-M-Enter
上/下移动代码行M-S-Up/DownM-S-Up/Down
上/下一处引用C-M-Up/DownCmd-M-Up/Down
关闭浮动窗口S-EscS-Esc
单步F8F8
步入F7F7
继续执行F9Cmd-M-r
执行直到返回S-F8S-F8
执行到光标处M-F9M-F9
运行当前应用S-F10C-r
调试当前应用S-F9C-d
开/关断点C-F8/鼠标左键Cmd-F8
查看所有断点C-S-F8Cmd-S-F8
自动生成M-InsertCmd-n
隐藏底部视图S-EscS-Esc
删除一个单词C-BackspaceM-delete
重构 - 重命名S-F6S-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 文件:

jump from class to layout

在 Layout XML 文件里点击根节点前的小图标跳转到关联的 Activity/Fragment:

jump from layout to class

插件

打包

设置

此部分与 Intellj IDEA 通用。

在工程视图里隐藏指定类型文件

比如要隐藏 Vim 打开文件产生的 *.swp 文件,操作步骤:

  1. 在 Android Studio 里打开 File - Settings - Editor - File Types;

  2. 在 Ignore files and folders 里加上 *.swp,点 OK 保存。

屏蔽 IDE 的某些弹出通知

有些 IDE 通知经常弹出,而你却并不想看到它,比如 Usage Statistics,Vcs Notifications 等,屏蔽步骤:

  1. 在 Android Studio 里打开 File - Settings - Appearance & Behavior - Notifications;

  2. 在界面上找到你想屏蔽的 Group,将 Popup 列改为 No popup,点 OK 保存即可。

定制自动生成的 Getter、Setter

默认行为下,如果一个类有成员变量 mUser,那么生成的 Getter/Setter 的名字会叫做 getmUser 和 setmUser,但我期望的是 getUser 和 setUser,这可以通过修改设置来实现:

  1. 在 Android Studio 里打开 File - Settings - Editor - Code Style - Java

  2. 在右侧找到 Code Generation 这个 tab,在 Naming 的 Prefer longer names 里,field 的 Name prefix 里填上 m,Static field 的 Name prefix 里填上 s

code generation naming

设置 logcat 缓冲区条数

logcat 默认缓冲区条数不大,在日志比较多的时候经常出现想要的信息被冲掉的情况,所以一般都将缓冲区条数设置大一些,方法:

  1. 关闭 Android Studio;

  2. 给 Android Studio 安装目录下的 bin/idea.properties 文件添加如下内容:

    idea.cycle.buffer.size=1024000
    

    这个数字可以根据需求修改。

  3. 启动 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

简述:

  1. 找到 Android Studio 安装目录,打开子目录 plugins/android/lib/templates/activities/common/root/res/layout,在下面应该能看到 simple.xml.ftl 文件,这就是我们新建 Activity 时的 layout 模板了;

  2. 备份 simple.xml.ftl 文件;

  3. 打开 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>
    
  4. 重启 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.
FileActionProblemSolution
plugins/android/lib/templates/activities/common/root/res/layout/simple.xml.ftlValidateModifiedNONE

解决方案:

将备份的文件贴回去,然后等 Android Studio 升级完成之后再改成我们想要的版本即可。

安装 Android Studio 后不显示 logcat 窗口

新建或打开一个简单的 Android 工程,编译运行后,窗口就会自动出来了。

其它信息

Android Plugin 与 Gradle 版本对应

https://developer.android.com/studio/releases/gradle-plugin.html

文档信息

Search

    Table of Contents