Android开发学习之路-Android Studio开发小技巧
上一次发过了一个介绍Studio的,这里再发一个补充下。
我们都知道,Android Studio的功能是非常强大的,也是很智能的。如果有人告诉你学Android开发要用命令行,你可以告诉他Android Studio是谷歌提供给开发者提升效率的。试想想你脑袋里有一堆想法,但是开发编码效率太低导致想法都丢失了或者兴趣消失了多可怕对不。好了废话不多说,这里介绍几个比较好用的技巧和快捷键,提升我们的编码效率。
1.完成一句代码
如果我们调用了一个方法,并给方法传递了参数,这个时候如果我们要结束这个语句,就会用鼠标或者方向键移动光标到行末,输入;然后回车结束。这样子其实效率是很低的,为什么?因为我们的手在键盘上,要去摸鼠标和方向键的距离都是比较远的。所以这里介绍一个组合快捷键用来完成依据代码:Ctrl+Shift+Enter

这里可以看到,我们调用了方法之后,直接使用快捷键,Studio会直接跳到最后并加了一个分号,如果我们再按一下快捷键,会跳转到下一行。如果你觉得这个快捷键有点长(我是这么觉得的),可以通过自定义快捷键来简化这个功能。下面给下具体的步骤:
① 打开Settings
② 选择Keymap
③ 点击搜索框右边的按钮

④ 按下你需要修改的对应快捷键,也就是Ctrl+Shift+Enter,会搜索到对应的快捷键,双击对应的快捷键设置,点击按钮之后会出现下图

⑤ 选择第一个选项来增加一个快捷键,会出现下图

可以直接在这个界面按下你想要的快捷键组合,可以看到如果已经存在的快捷键,那么下面会出现一个黄色叹号警告,我们可以多尝试,选择最方便自己的就可以了。我设置的是Alt+M,M是移动的意思,所以就记住了。
2.打开文档
上一次介绍Studio的通过设置让鼠标悬停在代码上会打开文档,但是默认是不会的。文档是我们学习的最重要的一个对象,在遇到问题的时候第一要想到的应该是文档。打开文档的快捷键默认是:Ctrl+Q,我们要知道,这不仅仅可以允许我们在代码中打开文档,也可以在代码补全的时候打开对应补全的文档,可以看下面这个图

这里在补全的时候如果我们不知道isEmpty方法的用处,可以先将光标移动到该补全的位置,然后按下快捷键,就可以代开对应的文档。
3.提示方法参数
有时候我们写着写着就忘记了这个方法要传入一个什么类型的参数,这个时候,可以使用快捷键:Ctrl+P,效果如下

当光标在方法中的时候,按下快捷键,Studio会提示我们这个方法需要的参数,这个也是比较常用的。
4.复制代码
选中你的代码,然后按下快捷键:Ctrl+D,总比按Ctrl+C和Ctrl+V快吧。

5.快速打开文件
当我们需要打开项目中的某个文件的时候,可以通过快捷键Ctrl+Shift+N打开搜索框,然后输入文件名回车即可。按下快捷键会得到如下搜索框:

6.跳转到代码声明
快捷键:Ctrl+B,这个就不多说了。
7.重写父类方法
快捷键:Ctrl+O

可以看到,打开了选择框之后我们可以直接输入需要重写的方法名来进行查找,匹配上的直接回车就好。
8.安全重命名
好处就是不用自己手动进行每个地方的修改。只需要将光标移动到要重命名的地方,按下快捷键:Shift+F6,这个时候会提示你输入一个新的名字,然后系统会进行搜索,找到所有同名的变量或者方法,然后提示给用户,界面会是下面这样:

这个地方会显示所有使用了这个变量或方法的地方,如果我们需要直接重命名,可以点击左下角的Do Refactor按钮进行确认,如果有不需要重命名的地方,可以选中该行,右击,选择Exclude进行剔除。
9.查找使用方法或类的地方
当项目比较大的而且对Activity进行过重构的时候,或者对别的代码进行维护的时候,很多时候我们需要知道一个方法究竟在哪里被调用了,这个时候可以通过快捷键:Alt+F7来查找到所有使用了这个方法的地方。
10.打开最近使用文件列表
快捷键:Ctrl+E,这个也不多说,谷歌官方的演示视频会经常看到有工程师用这个快捷键。
接着介绍一些除了快捷键以外的技巧。
1.如果要判断一个字符串是不是空你会像下面这样做吗?

2.如果你要逆序遍历一个ArrayList你会像下面这样做吗?

3.如果要根据一个Json数据来写一个对应的bean,你会怎么写?这里可以使用一个比较方便的插件来做,名字叫 GSONFormat ,我们使用这个插件可以通过一段Json生成一个对应的类,怎么下载这个插件的话可以自己百度一下。
比如有这么一段Json数据:
{
"errNum": "0",
"errMsg": "success",
"querySign": "3845925467,2370020290",
"retData": [
{
"rect": {
"left": "0",
"top": "0",
"width": "33",
"height": "31"
},
"word": " 8"
}
]
}
插件界面:

使用插件可以直接生成一个对应的类代码如下:
public class MyBean {
/**
* errNum : 0
* errMsg : success
* querySign : 3845925467,2370020290
* retData : [{"rect":{"left":"0","top":"0","width":"33","height":"31"},"word":" 8"}]
*/
private String errNum;
private String errMsg;
private String querySign;
/**
* rect : {"left":"0","top":"0","width":"33","height":"31"}
* word : 8
*/
private List<RetDataBean> retData;
public String getErrNum() { return errNum;}
public void setErrNum(String errNum) { this.errNum = errNum;}
public String getErrMsg() { return errMsg;}
public void setErrMsg(String errMsg) { this.errMsg = errMsg;}
public String getQuerySign() { return querySign;}
public void setQuerySign(String querySign) { this.querySign = querySign;}
public List<RetDataBean> getRetData() { return retData;}
public void setRetData(List<RetDataBean> retData) { this.retData = retData;}
public static class RetDataBean {
/**
* left : 0
* top : 0
* width : 33
* height : 31
*/
private RectBean rect;
private String word;
public RectBean getRect() { return rect;}
public void setRect(RectBean rect) { this.rect = rect;}
public String getWord() { return word;}
public void setWord(String word) { this.word = word;}
public static class RectBean {
private String left;
private String top;
private String width;
private String height;
public String getLeft() { return left;}
public void setLeft(String left) { this.left = left;}
public String getTop() { return top;}
public void setTop(String top) { this.top = top;}
public String getWidth() { return width;}
public void setWidth(String width) { this.width = width;}
public String getHeight() { return height;}
public void setHeight(String height) { this.height = height;}
}
}
}
这就节省了很多时间了。
好了,这次先说这么多,想到了再补充下吧。
Android开发学习之路-Android Studio开发小技巧的更多相关文章
- Android开发学习之路-提升用户体验小技巧
记得之前看谷歌的一个视频提到这个用户体验的问题,今天想起来了就写了个Demo来记录下. 当一个事件发生之后,用户需要一段时间才能知道结果,那么这段时间究竟应该让用户干什么?这个问题很常见,比如我们的软 ...
- Android开发学习之路--Android Studio cmake编译ffmpeg
最新的android studio2.2引入了cmake可以很好地实现ndk的编写.这里使用最新的方式,对于以前的android下的ndk编译什么的可以参考之前的文章:Android开发学习之路– ...
- Android开发学习之路--Android系统架构初探
环境搭建好了,最简单的app也运行过了,那么app到底是怎么运行在手机上的,手机又到底怎么能运行这些应用,一堆的电子元器件最后可以运行这么美妙的界面,在此还是需要好好研究研究.这里从芯片及硬件模块-& ...
- Android开发学习之路--Android Studio项目目录结构简介
既然已经搭建好环境了,那就对Android Studio中项目目录结构做个简单的了解了,这里以最简单的Hello工程为例子,新建好工程后看如下三个工程视图: 1.Android工程 manifests ...
- Android开发学习之路-抢红包助手开发全攻略
背景:新年之际,微信微博支付宝红包是到处飞,但是,自己的手速总是比别人慢一点最后导致红包没抢到,红包助手就应运而生. 需求:收到红包的时候进行提醒,然后跳转到红包的界面方便用户 思路:获取“读取通知信 ...
- Android开发学习之路-Android N新特性-多窗口模式
我们都知道,在最新的Android N系统中,加入了一个新的功能,就是多窗口模式.多窗口模式允许我们在屏幕上显示两个窗口,每个窗口显示的内容不同,也就是说,我们可以一遍看电视剧,一边聊微信. 这里我们 ...
- Android开发学习之路-Android Design Support Library使用(CoordinatorLayout的使用)
效果图: 上面的这个图有两个效果是,一个是顶部的图片,在上滑之后会隐藏起来并且显示出一个ToolBar(ToolBar类似于ActionBar,但是只有ToolBar是兼容Material Desig ...
- Android开发学习之路-Android Studio真神器!
放假之后电脑配置升级就开始用Android Studio(下面简称AS)了,那个酸爽真的不是一般的啊,这里开一篇博客来记录下AS里面各种酷炫的功能,有更好玩的,大家不要吝啬,评论告诉我吧! 最近And ...
- Android开发学习之路-Android中使用RxJava
RxJava的核心内容很简单,就是进行异步操作.类似于Handler和AsyncTask的功能,但是在代码结构上不同. RxJava使用了观察者模式和建造者模式中的链式调用(类似于C#的LINQ). ...
随机推荐
- 5款强大的Java Web开发工具
1.WebBuilder这是一款开源的可视化Web应用开发和运行平台.基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发:高效.稳定和可扩展的特点,适合复杂企 ...
- Daily Scrum Meeting ——ThirdDay(Beta)12.11
一.Daily Scrum Meeting照片 二.Burndown Chart 三.项目进展(check-in) 1.欢迎界面的优化,从模糊到清楚 2.新增主界面背景 3.新增注册背景 4.参与者侧 ...
- 在 Delphi 中判断一个字符是中文的方法
http://blog.163.com/l1_jun/blog/static/143863882011741124581/ 由于 Delphi2005 支持中文标识符,在编写 PASCAL 词法分析器 ...
- 使用Jmeter录制web脚本
1:启动Jmeter: 2:选择测试计划,右键->添加->Threads(users)>线程组 3:选择这个线程组,右键->添加->配置元件->HTTP请求默认值, ...
- python列表副本
a=[1,2,3] b=[4,5,6] a=a+b #创建含a和b的副本的新列表 a [1, 2, 3, 4, 5, 6] b [4, 5, 6] c=a+b #创建含a和b的副本的新列表c [1, ...
- ATL封装IE内核启示:使用Win32/ATL建立窗口
开发大型GUI界面程序MFC当仁不让,但如果是开发图形应用程序,并不需要大规模界面控件,没有必要链接庞大的MFC库,直接使用platform sdk会很麻烦,这时ATL中的关于Windows的封装就是 ...
- About_全在里面
分享·地址:http://www.itxueyuan.org/view/6254.html
- CSS样式,雪碧,图片替换,渐变小析
Css基础2: 相对长度单位:em,rem,px,%绝对长度单位:厘米等(不用)颜色单位:rgb,rgb的百分比,16进制(#),颜色名称字体:font-size:为了更好适合点阵,尽量使用偶数fon ...
- angular 中父元素ng-repeat后子元素ng-click失效
在angular中使用ng-repeat后ng-click失效,今天在这个上面踩坑了.特此记录一下. 因为ng-repeat创造了新的SCOPE.如果要使用这个scope的话就必须使用$parent来 ...
- Android进程间通讯
最近研究了一下Android进程间通讯,原来只是会用,但是只是会用是不行滴,就来研究一下. 刚开始看的时候,我的头是这么大,看了一夜的时候,头就变成这样了,,吓得宝宝赶紧上床休息了,. 先喝喝茶讲个故 ...