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). ...
随机推荐
- Qt中暂停线程的执行
在线程中定义一个信号量 QMutex pause; 把run()函数中循环执行的部分用信号量pause锁住: void run() { while(1) { pause.lock(); //循环执行的 ...
- [转]在Eclipse中使用JUnit4进行单元测试(初级篇)
首先,我们来一个傻瓜式速成教程,不要问为什么,Follow Me,先来体验一下单元测试的快感! 首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除 ...
- Windows安装程序 报错 “已安装了较新版本” 导致无法安装程序的解决方法
打开注册表 HKEY_CURRENT_USER\Software\Microsoft\Installer\Products ,“查找”程序名称 如果有程序名和安装程序相同的 ,删除整个 项 ! 然后就 ...
- iOS 使点击事件穿透透明的UIView
如图: 悬浮的三个按钮下方有一个可以点击的灰色区域,但是点击按钮之间的透明区域, 这三个按钮的contentView会响应这个点击事件,这时候需要让这个contentView不响应这个点击事件. 解决 ...
- BZOJ 2152 & 点分治
Description: 只是打法法塔前测试一下板子 Code: /*================================= # Created time: 2016-04-20 14:3 ...
- 国内外三个不同领域巨头分享的Redis实战经验及使用场景
Redis不是比较成熟的memcache或者Mysql的替代品,是对于大型互联网类应用在架构上很好的补充.现在有越来越多的应用也在纷纷基于Redis做架构的改造.首先简单公布一下Redis平台实际情况 ...
- 获得Map的选择集
ISelection selection = m_hookHelper.FocusMap.FeatureSelection; IEnumFeatureSetup iEnumFea ...
- nodejs的实现原理和搭建服务器(动态)
心得体会 今天是我学习的Node.js的第二天,所谓的node.js其实它是javascript编写的服务器的语言,同时它又是属于后台的框架,是一个开放性的平台. 一.相关理论知识: 我们可以用 ...
- 印象笔记 剪藏(Evernote WebClipper) bug 记录
问题记录: Chrome版的 webclipper不知为何新装的时候切换到中国版印象笔记登陆的时候闪退,然后之后就无法进入中国区的登录页面:international版确认可以登录. cookies是 ...
- html 设置宽度100% 块状元素往下调解决方法
css在设置body的宽度为100%充满整个屏幕时,当浏览器缩小时块状元素会被挤压下去 解决方案非常简单,给body设置一个最小宽度 min-width:960px; 此时即使浏览器缩小,在960像素 ...