Android开发札记初级(三)探索Android Studio
这个(三)系列终于要结束了?最后让我们来对 AS 进行一些力所能及的优化。为什么要优化? 因为讲道理,AS 的表现再在 Windows 上面其实并不是很好(听说在 OS X上表现不错),像我这种
8G
+i5-4210H CPU@ 2.90GHz
(说的很吊的样子,其实是2014年的配置) 的都偶尔会遇到轻微的卡顿。卡顿貌似是由于 Gradle 每次去 Maven 下载新的版本和内存不足。
开启 Gradle 单独守护进程
在 C:\Users\<username>\.gradle
路径下创建gradle.properties
文件,在其中添加如下代码:
# Project-wide Gradle settings.
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
-XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true
然后在工程的 build.gradle 里的 android 结点下增加 dexOptions 配置,如下:
dexOptions {
dexInProcess true
preDexLibraries true
javaMaxHeapSize "3g"
}
同时修改 Project 下的gradle.properties
文件:
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
#http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
#http://www.gradle.org/docs/current/userguide/multi_project_builds.html#s ec:decoupled_projects
org.gradle.parallel=true
# Enables new incubating mode that makes Gradle selective when configuring projects.
# Only relevant projects are configured which results in faster builds for large multi-projects.
#http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand=true
上述配置文件的主要作用是增大 gradle 运行的 JVM 的大小,同时让 gradle 并行编译,成为独立进程。
设置优化
打开 File | Settings | Plugins,(按你自己需求)取消勾选一些不必要的插件,我这里取勾了 Firebase 的几个相关选项:

打开 Settings | Gradle,如图勾选:

打开 Settings | Build, Execution, Deployment | Compiler,如图勾选:

如果还卡,那你该换电脑了
常见设置
显示行号
这个设置不是默认开启的,谷歌真是 MDZZ。File | Settings | Editor | General | Appearance,勾选 Show line numbers。
悬浮提示
AS 不同 eclipse,鼠标移动到代码停住的时候什么也没有出现,打开 File | Settings | Editor | General,勾选 Show quick documentation on mouse move。
驼峰选择
Android 开发中,我们通常会使用驼峰命名法对变量进行命名,但是当我们通过 Ctrl + Left / Right 键改变字符选择区域的时候 Android Studio 默认不支持‘驼峰’单词的选择,如图:

File | Settings | Editor | General | Smart Keys,选中 Use “CamelHumps” words。 开启驼峰选择之后,如图:

注意:如果你仍然希望当鼠标在单词上双击之后选中整个单词,需要作如下设置:
File | Settings | Editor | General,取消勾选 Honor Camel Humps words settings when selecting on double click。
命名前缀
我们通常会遵循 Android 官方关于编码风格的指导来进行字段命名。在 Android 源码中我们可以看到通常成员变量都是以m
开始。其实 Android Studio 可以自动在帮我们生成字段名称的时候加上自定义的前缀,如:
- 非公有,非静态的成员变量以
m
开始。 - 静态成员变量以
s
开始。

设置如下,File | Settings | Editor | Code Style | Java,选择 Code Generation 标签,给普通 Field 添加一个m
前缀,给 Static field 添加一个s
前缀,如图:

快速导包
在 Android Studio 中,我们可以通过 Alt + Enter 和 Control + Alt + O 进行导包和清除无用导包,但我们都是懒人,这些事情应当快速自动完成。 下面分别是开启自动导包前后对比图:


设置如下,File | Settings | Editor | General | Auto Import,勾选 Optimize imports on the fly 和 Add unambiguous imports on the fly 。
Log 颜色
Darcula 主题中 Logcat 的默认配色只有红白两种颜色,不太便于我们区分 Log 的类型,如图:

可以换成 Android 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 代码颜色,这里以局部变量为例,下图是系统默认配色:

自定义配色:

配置如下File | Settings | Editor | Color & Fonts | Java,点击 Click on Save As…按钮创建一个新的配色 Scheme,展开下方的 Variables 选择 Local variable,设置右侧的 Foreground 颜色。

AS 还有很多值得我们探讨的东西,但是对初学者来说,了解并掌握这些已经足够了,让我们结束(三)系列,进入后面进一步的学习吧~
你应该多想想眼前的事,才能让自己快乐一点,以后的事情交给以后的自己。