图解多平台 AndroidStudio 技巧(三)

简介: 文章中没有奇淫技巧,都是一些在实际开发中、阅读源码的时候常用的快捷键,可能这些快捷键之前用过,但是在不同场景下有不同的用法,强烈建议收藏。

image.png


公众号:ByteCode,致力于分享最新技术原创文章,涉及 Kotlin、Jetpack、译文、系统源码、 LeetCode / 剑指 Offer / 多线程 / 国内外大厂算法题 等等一系列文章。


好的 idea 能提高我们的工作效率,如果掌握一些快捷键,能帮我们从繁琐重复的工作中解放出来,写代码的效率就越高。


近期在开发过程中发现了一些非常好用的快捷键分享给小伙伴们,在之前的文章中我也分享过一些常用的快捷键,可以点击下列链接前往查看。



文章中没有奇淫技巧,都是一些在实际开发中、阅读源码的时候常用的快捷键,可能这些快捷键之前用过,但是在不同场景下有不同的用法,强烈建议收藏。


软件环境:


  • Mac/Win/Linux: 内置默认快捷键
  • AndroidStudio V4.1.2
  • 不同的外接键盘使用下列快捷键,需要根据自己的键盘做相应的调整


批量修改



这是一个非常好用的功能,在开发过程中可能会遇到批量修改某个相同的字符串,这个快捷键可以让你的效率提高 N 倍。


  • Mac: Ctrl + G
  • Win/Linux: Alt + J


image.png


when 快捷键



Sealed Classes 用于表示受限制的类层次结构,其实这句话可以拆成两句话来理解。


  • Sealed Classes 用于表示层级关系: 子类可以是任意的类, 数据类、Kotlin 对象、普通的类,甚至也可以是另一个 Sealed
  • Sealed Classes 受限制: 必须在同一文件中,或者在 Sealed Classes 类的内部中使用,在Kotlin 1.1 之前,规则更加严格,子类只能在 Sealed Classes 类的内部中使用


Sealed Classes 通常和 when 表达式一起使用,接下来我们来看一段示例。


sealed class Color {
    class Red(val value: Int) : Color()
    class Green(val value: Int) : Color()
    class Blue(val name: String) : Color()
}
fun isInstance(color: Color) {
    when (color) {
        is Color.Red -> TODO()
        is Color.Green -> TODO()
        is Color.Blue -> TODO()
    }
}


如果我们手写 when 表达式,开发效率是非常低效的,所以在这里推荐大家一个快捷键,可以补全 when 语句下的所有分支,效果如下所示:


  • Mac: Option + enter(回车键)
  • Win/Linux: Alt + enter(回车键)


image.png


在布局文件之间轻松跳转



在开发过程中经常需要在 Activity / Fragment / Adapter / Dialog 与之关联的布局文件之间跳转,常用的两种方式:


方式一: 点击图中所示图标,跳转到相对应的布局文件


image.png


方式二: 使用快捷键跳转,效果如下所示


  • Mac: Ctrl + Cmd + Up(向上箭头)
  • Win/Linux: Ctrl + Alt + Home


image.png


转换为 DataBinding



随着 Google 废弃 kotlin-android-extensions 插件消息出来之后,已经越来越多的小伙伴开始使用 ViewBinding 和 DataBinding,接下来介绍一个快捷键将布局文件转换为 data binding layout。


  • Mac: Option + enter(回车键)
  • Win/Linux: Alt + enter(回车键)


image.png


书签



我们经常在开发过程中或者阅读代码的时候,需要在不同的类中进行跳转,只需要在某处打个书签,很方便跳转回原处,这是一个非常实用的功能,快来试试吧。


增加/删除书签:


  • Mac: Fn + F3
  • Win/Linux: F11


image.png


增加/删除书签(同时打上标记):


  • Mac: Fn + Option + F3
  • Win/Linux: Ctrl + F11


image.png


查看所有书签,并跳转回原处


  • Mac: Fn + Cmd + F3
  • Win/Linux: Shift + F11


image.png


隐藏面板



隐藏面板功能就是让编辑器充满整个界面,节省空间,可以更专注于敲代码。


  • Mac: Cmd +Shift + F12
  • Win/Linux: Ctrl + Shift + F12


image.png


汇总



为了方便查看将上面的快捷键做一个汇总。


说明 快捷键
批量修改 Mac: Mac: Ctrl + G
Win/Linux: Alt + J
when 快捷键 Mac: Option + enter
Win/Linux: Alt + enter
在布局文件之间轻松跳转 Mac: Ctrl + Cmd + Up
Win/Linux: Ctrl + Alt + Home
转换为 DataBinding Mac: Option + enter
Win/Linux: Alt + enter
增加/删除书签 Mac: Fn + F3
Win/Linux: F11
增加/删除书签(同时打上标记) Mac: Fn + Option + F3
Win/Linux: Ctrl + F11
查看所有书签 Mac: Fn + Cmd + F3
Win/Linux: Shift + F11
隐藏面板 Mac: Cmd +Shift + F12
Win/Linux: Ctrl + Shift + F12


AndroidStudio 是非常强大的工具,还有很多快捷键等着我们一起来探索,这是 图解多平台 AndroidStudio 技巧系列第三篇,未来还会继续分享更多实用技巧,相同的快捷键,在不同的场景下有不同的用法,也欢迎你来分享更多好用的技巧,想了解更多快捷键,前往查看 Google 官方文档


全文到这里就结束了,如果有帮助 点个赞 就是对我最大的鼓励


代码不止,文章不停


欢迎关注公众号:ByteCode,持续分享最新的技术


最后推荐我一直在更新维护的项目和网站:


  • 全新系列视频:现代 Android 开发 (MAD) 技巧系列教程:在线查看
  • 计划建立一个最全、最新的 AndroidX Jetpack 相关组件的实战项目 以及 相关组件原理分析文章,正在逐渐增加 Jetpack 新成员,仓库持续更新,欢迎前去查看:AndroidX-Jetpack-Practice
  • LeetCode / 剑指 offer / 国内外大厂面试题 / 多线程 题解,语言 Java 和 kotlin,包含多种解法、解题思路、时间复杂度、空间复杂度分析


image.png


  • 最新 Android 10 源码分析系列文章,了解系统源码,不仅有助于分析问题,在面试过程中,对我们也是非常有帮助的,仓库持续更新,欢迎前去查看 Android10-Source-Analysis
  • 整理和翻译一系列精选国外的技术文章,每篇文章都会有译者思考部分,对原文的更加深入的解读,仓库持续更新,欢迎前去查看 Technical-Article-Translation
  • 「为互联网人而设计,国内国外名站导航」涵括新闻、体育、生活、娱乐、设计、产品、运营、前端开发、Android 开发等等网址,欢迎前去查看 为互联网人而设计导航网站


历史文章





目录
相关文章
|
传感器 XML 消息中间件
Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建
Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建
Qt开发技术:mqtt介绍、QtMqtt编译和开发环境搭建
|
3月前
|
编解码 缓存 开发工具
Pico Neo 3教程☀️ 三、SDK 的进阶功能
Pico Neo 3教程☀️ 三、SDK 的进阶功能
|
4月前
|
C++ Windows
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
在Windows上使用Visual Studio 2022进行FFmpeg和SDL2集成开发,首先安装FFmpeg至E:\msys64\usr\local\ffmpeg,然后新建C++控制台项目。在项目属性中,添加FFmpeg和SDL2的头文件及库文件目录。接着配置链接器的附加依赖项,包括多个FFmpeg及SDL2的lib文件。在代码中引入FFmpeg的`av_log`函数输出"Hello World",编译并运行,若看到"Hello World",即表示集成成功。详细步骤可参考《FFmpeg开发实战:从零基础到短视频上线》。
150 0
FFmpeg开发笔记(三十九)给Visual Studio的C++工程集成FFmpeg
|
4月前
|
JavaScript 区块链
从零开始:如何用Electron将chatgpt-plus.top 打包成EXE文件
从零开始:如何用Electron将chatgpt-plus.top 打包成EXE文件
52 0
|
XML 存储 JSON
猿创征文|Python基础——Visual Studio版本——第五章 文件I/O
猿创征文|Python基础——Visual Studio版本——第五章 文件I/O
136 0
猿创征文|Python基础——Visual Studio版本——第五章 文件I/O
|
存储 缓存 安全
NDK 系列(5):JNI 从入门到实践,万字爆肝详解!(下)
NDK 系列(5):JNI 从入门到实践,万字爆肝详解!(下)
252 0
NDK 系列(5):JNI 从入门到实践,万字爆肝详解!(下)
|
算法 Java Linux
NDK 系列(5):JNI 从入门到实践,万字爆肝详解!(上)
NDK 系列(5):JNI 从入门到实践,万字爆肝详解!
558 0
NDK 系列(5):JNI 从入门到实践,万字爆肝详解!(上)
|
编解码 编译器 开发工具
Qt开发笔记(一):Qt+FFmpeg开发环境搭建以及工程模板
Qt开发笔记(一):Qt+FFmpeg开发环境搭建以及工程模板
Qt开发笔记(一):Qt+FFmpeg开发环境搭建以及工程模板
|
机器学习/深度学习 人工智能 缓存
Python零基础快速入门系列(1)人工智能序章:开发环境搭建Anaconda+VsCode+JupyterNotebook(零基础启动)
本文将采用Anaconda+VsCode+JupyterNotebook的方案,环境安装完毕后,将拥有Python运行环境、常见的Python库例如python三剑客:Numpy、matplotlib、pandas、机器学习库sklearn全都有了。
270 0
Python零基础快速入门系列(1)人工智能序章:开发环境搭建Anaconda+VsCode+JupyterNotebook(零基础启动)
|
Java API PHP
AndroidStudio反编译调试实战
AndroidStudio反编译调试实战
580 0