作为一个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
就可以生成迭代循环遍历:
![](https://i-blog.csdnimg.cn/blog_migrate/9ca8188e203610fc8bfb818cad092ca6.gif)
.fori
可以这样:
![](https://i-blog.csdnimg.cn/blog_migrate/29ee6b44c4df17038f974e60841f0c7f.gif)
.forr
可以反向:
![](https://i-blog.csdnimg.cn/blog_migrate/df9cbe533dca737556fe1fafc305e1c2.gif)
数字.for
也可以:
![](https://i-blog.csdnimg.cn/blog_migrate/de25e88ee12bb33892a1f527468936ea.gif)
1.1.2 判空可以这样
在写代码的时候,判空是不可避免的。判空可以这样,对象.null
:
![](https://i-blog.csdnimg.cn/blog_migrate/0509df21e57d63a2282e71050efb57db.gif)
非空可以这样,对象.notnull
:
![](https://i-blog.csdnimg.cn/blog_migrate/50dc94fc26d594e48040e11d9b4cd31e.gif)
非空还有更简单的方法,对象.nn
:
![](https://i-blog.csdnimg.cn/blog_migrate/a78c545a23b45d5931b6d04ad20e8bc0.gif)
1.1.3 别再写if()了
if可是我们最常用的了,但是我劝你再也不要写if()了,试试任何可以判断的语句后面加上.if:
![](https://i-blog.csdnimg.cn/blog_migrate/80edfba667e68b2f1e19e42e16d9c8ce.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/8a868e6cf50f150ab0dfb5946adb41d1.gif)
1.1.4 instance也可以很炫酷
![](https://i-blog.csdnimg.cn/blog_migrate/8fc156bac5e62376c581f42947a13234.gif)
1.1.5 活动模版自定义和查看入口
Preference
->Editor
->Live Templates
,这个窗口下小伙伴们可以看到所有的活动模版,还可以自定义自己的活动模版。例如我就定义了一个tc
,作为android:textColor=""
的活动模版。
![](https://i-blog.csdnimg.cn/blog_migrate/97d045eb540971fd3b8069fe9f38080b.png)
1.2 多行编辑
喜欢用sublime等编辑器的小伙伴对这个应该在熟悉不过了。
1.2.1 多行编辑
例如我们有四个Button要定义,可以先这样,按住alt键+鼠标左键一直向下拉,就可以选中多行,然后编辑就可以同时对多行进行编辑,编辑完相同部分再分别输入不同部分就ok了:
![](https://i-blog.csdnimg.cn/blog_migrate/f2de870a47ab80ef5b8c299a22404d1c.gif)
1.2.2 块编辑
比如我们要把上边定义的四个Button 改为TextView类型:
![](https://i-blog.csdnimg.cn/blog_migrate/5731dab336c449c711979a3d20de3a24.gif)
操作也是按住alt不放,拉对角线,拉出一块,就可以对选中的块,进行块编辑了。
1.3 快捷键
1.3.1 Alt+Enter
这个是Android Studio神快捷键。如果你还认为Alt+Enter键是导入包,那就大错特错了。以后有事没事就按下吧。它会根据不同的情况给出操作建议,大大提高工作效率。
eg.
我要获取布局文件中的RecyclerView,findViewById写好了,这个时候需要强制类型转化,在红线上按使用该快捷键,给出了提示Cast to ...(此处省略好几个字),再回车,代码生成好了。
![](https://i-blog.csdnimg.cn/blog_migrate/51f9c5eb1f9601e1bc4333a69e3b43c8.gif)
接下来是要给RecyclerView设置一个Adapter,那么我先写了没有的PersonAdapter类,那么这个类是没有的,提示红色,我们在该类上使用该快捷键,给出了提示:Create class ...,回车,这个类便创建好了。
![](https://chacojack.github.io/2016/07/20/Android-Studio%E7%9B%B8%E8%A7%81%E6%81%A8%E6%99%9A%E7%9A%84%E6%93%8D%E4%BD%9C%E9%94%A6%E9%9B%86-%E6%8C%81%E7%BB%AD%E6%9B%B4%E6%96%B0/ae_2.gif)
但是我们要实现RecyclerView.Adapter中的方法,我们在红线部分使用快捷键,看到给出提示implement method,回车,方法实现了。
![](https://i-blog.csdnimg.cn/blog_migrate/5496e73d21b82a3b3696d0619b746469.gif)
Alt+Enter快捷键是Android Studio中的神键,它的功能远不止这些,没事就按一按吧。按按更健康。
1.3.2 提取 方法,style,layout等
我在写代码的时候都是先写可用的代码,把功能都实现之后,立即重构,在这个时候我经常用到 提取方法 的这个快捷键:alt+command+M
![](https://i-blog.csdnimg.cn/blog_migrate/e1ccb2fbd513f4029345612c65a756f0.webp?x-image-process=image/format,png)
提取sytle,layout等并没有默认的快捷键。如果你的有,可能我们用的不是同一套,不过无论怎样,你都可以去偏好设置里去自定义快捷键。那么打开keymap。找到Extract,可以看到,包括之前的提取方法操作也在这里,下面的style和Layout就是提取样式和和布局了。你也可以看到还有很多。你可以根据自己的喜好了来自定义快捷键。
![](https://i-blog.csdnimg.cn/blog_migrate/9ba69b95cded9c5a9fa90450df5272ec.webp?x-image-process=image/format,png)
演示:
![](https://i-blog.csdnimg.cn/blog_migrate/2ef236fe21ef81bbc6ebd5eea359d2a5.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/bdb0d5b15dfb61f0017727124ef9a311.webp?x-image-process=image/format,png)
1.3.3 内联
对于上面我们提取出的方法,样式或者布局,这些都可以使用内联把他们加回使用的地方。这个我并不是很常用。不过还是介绍一下吧。这个默认快捷键是:alt+command+N
,在keymap表中的Inline
。
![](https://i-blog.csdnimg.cn/blog_migrate/1d89684f148e45dd61c897ba704090d1.webp?x-image-process=image/format,png)
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),大纲出来了,就可以查看该类中的成员变量和成员方法,直接输入名称就可以筛选查询。
![](https://i-blog.csdnimg.cn/blog_migrate/76f9d09436eeeefb08fd98ce67ef97e6.gif)
2.3 Search Everywhere
这个功能的强大就如它的名字一样,它的快捷键是双击shift,输入关键字就可以。就连窗口都可以搜索奥。
![](https://i-blog.csdnimg.cn/blog_migrate/177203a079c73638d93c9cdfc8d8b9e2.gif)
3 窗口
3.1 分屏
分屏可以上下,可以左右,我更喜欢左右分屏,有的时候很方便。
![](https://i-blog.csdnimg.cn/blog_migrate/e2daf44edccb601f123a63cb1cf3a0b6.png)
你可以直接使用Search Everywhere功能,然后输入split会有vertically和Horizontally两种,选择你要的就可以。或者在编辑窗口上的标签,右击,选择split vertically或者split Horizontally。我比较喜欢使用Search Everywhere,键盘总比鼠标快。
3.2 Hierarchy窗口
Hierarchy窗口可以让我们看清楚层级关系,还记得之前非常火的一个段子讲,是好朋友不会让你学Java的,然后附了一张Java继承关系的图,在继承关系层级很深,很复杂的时候,这个窗口简直不能太好。
这个是类的继承关系:
![](https://i-blog.csdnimg.cn/blog_migrate/9a802db3b99b7e2e91d307cb07bb3481.png)
打开这个窗口,可以使用Search Everywhere功能,输入Hierarchy就可以,Mac也可以使用快捷键ctrl+H,Windows快捷键也是ctrl+H。
还有一个Call Hierarchy,可以显示出方法的调用层级关系:
![](https://i-blog.csdnimg.cn/blog_migrate/b65e14d34f19ebf3c22f407ae98f8afe.png)
这个的快捷键是ctrl+alt+H。
4 调试
调试过程在开发中也是少不了的。
4.1 快照
有关UI的编程,这个功能知道会省很多事。
![](https://i-blog.csdnimg.cn/blog_migrate/03c75e7096a125b9bf2d89be78f53fe5.png)
在运行过程中,可以给手机截图,并保存。再也不用手机截图然后再传电脑了。
4.2 录屏
在做有关动画的功能的时候,录屏功能可以让你更好的检查动画是否正确。
![](https://i-blog.csdnimg.cn/blog_migrate/3fb321ad1e3a0b0c4c1dd62a9ba09556.png)
4.3 断点
断点的使用,断点的用法不止是让程序停下来。试一试在停下来之后使用快捷键Alt+F8,调出Evaluate Expression界面,在该界面你可以输入你想查看的值,就可以显示出来。
![](https://i-blog.csdnimg.cn/blog_migrate/b814443ebd0a931bcb79128075db048f.png)
除此之外在断点处右击,会出现如下的界面,你可以在图中光标处输入断点停下的条件,当你需要在一个循环中打断点的时候,这简直就是神技:
![](https://i-blog.csdnimg.cn/blog_migrate/6cd78a061a052e342b161ef9a70fbb85.png)
在上图中Suspend前的勾取消会看到这样的界面:
![](https://i-blog.csdnimg.cn/blog_migrate/216674480178ad587f968e9d1d45e9b1.png)
这个界面上内容更多,比如你选中了Log evaluated expression,然后在下面的输入框中输入你想要输出的log,那么这个断点就不会在这里停下来,而是在控制台输出一条日志。
5 查询示例程序
这个功能让我感觉越来越像代码的搬运工了! 使用该内容需要,Android Studio2.2以及在SDK Manager
中下载Samples for SDK
,然后重启AS,再然后尽人事听天命,昨天搞了半天就是出不来,不知道今天怎么好了……究竟是AS的灵异事件还是我的努力感动了上天,反正我成功了。
在一个不会用的类上右键,选择Find Sample Code
,或者使用你看到的快捷键alt+F8
,Windows版的快捷键自己查询。之后就可以方便的查看示例代码。例如我们查看ColorMatrix的示例代码:
![](https://i-blog.csdnimg.cn/blog_migrate/9c0223c235e7a7d1742ca5561182f9de.webp?x-image-process=image/format,png)
查询结果会在下方出现,不过有的时候要等很久,有的还找不到:
![](https://i-blog.csdnimg.cn/blog_migrate/e1b5e7ded4f065efa044f2e9f6e3dcc3.webp?x-image-process=image/format,png)
不过已经非常不错了。首先有Android官方网站的官方文档。下面会有几个包涵ColorMatrix的栗子。单击可以在右边直接查看其内容。如果硬是出不了的话,又实在想看,那么就去github上去查看吧,有一个组织叫GoogleSample,去搜就行了。
结束语
这篇文章没有结束,正在看的你如果对Android Studio还有其他的相见恨晚的操作,欢迎留言补充。希望这篇文章对大家有帮助。