我们在平时的开发中,会使用到很多快捷键和小技巧,有些是非常有用的,但是我们可能没太注意。下面就今天我们来梳理下一些有用的快捷键和小技巧
一,快捷键
如果你是一个熟练使用as的码农,可以跳过此部分。下面列举一些自己项目中常用的快捷键(windows),使用前请确认是否有快捷键冲突
快捷键 说明 使用情景
Ctrl+B 在声明和引用的地方互相跳转 需要找到变量或者函数声明的位置区别
Ctrl+U 查看父类或者父类实现的方法 在override中或者类名中使用,查看父类情况
Ctrl+Alt+Home 布局文件和Activity/Fragment之间轻松跳转 需要定位当前相互引用,在类中或者布局xml使用
Ctrl++ 收缩代码块 需要迅速查看其他方法名,收缩无关代码块
Ctrl+- 展开代码块 需要查看当前代码块详情
Ctrl+Tab 在打开的文件中快速切换 打开文件太多找不到挡住的目前文件
Ctrl+F12 显示当前文件结构弹窗 需要快速查看当前文件的方法,变量等结构信息
Ctrl+Alt+M 提取选择部分为独立方法 需要抽取臃肿的方法内的独立部分
Ctrl+Alt+T 快速包裹代码块 对选中代码块进行的操作,if / else、do / while、try / catch / finally等
Shift+F6 快速重命名变量或者函数 需要重命名变量或者函数名的时候
Ctrl+Shift+I 快速查看某个方法、类、接口的内容 方法太长超过一页,需要快速预览时
Ctrl+H 查看类的上下继承关系 需要分析类的结构和继承关系的时候使用
Ctrl+T SVN更新代码 更新远端库到当前本地分支
Ctrl+K 提交代码 显示提交代码面版,提交代码前使用
Ctrl+[ 跳转到代码块起点处 需要查看代码块首尾处代码情况
Ctrl+] 跳转到代码块结束处 需要查看代码块首尾处代码情况
Double Shift 全局搜索。功能和Ctrl + N、Ctrl + Shift + N类似 需要搜索目标文件,类等情况
Ctrl+Home 跳转到当前文件顶部 需要查看顶部引入文件情况
Ctrl+End 跳转到当前文件底部 需要查看底部代码情况或行数
以上就是最近觉得比较有用的快捷键收集,其中有很多确实是很有用,同学们按需GET
二,小技巧
1)自定义Getter生成规则
如果我们还是用Java作为Android的开发语言的话,我们在进行数据交互的时候为了保护对象的私有属性,即安全性,只有通过对外公开的接口方法去访问对象属性,所以会用到set,get方法来操作。那么这里面的String类型等其他对象类型的get方法就会出现获取为null的情况。这是场会增加我们代码空指针的意外风险,或者会多出很多判空操作。所以,这里我们使用自定义的get方法生成规则来自定义生成get方法
1-1,通过快捷键Alt+Insert,选择set,get,如下
点击箭头处,弹出弹框,红色为Android studio自带的,绿色的为自己自定义的。我们先把default的内容部分拷贝,在点击左上角的+号,然后命名为NotNullGetter,修改最后的逻辑,增加string和list的空处理,部分图如下:
1-2:使用时,还是在Alt+Insert选择了set,get后,在下图处选择模板,此处选择我们自己自定义的模板,选择需要设置get和set的字段,点击ok即可,部分图如下:
2)代码排版优化
有时我们需要给代码进行格式化,相比这个操作算是基本操作了,格式化后的代码更适合查看和后期人员的维护,但是我们默认的代码格式化,虽然也够用,但是还是不够完美。此处介绍自动整理两个小设置,在格式化的基础上能够锦上添花
2-1:我们有时override方法的时候,我们的位置可能放置的比较任意,其实就是凌乱了。如果是在实现了多个接口的情况下,可能看起来就不好看了,分不清哪一个是那个接口下的方法,我们可能更希望分堆放置,此处我们找到File -> Settings -> Editor -> Code Style -> Java -> Arrangement处,如下:
默认2,3都是关闭的,我们刚才说的就是要勾选2,后面可以选择排序规则,AS支持两种规则,一种是 keep order(按原有顺序),一种是 order by name(按照方法字母表顺序)。至于哪一种较合适,个人喜好,我这里选择的 keep order
2-2:上面我们介绍了2的使用,现在又有这种情景,我们方法间经常会有互相调用,比如a调用b,c和d,b又调用e和f,那么这里如果我们不做设置,就会和我们方法放置的位置有关,我们的a,b,c,d,e,f放置的位置可能毫无规律和关联,这其实不利于我们快速定位相关代码。此处上图中的第3个,就是用来处理这种排版关系的,我们勾选后,选择排序规则,AS支持两种规则:breadth-first order & depth-first order,也就是广度优先和深度优先。
就上面的调用方法,我们先采用breadth-first order,也就是广度优先整理下,如下图:
如果采用depth-first order,也就是深度优先整理后,如下图
总结,两种规则有各自的好处,广度优先侧重于优先梳理每个方法的大体工作;而深度优先则侧重于梳理每个方法的实现细节,流程步骤。这里我采用的是广度优先,这也符合我们平时的审查习惯。
这里也仅仅只是开启功能,如果我们想在格式化代码的时候启用这个配置,需要在格式化代码(Ctrl+Alt+L)后,再根据提示,按下箭头处组合键,在弹出的弹框中勾选rearrange code,即可以是我们我们上述的配置生效。这里大家也看到我勾选了Optimize imports,这个其实就是清除部分无用的import包,和快捷键Ctrl+Alt+O是一样的效果,这是在格式化里一起做了,这里看大家需要,我这里是勾选的。部分操作图如下:
到此,我们总结了部分as在开发中实用的一些技巧,希望能帮到大家!
下一篇:微信小程序(一)- 自定义组件
网友评论