本文主要内容来自Dmytro Danylyk 在Medium 的文章Configuring Android Studio。在此感谢!虽然使用Android Studio 有一定的时间了,但文中的某几个设置之前还真不知道,且原文在长城外,因此在翻译原文的基础上作了一些补充,若有新的发现会即时更新。希望对大家尤其是刚接触Android Studio 的朋友有一点帮助。
前面的话
Android Studio 提供了一个非常方便的功能帮助我们导入或者导出设置。因此我们在安装一个新的Android Studio 的时候通常会导入一个之前的设置。但是,最近发生了一件操蛋的事情-我丢失了我的设置文件(幸灾乐祸点个赞~)。
我的建议:即时的备份你的设置文件到云盘等地方。
当我在配置我的Android Studio 的时候,下面的一些配置或许对你有一定的帮助。
显示行号
当我首次启动我的Android Studio 的时候,我想做的第一件事就是希望能看到文件中的行号,我一直很奇怪这个基本的配置为毛不是默认开启的?!
对此我只想说四个字:
![](https://user-gold-cdn.xitu.io/2016/11/29/badf893328c1a0592181134312c9be52.jpg)
![](https://user-gold-cdn.xitu.io/2016/11/29/50cace7addde00da6e7e656c3d4bcb2c.png)
未显示行号
![](https://user-gold-cdn.xitu.io/2016/11/29/8c6aec613599c2dd5af14c52fa3c8193.png)
显示行号
配置方法
- File | Settings 打开设置
- 选择Editor | General | Appearance
- 勾选Show line numbers
![](https://user-gold-cdn.xitu.io/2016/11/29/e5d0c50c826f6b441c142d5da47a7f13.png)
设置
ps:在编辑区域最左侧右键选中Show line numbers 也可以让当前打开的文件显示行号,不过这是一个临时设置,当前文件关闭后便失效。
驼峰选择
Android 开发中,我们通常会使用驼峰命名法对变量进行命名,但是当我们通过Ctrl + Left / Right 键改变字符选择区域的时候Android Studio 默认不支持‘驼峰’单词的选择。
![](https://user-gold-cdn.xitu.io/2016/11/29/b2820226570872096a7d12b3616796cd.gif)
不支持驼峰选择
![](https://user-gold-cdn.xitu.io/2016/11/29/a09acf0b5bebeecb185429d12e13db07.gif)
支持驼峰选择
配置方法
- File | Settings 打开设置
- 选择Editor | General | Smart Keys
- 选中Use “CamelHumps” words
![](https://user-gold-cdn.xitu.io/2016/11/29/b4828a0670cc94eb1333dabc9faa59ea.png)
设置
注意:如果你仍然希望当鼠标在单词上双击之后选中整个单词,需要作如下设置:
- File | Settings 打开设置
- 选择Editor | General
- 取消选中‘Honor Camel Humps words settings when selecting on double click’
命名前缀
我们通常会遵循Android 官方关于编码风格的指导来进行字段命名。在Android 源码中我们可以看到通常成员变量都是以‘m’开始。其实Android Studio 可以自动在帮我们生成字段名称的时候加上自定义的前缀,如:
- 非共有,非静态的成员变量以’m’开始
- 静态成员变量以’s’开始
![](https://user-gold-cdn.xitu.io/2016/11/29/6ea9d22657a36a268fb57d7da6b804b5.gif)
命名前缀
配置方法
- File | Settings 打开设置
- 选择Editor | Code Style | Java
- 选择Code Generation 标签
- 给普通Field 添加一个’m’前缀,给Static filed 添加一个’s’前缀
![](https://user-gold-cdn.xitu.io/2016/11/29/b006342ca04388f7d68f1c4e27e8d8c6.png)
设置
快速导包
在Android Studio 中,我们可以通过Alt + Enter 和Control + Alt + O 进行导包和清除无用导包,但我们都生活在2016年了,这些事情应当快速自动完成。
![](https://user-gold-cdn.xitu.io/2016/11/29/2ea47e962bd9f87982c44a702296b0c8.gif)
未开启imports on the fly
![](https://user-gold-cdn.xitu.io/2016/11/29/b2d04792e4c0d216946448abaad3eca7.gif)
开启imports on the fly
配置方法
- File | Settings 打开设置
- 选择Editor | General | Auto Import
- 勾选Optimize imports on the fly
- 勾选Add unambiguous imports on the fly
![](https://user-gold-cdn.xitu.io/2016/11/29/5635da0623839ff74f5cf6aa1a0b5a1f.png)
设置
Log 颜色
Darcula 主题中Logcat 的默认配色只有红白两种颜色,不太便于我们区分Log 的类型。
![](https://user-gold-cdn.xitu.io/2016/11/29/1d0f2ca150f04b8fac4d102d4cb4051c.png)
Darcula 主题配色
我建议大家采用之前Android Holo 主题那种鲜明的配色
![](https://user-gold-cdn.xitu.io/2016/11/29/45881f98b401843f3827027ab363ef49.png)
Holo 主题配色
配置方法
- File | Settings 打开设置
- 选择Editor | Color & Fonts | Android Logcat
- 点击Click on Save As…按钮创建一个新的配色Scheme
- 按照下面的表格修改对应的颜色(修改之前需要取消勾选Use inherited attributes)
Log级别 | 颜色 |
---|---|
Assert: | #AA66CC |
Debug: | #33B5E5 |
Error: | #FF4444 |
Info: | #99CC00 |
Verbose: | #FFFFFF |
Warning: | #FFBB33 |
下面是个人的一些补充:
代码配色
Android Studio 中默认的代码配色个人感觉已经很和谐,但这个东西仁者见仁。比如有的朋友会觉得java 代码中局部变量的默认的白色不太便于快速与其它代码进行区分,这时候就需要自定义java 代码颜色,这里以局部变量为例。
![](https://user-gold-cdn.xitu.io/2016/11/29/5e86f94405a2b04bb892195588ed3bfa.png)
默认配色
![](https://user-gold-cdn.xitu.io/2016/11/29/57baf10e1e542d6fb4115123800fff30.png)
自定义配色
配置方法
- File | Settings 打开设置
- 选择Editor | Color & Fonts | Java
- 点击Click on Save As…按钮创建一个新的配色Scheme
- 展开下方的Variables 选择Local variable
- 设置右侧的Foreground 颜色
![](https://user-gold-cdn.xitu.io/2016/11/29/7fd6248fb8e4bc38ee9f1253c79eac8c.png)
设置
工程模板
Android Studio 创建Module 时并没有将Android 开发中常用的文件目录全部生成,比如默认只生成了一个drawable 文件夹,常用的drawable-hdpi 等文件夹需要我们自己创建。正如前文的作者所言,这都2016年了,这些事情应该自动完成,毕竟我们都很‘懒’!
![](https://user-gold-cdn.xitu.io/2016/11/29/220d49a4cf26a2ad13a384e7d6f5cc1c.png)
默认结构
![](https://user-gold-cdn.xitu.io/2016/11/29/3cba4cb16ae5ee31ea9c7136ee20b64a.png)
自定义结构
配置方法1
- 进入Android Studio 安装目录
- 依次进入plugins | android | lib | templates | gradle-projects |NewAndroidModule | root | res
- 在res文件夹下创建drawable-hdpi 等文件夹(可选:从对应的mipmap文件夹中拷贝iclauncher.png到创建的drawable文件夹中)
- 回到NewAndroidModule 目录,用编辑器打开recipe.xml.ftl文件
- 加入以下配置
![](https://user-gold-cdn.xitu.io/2016/11/29/f776c52ec8c1442b39487b5257509092.png)
配置方法2
- 进入Android Studio 安装目录
- 依次进入plugins | android | lib | templates | gradle-projects |NewAndroidModule
- 用编辑器打开recipe.xml.ftl文件,并加入以下配置
![](https://user-gold-cdn.xitu.io/2016/11/29/bc2c8bda7b14e67da56e2fe315f2ed50.png)
这两种方法的区别是,第一种方式可以在文件夹中加入相应的图片,但是配置稍显繁琐,第二种方式配置简单,但是只能创建目录,不能包含默认图片。
当然,通过类似的方式我们还可以在创建Module 的时候做很多事情,比如:
- 在colors.xml 文件中生成常用颜色
- 在build.gradle 文件中生成自定义配置
- 在.gitignore 文件中生成自定义忽略配置
- 等等…
活动模板
Android Studio 中默认提供了很多非常方便的活动模板(Live Templates),例如,我们输入sout 后按enter 键,Android Studio 会自动帮我们写入System.out.println();
![](https://user-gold-cdn.xitu.io/2016/11/29/1ea81d259d9803b2343176c60c08b4bb.gif)
其实sout 就是AS自带的一个活动模板。
![](https://user-gold-cdn.xitu.io/2016/11/29/9df4e7387f0a60a8140d3d8d7770abce.png)
由此可以看出,活动模板就是我们常用代码的一个缩写。开发中有很多代码都会重复出现,因此自定义合适的活动模板能很大程度上避免我们很多重复的体力劳动。那么问题来了,如何自定义?
这里我们以Handler 为例。下面是在Activity 中一个合格的Handler 该有的样子:
private static class MyHandler extends Handler {
private WeakReference<MainActivity> activityWeakReference;
public MyHandler(MainActivity activity) {
activityWeakReference = new WeakReference<MainActivity>(activity);
}
@Override
public void handleMessage(Message msg) {
MainActivity activity = activityWeakReference.get();
if (activity != null) {
}
}
}
至于原因我就不再重复了,网上有太多的文章有讲过。现在如果我只希望输入一个‘psh’ 就自动出现上面这段代码的话,我应该这么做:
配置方法
- File | Settings 打开设置
- 选择Editor | Code Style | Live Templates
- 点击最右侧的加号并选择Template Group
- 在弹出的对话框中输入一个活动模板分组的名称,如custom
- 在左侧选中上一步中创建的custom 分组,点击右边的加号
- 选择Live Template ,在Abbreviation 中对输入psh
- 在Description 中输入这个活动模板的描述
- 在Template text 中输入以下代码
![](https://user-gold-cdn.xitu.io/2016/11/29/6776d3909d57462680ada7cefe40c164.png)
- 点击下方的Define 按钮,选中java 表示这个模板用于java代码
- 点击右侧的Edit variables
- 选择Expression 下拉框中的className 并勾选Skip if…
这个操作的作用是,AS会自动将我们在上一步中用’$’符包裹的className自动替换为当前类不含包名的类名
至此,一个我们自定义的custom 模板组中的psh 活动模板就定义完成了。下面我们来验证一下,见证奇迹的时候到了:
![](https://user-gold-cdn.xitu.io/2016/11/29/756646d4db1ca92960a6d54df2c0bb54.gif)