原文转载自:简书:柴泽建_jack 网址:http://www.jianshu.com/p/bc8f6bfe12c6
作为一个Android开发者,最常使用的就是Android Studio了,我在这里声明Android Studio比Eclipse好用100倍,不服来辩。本文用于纪录Android Studio中相见恨晚的操作,阅读本文大概需要不确定时间。(你难道就不边读边试试?)我会用尽量简单明了的语言介绍。PS:多图,流量用户慎入。
为了方便 老读者 阅读,我会将更新内容放在开头。
新用户 可以直接跳过该部分,该内容已经在文中同步更改。
更新日期 | 更新内容 | 备注 |
---|---|---|
2016/9/22 | 更新Android Studio 2.2 查询示例程序的操作,具体见内容 5 | |
2016/9/17 | 更新 提取 和 内联 的快捷操作,具体看内容 1.3.2 和 1.3.3 | 感谢MAIMIHO读者的提供。参考链接:1,2 |
2016/7/30 | 更新更简单的非空输入方法对象.nn |
|
更新Windows版查看类的继承关系快捷键Ctrl+H |
感谢3f76b4e62a13的补充 | |
更新活动模版查看和自定义入口Preference ->Editor ->Live Templates |
感谢Sacowiw的提供 | |
2016/7/25 | 更新大纲 Windows版快捷键Ctrl+F12 |
感谢Alex_Cin,bryanno1的提供和验证 |
1 编写
1.1 活动模版
1.1.1 for循环原来可以这样
遍历集合的时候,对象.for
就可以生成迭代循环遍历:
.fori
可以这样:
.forr
可以反向:
数字.for
也可以:
1.1.2 判空可以这样
在写代码的时候,判空是不可避免的。判空可以这样,对象.null
:
非空可以这样,对象.notnull
:
非空还有更简单的方法,对象.nn
:
1.1.3 别再写if()了
if可是我们最常用的了,但是我劝你再也不要写if()了,试试任何可以判断的语句后面加上.if:
1.1.4 instance也可以很炫酷
1.1.5 活动模版自定义和查看入口
Preference
->Editor
->Live Templates
,这个窗口下小伙伴们可以看到所有的活动模版,还可以自定义自己的活动模版。例如我就定义了一个tc
,作为android:textColor=""
的活动模版。
1.2 多行编辑
喜欢用sublime等编辑器的小伙伴对这个应该在熟悉不过了。
1.2.1 多行编辑
例如我们有四个Button要定义,可以先这样,按住alt键+鼠标左键一直向下拉,就可以选中多行,然后编辑就可以同时对多行进行编辑,编辑完相同部分再分别输入不同部分就ok了:
1.2.2 块编辑
比如我们要把上边定义的四个Button 改为TextView类型:
操作也是按住alt不放,拉对角线,拉出一块,就可以对选中的块,进行块编辑了。
1.3 快捷键
1.3.1 Alt+Enter
这个是Android Studio神快捷键。如果你还认为Alt+Enter键是导入包,那就大错特错了。以后有事没事就按下吧。它会根据不同的情况给出操作建议,大大提高工作效率。
eg.
我要获取布局文件中的RecyclerView,findViewById写好了,这个时候需要强制类型转化,在红线上按使用该快捷键,给出了提示Cast to ...(此处省略好几个字),再回车,代码生成好了。
接下来是要给RecyclerView设置一个Adapter,那么我先写了没有的PersonAdapter类,那么这个类是没有的,提示红色,我们在该类上使用该快捷键,给出了提示:Create class ...,回车,这个类便创建好了。
但是我们要实现RecyclerView.Adapter中的方法,我们在红线部分使用快捷键,看到给出提示implement method,回车,方法实现了。
Alt+Enter快捷键是Android Studio中的神键,它的功能远不止这些,没事就按一按吧。按按更健康。
1.3.2 提取 方法,style,layout等
我在写代码的时候都是先写可用的代码,把功能都实现之后,立即重构,在这个时候我经常用到 提取方法 的这个快捷键:alt+command+M
提取sytle,layout等并没有默认的快捷键。如果你的有,可能我们用的不是同一套,不过无论怎样,你都可以去偏好设置里去自定义快捷键。那么打开keymap。找到Extract,可以看到,包括之前的提取方法操作也在这里,下面的style和Layout就是提取样式和和布局了。你也可以看到还有很多。你可以根据自己的喜好了来自定义快捷键。
演示:
1.3.3 内联
对于上面我们提取出的方法,样式或者布局,这些都可以使用内联把他们加回使用的地方。这个我并不是很常用。不过还是介绍一下吧。这个默认快捷键是:alt+command+N
,在keymap表中的Inline
。
2 搜索
在写代码的过程中,代码检索永远都少不了。如果你是眼睛去找,那效率真的不知道要差到哪里去了。
2.1 搜索基本操作
这些搜索操作我叫做基本操作
操作 | Mac | Windows |
---|---|---|
搜索类 | Command+O | Ctrl+N |
文件中搜索 | Command+F | Ctrl+F |
搜索文件 | Command+shift+O | Ctrl+shift+N |
全局查找 | Command+shift+F | Ctrl+shift+F |
要是懒的话,这四个基本可以解决查找问题。
2.2 大纲
大纲快捷键 Mac:Command+F12 Windows:我不知道。。。(我自己用的Mac有些Windows的我也不知道。欢迎补充,PS:我的Mac开启了将Fx键用作标准功能键,如果没有开启的小伙伴,你的快捷键就是Command+Fn+F12),大纲出来了,就可以查看该类中的成员变量和成员方法,直接输入名称就可以筛选查询。
2.3 Search Everywhere
这个功能的强大就如它的名字一样,它的快捷键是双击shift,输入关键字就可以。就连窗口都可以搜索奥。
3 窗口
3.1 分屏
分屏可以上下,可以左右,我更喜欢左右分屏,有的时候很方便。
你可以直接使用Search Everywhere功能,然后输入split会有vertically和Horizontally两种,选择你要的就可以。或者在编辑窗口上的标签,右击,选择split vertically或者split Horizontally。我比较喜欢使用Search Everywhere,键盘总比鼠标快。
3.2 Hierarchy窗口
Hierarchy窗口可以让我们看清楚层级关系,还记得之前非常火的一个段子讲,是好朋友不会让你学Java的,然后附了一张Java继承关系的图,在继承关系层级很深,很复杂的时候,这个窗口简直不能太好。
这个是类的继承关系:
打开这个窗口,可以使用Search Everywhere功能,输入Hierarchy就可以,Mac也可以使用快捷键ctrl+H,Windows快捷键也是ctrl+H。
还有一个Call Hierarchy,可以显示出方法的调用层级关系:
这个的快捷键是ctrl+alt+H。
4 调试
调试过程在开发中也是少不了的。
4.1 快照
有关UI的编程,这个功能知道会省很多事。
在运行过程中,可以给手机截图,并保存。再也不用手机截图然后再传电脑了。
4.2 录屏
在做有关动画的功能的时候,录屏功能可以让你更好的检查动画是否正确。
4.3 断点
断点的使用,断点的用法不止是让程序停下来。试一试在停下来之后使用快捷键Alt+F8,调出Evaluate Expression界面,在该界面你可以输入你想查看的值,就可以显示出来。
除此之外在断点处右击,会出现如下的界面,你可以在图中光标处输入断点停下的条件,当你需要在一个循环中打断点的时候,这简直就是神技:
在上图中Suspend前的勾取消会看到这样的界面:
这个界面上内容更多,比如你选中了Log evaluated expression,然后在下面的输入框中输入你想要输出的log,那么这个断点就不会在这里停下来,而是在控制台输出一条日志。
5 查询示例程序
这个功能让我感觉越来越像代码的搬运工了! 使用该内容需要,Android Studio2.2以及在SDK Manager
中下载Samples for SDK
,然后重启AS,再然后尽人事听天命,昨天搞了半天就是出不来,不知道今天怎么好了……究竟是AS的灵异事件还是我的努力感动了上天,反正我成功了。
在一个不会用的类上右键,选择Find Sample Code
,或者使用你看到的快捷键alt+F8
,Windows版的快捷键自己查询。之后就可以方便的查看示例代码。例如我们查看ColorMatrix的示例代码:
查询结果会在下方出现,不过有的时候要等很久,有的还找不到:
不过已经非常不错了。首先有Android官方网站的官方文档。下面会有几个包涵ColorMatrix的栗子。单击可以在右边直接查看其内容。如果硬是出不了的话,又实在想看,那么就去github上去查看吧,有一个组织叫GoogleSample,去搜就行了。
结束语
这篇文章没有结束,正在看的你如果对Android Studio还有其他的相见恨晚的操作,欢迎留言补充。希望这篇文章对大家有帮助。
作者:柴泽建_Jack
链接:http://www.jianshu.com/p/bc8f6bfe12c6
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。