Android Studio相见恨晚的操作锦集
作为一个Android开发者,最常使用的就是Android Studio了,我在这里声明Android Studio比Eclipse好用100倍,不服来辩。本文用于纪录Android Studio中相见恨晚的操作,阅读本文大概需要不确定时间。(你难道就不边读边试试?)我会用尽量简单明了的语言介绍。PS:多图,流量用户慎入。
为了方便 老读者 阅读,我会将更新内容放在开头。 新用户 可以直接跳过该部分,该内容已经在文中同步更改。
更新日期 |
更新内容 |
备注 |
---|---|---|
2016/7/30 |
更新更简单的非空输入方法对象.nn |
|
更新Windows版查看类的继承关系快捷键Ctrl+H |
感谢3f76b4e62a13的补充 |
|
更新活动模版查看和自定义入口Preference->Editor->Live Templates |
感谢Sacowiw的提供 |
|
2016/7/25 |
更新大纲 Windows版快捷键Ctrl+F12 |
感谢Alex_Cin,bryanno1的提供和验证 |
编写
活动模版
for循环原来可以这样
遍历集合的时候,对象.for
就可以生成迭代循环遍历:
.fori
可以这样:
.forr
可以反向:
数字.for
也可以:
判空可以这样
在写代码的时候,判空是不可避免的。判空可以这样,对象.null
:
非空可以这样,对象.notnull
:
非空还有更简单的方法,对象.nn
:
别再写if()了
if可是我们最常用的了,但是我劝你再也不要写if()了,试试任何可以判断的语句后面加上.if:
instance也可以很炫酷
活动模版自定义和查看入口
Preference
->Editor
->Live Templates
,这个窗口下小伙伴们可以看到所有的活动模版,还可以自定义自己的活动模版。例如我就定义了一个tc
,作为android:textColor=""
的活动模版。
多行编辑
喜欢用sublime等编辑器的小伙伴对这个应该在熟悉不过了。
多行编辑
例如我们有四个Button要定义,可以先这样,按住alt键+鼠标左键一直向下拉,就可以选中多行,然后编辑就可以同时对多行进行编辑,编辑完相同部分再分别输入不同部分就ok了:
块编辑
比如我们要把上边定义的四个Button 改为TextView类型:
操作也是按住alt不放,拉对角线,拉出一块,就可以对选中的块,进行块编辑了。
Alt+Enter
这个是Android Studio神快捷键。如果你还认为Alt+Enter键是导入包,那就大错特错了。以后有事没事就按下吧。它会根据不同的情况给出操作建议,大大提高工作效率。
eg.
我要获取布局文件中的RecyclerView,findViewById写好了,这个时候需要强制类型转化,在红线上按使用该快捷键,给出了提示Cast to ...(此处省略好几个字),再回车,代码生成好了。
接下来是要给RecyclerView设置一个Adapter,那么我先写了没有的PersonAdapter类,那么这个类是没有的,提示红色,我们在该类上使用该快捷键,给出了提示:Create class ...,回车,这个类便创建好了。
但是我们要实现RecyclerView.Adapter中的方法,我们在红线部分使用快捷键,看到给出提示implement method,回车,方法实现了。
Alt+Enter快捷键是Android Studio中的神键,它的功能远不止这些,没事就按一按吧。按按更健康。
搜索
在写代码的过程中,代码检索永远都少不了。如果你是眼睛去找,那效率真的不知道要差到哪里去了。
搜索基本操作
这些搜索操作我叫做基本操作
操作 |
Mac |
Windows |
---|---|---|
搜索类 |
Command+O |
Ctrl+N |
文件中搜索 |
Command+F |
Ctrl+F |
搜索文件 |
Command+shift+O |
Ctrl+shift+N |
全局查找 |
Command+shift+F |
Ctrl+shift+F |
要是懒的话,这四个基本可以解决查找问题。
大纲
大纲快捷键 Mac:Command+F12 Windows:我不知道。。。(我自己用的Mac有些Windows的我也不知道。欢迎补充,PS:我的Mac开启了将Fx键用作标准功能键,如果没有开启的小伙伴,你的快捷键就是Command+Fn+F12),大纲出来了,就可以查看该类中的成员变量和成员方法,直接输入名称就可以筛选查询。
Search Everywhere
这个功能的强大就如它的名字一样,它的快捷键是双击shift,输入关键字就可以。就连窗口都可以搜索奥。
窗口
分屏
分屏可以上下,可以左右,我更喜欢左右分屏,有的时候很方便。
你可以直接使用Search Everywhere功能,然后输入split会有vertically和Horizontally两种,选择你要的就可以。或者在编辑窗口上的标签,右击,选择split vertically或者split Horizontally。我比较喜欢使用Search Everywhere,键盘总比鼠标快。
Hierarchy窗口
Hierarchy窗口可以让我们看清楚层级关系,还记得之前非常火的一个段子讲,是好朋友不会让你学Java的,然后附了一张Java继承关系的图,在继承关系层级很深,很复杂的时候,这个窗口简直不能太好。
这个是类的继承关系:
打开这个窗口,可以使用Search Everywhere功能,输入Hierarchy就可以,Mac也可以使用快捷键ctrl+H,Windows快捷键也是ctrl+H。
还有一个Call Hierarchy,可以显示出方法的调用层级关系:
这个的快捷键是ctrl+alt+H。
调试
调试过程在开发中也是少不了的。
快照
有关UI的编程,这个功能知道会省很多事。
在运行过程中,可以给手机截图,并保存。再也不用手机截图然后再传电脑了。
录屏
在做有关动画的功能的时候,录屏功能可以让你更好的检查动画是否正确。
断点
断点的使用,断点的用法不止是让程序停下来。试一试在停下来之后使用快捷键Alt+F8,调出Evaluate Expression界面,在该界面你可以输入你想查看的值,就可以显示出来。
除此之外在断点处右击,会出现如下的界面,你可以在图中光标处输入断点停下的条件,当你需要在一个循环中打断点的时候,这简直就是神技:
在上图中Suspend前的勾取消会看到这样的界面:
这个界面上内容更多,比如你选中了Log evaluated expression,然后在下面的输入框中输入你想要输出的log,那么这个断点就不会在这里停下来,而是在控制台输出一条日志。
结束语
这篇文章没有结束,正在看的你如果对Android Studio还有其他的相见恨晚的操作,欢迎留言补充。希望这篇文章对大家有帮助。
- 解决NTPD漏洞,升级Ntpd版本
- 独家 | 手把手教TensorFlow(附代码)
- HBase Region自动切分细节
- eclipse搭建ssh后台
- 解决mysql漏洞 Oracle MySQL Server远程安全漏洞(CVE-2015-0411)
- im4java包处理图片
- centOS7 mini配置linux服务器(五) 安装和配置tomcat和mysql
- RedisPool操作Redis,工具类实例
- centOS7 mini配置linux服务器(四) 配置jdk
- 老司机教你“飙”EventBus3
- Android listView异步下载和convertView复用产生的错位问题
- 实用Android 屏幕适配方案分享
- java-FFmpeg(一) 实现视频的转码和截图功能
- websocket(二) websocket的简单实现,识别用户属性的群聊
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- python实现图像外边界跟踪操作
- php微信分享到朋友圈、QQ、朋友、微博
- Numpy 多维数据数组的实现
- 使用matplotlib的pyplot模块绘图的实现示例
- PHP get_html_translation_table()函数用法讲解
- Laravel中10个有用的用法小结
- PHP7 echo和print语句实例用法
- python上selenium的弹框操作实现
- php分享朋友圈的实现代码
- Laravel框架Request、Response及Session操作示例
- 利用scikitlearn画ROC曲线实例
- 小程序微信退款功能实现方法详解【基于thinkPHP】
- PHP回调函数简单用法示例
- PHP explode()函数用法讲解
- 详解提高使用Java反射的效率方法