上一次发过了一个介绍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开发小技巧的更多相关文章

  1. Android开发学习之路-提升用户体验小技巧

    记得之前看谷歌的一个视频提到这个用户体验的问题,今天想起来了就写了个Demo来记录下. 当一个事件发生之后,用户需要一段时间才能知道结果,那么这段时间究竟应该让用户干什么?这个问题很常见,比如我们的软 ...

  2. Android开发学习之路--Android Studio cmake编译ffmpeg

      最新的android studio2.2引入了cmake可以很好地实现ndk的编写.这里使用最新的方式,对于以前的android下的ndk编译什么的可以参考之前的文章:Android开发学习之路– ...

  3. Android开发学习之路--Android系统架构初探

    环境搭建好了,最简单的app也运行过了,那么app到底是怎么运行在手机上的,手机又到底怎么能运行这些应用,一堆的电子元器件最后可以运行这么美妙的界面,在此还是需要好好研究研究.这里从芯片及硬件模块-& ...

  4. Android开发学习之路--Android Studio项目目录结构简介

    既然已经搭建好环境了,那就对Android Studio中项目目录结构做个简单的了解了,这里以最简单的Hello工程为例子,新建好工程后看如下三个工程视图: 1.Android工程 manifests ...

  5. Android开发学习之路-抢红包助手开发全攻略

    背景:新年之际,微信微博支付宝红包是到处飞,但是,自己的手速总是比别人慢一点最后导致红包没抢到,红包助手就应运而生. 需求:收到红包的时候进行提醒,然后跳转到红包的界面方便用户 思路:获取“读取通知信 ...

  6. Android开发学习之路-Android N新特性-多窗口模式

    我们都知道,在最新的Android N系统中,加入了一个新的功能,就是多窗口模式.多窗口模式允许我们在屏幕上显示两个窗口,每个窗口显示的内容不同,也就是说,我们可以一遍看电视剧,一边聊微信. 这里我们 ...

  7. Android开发学习之路-Android Design Support Library使用(CoordinatorLayout的使用)

    效果图: 上面的这个图有两个效果是,一个是顶部的图片,在上滑之后会隐藏起来并且显示出一个ToolBar(ToolBar类似于ActionBar,但是只有ToolBar是兼容Material Desig ...

  8. Android开发学习之路-Android Studio真神器!

    放假之后电脑配置升级就开始用Android Studio(下面简称AS)了,那个酸爽真的不是一般的啊,这里开一篇博客来记录下AS里面各种酷炫的功能,有更好玩的,大家不要吝啬,评论告诉我吧! 最近And ...

  9. Android开发学习之路-Android中使用RxJava

    RxJava的核心内容很简单,就是进行异步操作.类似于Handler和AsyncTask的功能,但是在代码结构上不同. RxJava使用了观察者模式和建造者模式中的链式调用(类似于C#的LINQ). ...

随机推荐

  1. Glide实现圆角和圆形图片

    实现圆形图片 , 传参第一个为上下文, 第二个为角度 package com.hh.beauter.util; import android.content.Context; import andro ...

  2. 用vue2 +vue-router2 + es6 +webpack 高仿饿了么app(干货满满)

    #高仿饿了么app商家详情 (vue2 +vue-router2 + es6 +webpack )   ##demo [demo 地址](http://liangxiaojuan.github.io/ ...

  3. 如何关闭eslint

    在vue-cli搭建webpack中,使用eslint进行代码规范化检查. 进行关闭,在根目录下有个.eslintignore直接将不想要检查的文件丢进去就可以了 也可以在重构的时候把它关闭掉

  4. 小tips

    ios::sync_with_stdio(false);  加速读入的,加上这条语句可以使cin和cout的速度和scanf和printf差不多.

  5. HDU5509 : Pattern String

    只要求出两个字符串的最小表示,然后就可以判断是否循环同构. 枚举最小表示的开头在哪个位置,然后求出Hash值,如果两个串的Hash值集合有交,那么说明循环同构. 因为串经过压缩,原串的长度很大,不能直 ...

  6. 图片采用base64压缩,可以以字符串的形式传送base64给服务端转存为图片

    (function () { var coverImage = document.querySelector('<div id="coverImage">file< ...

  7. js排序算法总结—冒泡,快速,选择,插入,希尔,归并

    相信排序是任何一个程序猿都会用到的东西,今天简单总结记录下常见的排序算法. 一.冒泡排序 说起冒泡排序,可能每个人都不会陌生,实现思路相当简单明了,就是不停的对数组进行两两比较,将较大(较小)的一项放 ...

  8. 树形DP

    切题ing!!!!! HDU  2196 Anniversary party 经典树形DP,以前写的太搓了,终于学会简单写法了.... #include <iostream> #inclu ...

  9. BZOJ4262: Sum

    Description   Input 第一行一个数 t,表示询问组数. 第一行一个数 t,表示询问组数. 接下来 t 行,每行四个数 l_1, r_1, l_2, r_2.   Output 一共 ...

  10. SecurityContextHolder.getContext().getAuthentication() return null

    <security:http> <security:intercept-url pattern="/web/**" access="IS_AUTHENT ...