本文首发:http://prototypez.github.io/2016/04/19/about-10-things-you-probably-didn-t-know-you-could-do-in-android-studio/

转载请注明出处

Android Studio 是每个 Android 开发每天都要使用的工具。可是即使你是一个经验丰富的开发者。你也可能已经错过了很多能够节约生命的技巧。这篇文章或许就能够帮助你掌握它们当中的一部分。

我不会一字一句地翻译,而是以最简洁易懂的方式介绍给你,同一时候提供必要的注解和延伸,让你能够在一遍高速阅读之后迅速掌握。

当你想不起来某个功能怎么用的时候

假设你是 Windows/Linux 用户, 那么请按Ctrl + Shift + A, 假设你是 Mac 用户。那么请按Command + Shift + A,在这个万能的输入框内能够输入你想要运行的操作(当然是英文),列表中会显示相应的可选操作以及快捷键。不仅仅是操作。假设你仅仅是想改变某个设置的时候。也能够使用这个功能。比如你想设置Gradle为 offline work 的话,能够在输入框输入offline,相应的的结果中选择Toggle Offline Work就可以,再比方你须要打开粘贴代码时候的Auto Import功能,那么也仅仅要在输入框中输入Auto Import然后选择相应项就可以。

改动快捷键

在 Android Studio 中全部快捷键都是能够自己定义的。请唤起伟大的Ctrl + Shift + A,输入keymap,选择位于Settings > Keymap的那个选项,这里能看到全部的快键键,一般不建议在原有快捷键方案上直接改动快捷键,而是拷贝一份现有的方案再在上面改,在Keymaps的下拉框中选择一份现有的方案(默觉得 Default)。点击右边的Copy,然后在列表中须要改动的快捷键的项目上右键,选择Add Keyboard Shortcut,然后就能够设置自己喜欢的快捷键了,假设设置的快捷键与其他按键有冲突,会以红色错误信息提示。

由于列表中快捷键数量比較多。所以我们还能够利用右边的搜索框进行搜索,比如须要改动基本自己主动补全的快捷键我们仅仅要输入Basic。就能够在结果中找到相应的项了。

你须要了解的自己主动补全

一般使用 Android Studio 的时候,自己主动提示会在你想要提示的时候自己主动出现,比方输入Log.,就会提示一堆比方Log.d(), Log.e, Log.i()。只是假设你在自己主动提示的时候手一抖选错的话。比方想选Log.d()结果选了Log.e(),你是不是会把.e()都删掉。然后再输入一个.。事实上遇到这样的须要又一次手动呼起自己主动补全的情形仅仅须要使用Ctrl + Alt + 空格就能够了。

事实上还有两种方法:一是基本补全Ctrl + 空格,然而 Windows 用户表示不开心。由于这和 Windwos 系统切换输入法快捷键冲突,假设你不想改动这个快捷键。那么使用Ctrl + Alt + 空格作为替代。假设你想改动这个快键键,那么你能够使用上一小节的方法设置新的快捷键。在Keymaps界面搜索Basic,然后在过滤后的结果中选择Code->Completion->Basic进行设置。另一种方法是智能补全Ctrl + Shift + 空格, 只是智能补全远远不止这个功能,当你调用方法时。能够使用智能补全在当前上下文联想符合该方法形參类型的变量。

在自己主动提示以后使用 Tab 键替换当前的方法或值

假设我们手动呼出自己主动补全的时候。当前位置已经有相应的方法或者变量(比方原来调用Obj的A方法。然后我们把光标定位到A方法的位置。呼出自己主动补全,希望自己主动补全的B方法取代A方法)。这时候假设我们选中补全的的项目,按下回车。那么补全的内容会插入到原来内容的前面,这不是我们想要的内容,事实上这时候不应该按回车,而是Tab

当你写完了一行代码

这样的情况非经常见,当你写完一行代码的时候。光标并不在当前行的末尾,比較常见的是光标右边还有 N 个 右括号,这时候你会怎么办?可能你会使用方向键把光标移动到行末。然后手动输入一个;。事实上有更简单的方案。那就是Ctrl + Shift + 回车。这个快捷键会帮助你自己主动补全当前表达式所缺的部分。包含在行末输入;,值得一提的是,该快捷键对ifelseforwhile控制循环相同有效。



另一种情况,光标并不在行尾,可是你希望能够在下一行插入一个空行,Shift + 回车能够帮你完毕这个任务。

三个定位的小技巧

使用 4 个方向键定位光标是我们最熟悉的方法,可是事实上能够更方便的。在按方向键的同一时候按住Ctrl,能够一个单词一个单词移动;在按上下键的同一时候按住Alt, 能够一个节点(方法或者字段)一个节点移动;假设在按上下键的同一时候按住Shift + Ctrl,能够把当前行和上下行交换位置。

依据后缀自己主动生成的代码模板

日常使用编辑器的过程中,有非常多固定格式的写法,比如if-else, for 等等,使用代码模板能够更快得帮助我们生成期望的代码。举个样例,先输入一个集合类型的变量而且加上后缀.fori,这时候自己主动提示会提示依照该集合类型生成for循环。同理,布尔类型的表达式加上.if后缀也能够生成以该表达式为条件的if语句。



实际上。上面这两种代码模板是IntelliJ自带的。Android Studio 还提供了很多与 Android 有关的代码模板,比方生成ToastParcelable的模板,查看全部可用模板以及自己定义模板的方法是首先Ctrl + Shift + A呼出万能的搜索框。输入Live templates,选择位于SettingsLive Templates,在这里就能够看到全部可用的代码模板。

Debug 时自己定义对象显示的技巧

在调试代码的时候,我们经常须要查看一个对象的值。

尤其是自己定义的对象,我们经常没有实现它的toString方法。那么这个对象在 IDE 的值就是 ClassName:HashValue 这个样子。我们须要点开这个对象查看它里面各个成员的值。

在不实现toString方法的情况下事实上有更好的方法。在 Debug 的Variable窗体中右键须要查看的对象,选择View as。既能够设置该对象在 Debug 状态下显示的方式。

总结

感谢你看到这里 :)

Android Studio 的 10 个你非常有可能不知道的技巧的更多相关文章

  1. Android Studio(十二):打包多个发布渠道的apk文件

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  2. Android Studio 代码页跳界面 /java和XML快速切换技巧

    https://www.cnblogs.com/simadi/p/6698666.html?utm_source=itdadao&utm_medium=referral 今天又发现了一个And ...

  3. 熟悉Android开发不得不知道的技巧

    博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved ! 1.用Eclipse插件将文件批量编码如GBK-UTF-8 用 ...

  4. Android studio:Groovy 与 Gradle 基础【三】

    转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=255064&extra=page%3D2%26filter%3Dautho ...

  5. Android Studio(八):Android Studio设置教程

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  6. Android Studio(十一):代码混淆及打包apk

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  7. Android Studio(十):添加assets目录

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  8. Android Studio(九):引用jar及so文件

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  9. Android Studio(七):项目从Eclipse到Android Studio迁移

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

随机推荐

  1. linux socket talkclient talkserver示例

    cleint: #define _GNU_SOURCE 1 #include <sys/types.h> #include <sys/socket.h> #include &l ...

  2. .Net Discovery 系列之二--string从入门到精通(下)

    前两节我们介绍了string的两个基本特性,如果你觉得你已经比较全面的了解了string,那么就来看看这第3.4两节吧. 三.有趣的比较操作  在第一节与第二节中,我们分别介绍了字符串的恒定性与与驻留 ...

  3. ansible经常使用模块使用方法

    ansible 默认提供了非常多模块来供我们使用. 在 Linux 中,我们能够通过 ansible-doc -l 命令查看到当前 ansible 都支持哪些模块,通过 ansible-doc  -s ...

  4. 在ASP.NET MVC中使用Log4Net记录异常日志,出错时导向到静态页

    本篇体验在ASP.NET MVC 4中使用Log4Net记录日志. 通过NuGet安装Log4Net. 需求是:当出错时导向到Error.html静态页面,Log4Net记录错误信息. 大致的思路是: ...

  5. Delphi2010 RTTI + Attribute 简单实现ORM实例

    1.支持ORM,最基础的两个信息是表的信息和字段信息.这两个信息,如果用Attribute 来辅助,代码更简洁和可读性更好.可以把属性名当做真实字段名,也可以将特性里的属性当成真实姓名,再加上字段标题 ...

  6. delphi 取得任意程序的命令行

    program GetCommandLineExDemo; uses Windows; constSystemHandleInformation = 16;ProcessBasicInformatio ...

  7. 使用 Crash 工具分析 Linux dump 文件

    转自:http://blog.csdn.net/commsea/article/details/11804897 简介: Linux 内核由于其复杂性,使得对内核出现的各种异常的追踪变得异常困难.本文 ...

  8. 监听home键+模拟home键

    一.监听home键首先定义一个广播接受者 HomeKeyReceiver package com.kale.floattest; import com.kale.floattest.service.D ...

  9. [Web 前端] 流行的JavaScript库 ——jQuery

    cp : https://www.cnblogs.com/zhoushihui/p/5141767.html   1.为了简化 JavaScript 的开发, 一些 JavsScript 库诞生了. ...

  10. Asp.Net Core获取请求信息/获取请求地址

     一.Asp.Net Core 2.0版本中目前HttpRequest是个抽象类 在控制器或视图上下文中获取到的 Request对象,是 DefaultHttpRequest的实例. 定义 如图 : ...