android代码规范和studio配置CodeStyle
studio配置CodeStyle可以很好的帮助我们检测代码规范性,保持大家的代码统一,来看看怎么配置和使用吧
代码规范,自己公司的一套
代码规范
一、 简介
A. 目的
本文提供一整套编写高效可靠的 Java代码的标准、约定和指南。它们以安全可靠的软件工程原则为基础,使代码易于理解、维护和增强。而且,通过遵循这些程序设计标准,你作为一个 Java软件开发者的生产效率会有显著提高。经验证明,若从一开始就花时间编写高质量的代码,则在软件开发阶段,对代码的修改要容易很多。最后,遵循一套通用的程序设计标准将带来更大的一致性,使软件开发团队的效率明显提高。
Note: 规范编码的目的是让开发者更容易理解其他人的代码,而不是约束你编码的方式
B. 范围
本指南仅适用于使用Java编写的Android程序代码。
C. 参考资料
http://www.oracle.com/technetwork/java/codeconvtoc-136057.html
http://source.android.com/source/code-style.html
二、 快速入门
l 驼峰式命名(大小写交替)
错误:
public classmyClass
publicinterface foo
public finalstatic int max = 100
public intFooValue
正确:
public classMyClass
publicinterface IFoo
public finalstatic int MAX = 100
public intfooValue
l 使用Javadoc识别的注释
在函数声明前添加注释(输入”/**”+回车)
l 精简函数体(最好不要超过40行)
l 局部变量随用随声明(尽量缩小变量的作用域)
l 每行最长100字符
l 缩进用4个空格代替TAB
l 成员变量名用m开头,static变量名用s开头
l 前大括号“{”不要单占一行
错误:
if(condition)
{
//dosomething
}
正确:
if(condition) {
//do something
}
l 多利用标准注解
错误:
publicvoidonCreate(Bundle savedInstanceState) {
正确:
@Override
publicvoidonCreate(Bundle savedInstanceState) {
l 少用不常见缩写
错误:opnDlg
正确:openDialog
三、 命名
A. Java命名规范
命名应符合驼峰式规则,利用大小写字母交替来区分名称中的不同单词,即应采用小写字母,但类名、接口名以及任何非初始单词的第一个字母要大写。
1. 尽量使用完整的英文描述符,采用适用于该领域的术语
2. 采用大小写混合使名字可读
3. 尽量少用缩写,但如果用了,要明智地使用。
4. 避免使用类似的名字,或者仅仅是大小写不同的名字
类型 |
规则 |
示例 |
包名 |
全部小写字母,URL倒序 |
package com.domain.project |
类名 |
首字母大写,使用描述性强的名词,避免使用缩写,除非该缩写十分通用(Url、Html) |
class Raster; class ImageSprite; |
接口 |
同上。通常以字母I开头。回调接口等特殊情况可不加I。 |
interface IRasterDelegate; interface IStoring; interface OnClickListener; |
方法 |
使用动词,驼峰式命名,首字母小写 |
run(); runFast(); getBackground(); |
变量 |
使用有意义的简短的单词,驼峰式,首字母小写。 成员变量m开头,JavaBean例外。 static变量s开头。 |
int i; float myWidth; int mPrivate; static MyClass sSingleton; |
常量 |
全部大写,用下划线分割单词,static final修饰 |
static final int MIN_WIDTH = 4; |
B. Android命名规范
类型 |
规则 |
示例 |
Activity |
XxxxActivity |
MainActivity |
View |
XxxView,XxxLayout |
RedTextView、BluetoothDialog |
Service |
XxxService |
|
BroadcastReceiver |
XxxxReceiver |
|
工具方法类 |
Utils或Manager为后缀 |
ThreadPoolManager、LogUtils |
基础类 |
BaseXxx |
BaseActivity、BaseFragment、BaseDao |
布局xml |
全部小写,以下划线分割,使用名词命名。Activity或Fragment的布局文件必须与其类名对应,对应规则为:将所有字母都转为小写,将类型和功能调换。 |
activity_main.xml fragment_homework.xml dialog_bluetooth.xml //对话框 item_message.xml //列表Item vw_titlebar.xml //其他布局文件 |
布局id |
全部小写,以下划线分割,view缩写_view的逻辑名称 |
layout_city、tv_name、btn_submit、img_head、list_message |
图片文件 |
全部小写,以下划线分割。 |
xxxx_checked.png xxxx_focused.png xxxx_selected.png xxxx_pressed.png xxxx_disabled.png xxxx_normal.png |
Drawable xml |
selector_xxx、shape_xxx |
四、 注释
1. 每个类必须有文件头注释。简要说明类的作用,注明作者和创建时间。标准模板:
/**
* Filedescription.
*
* @author ${USER}
* @date ${DATE}
*/
2. 大部分方法都需要方法注释,一些不言自明的方法除外。简要说明方法作用,并解释参数、返回值、抛出异常。方法注释请使用JavaDoc标准。例如:
/**
* Description.
*
* @param arg1 description
* @param arg2 description
* @return description
* @throws Exception description
*/
public int getFoo(int arg1, booleanarg2) throws Exception {
return 0;
}
3. 关键逻辑或者较复杂的逻辑处,应该添加必要的注释。单行注释使用”//”,多行注释使用/**/。
4. 注释必须在程序改变时实时更新。
5. 简单明了,确保任何程序员都可以读懂。
五、 其他规范
1. 所有文件编码格式为UTF-8。
2. 变量的作用域应该尽量小,需要时才声明,并尽快进行初始化。
3. 前大括号不要单独占用一行,不要省略单行代码块的大括号。
正确:
if (condition) {
statements;
}
错误:
if (condition) //没有大括号
statement;
错误:
if (condition) //前大括号单独占用一行
{
statement;
}
4. 尽量少使用缩写,除非该缩写很常见(Html、Url)
5. 缩进使用4个空格替代Tab。
6. 编写代码后必须格式化。AndroidStudio默认格式化快捷键:Ctrl+Alt+L。
7. 在代码中逻辑性代码块的起始、结尾处,都应该加入空行,并在起始处写注释。
相对独立的程序块之间必须加空行。
8. 一行代码不超过100字符。超过100字符,请换行或者提取变量。
9. 方法体不超过40行。若超过,则应考虑拆分成多个方法。
10. 尽量避免使用枚举类,使用常量代替。
11. 只要是合法的,就把@Override注解给用上。
12. 规范TODO使用,加上日期和描述,并及时解决删除。AndroidStudio中可以敲todo来使用标准模板。例如:
// TODO: 2017/1/5简单描述
13. 采用统一的LogUtils来输出Log。输出的Log要简明扼要。充足的log可以便于定位错误,但Log太多会影响程序性能(I/O耗时)。正式版本应该关闭Log开关。
14. Java文件中不允许有多余的import,不允许importjava.io. *
15. Warning要解决。
16. 不允许硬编码,状态值必须定义常量,并添加注释。
配置CodeStyle
Android Studio统一配置
1. 配置CodeStyle
按照上图标注顺序,导入AndroidCodeStyle.xml文件。
2. 工程文件编码统一为UTF-8
3. 注释模板
注意:请将${USER}修改为自己的名称,模板前后不要有多余的空格与换行符。
/**
* File description.
*
* @author ${USER}
* @date ${DATE}
*/
4. 安装使用CheckStyle插件
安装完成后,重启AndroidStudio。然后添加CheckStyle脚本:
配置实时检查
:
使用方法简介:
- 配置好实时检查后,在编辑器中,不符合风格的代码会直接出现警告:
- 在Java文件中右键,点击如图选项,即可查看当前文件所有不符合风格的代码段:
android代码规范和studio配置CodeStyle的更多相关文章
- Android代码规范
Android代码规范——文章来源<IT蓝豹>http://itlanbao.com/preview.aspx#1,0 [-]一Import的次序二缩进Indentation总则示例代码规 ...
- Java&Android代码规范
项目中直接导入Square的代码风格文件.(不导入Google的原因是Square同时提供了Java和Android两套统一风格,Google只提供了一套) Square Code Styles Go ...
- Android 代码规范大全
前言 虽然我们项目的代码时间并不长,也没经过太多人手,但代码的规范性依然堪忧,目前存在较多的比较自由的「代码规范」,这非常不利于项目的维护,代码可读性也不够高, 此外,客户端和后端的研发模式也完全不同 ...
- Android 代码规范 code style
/* * 文件名(可选),如 CodingRuler.java * * 版本信息(可选),如:@version 1.0.0 * * 版权申明(开源代码一般都需要添加),如:Copyright (C) ...
- Android代码规范----按钮单击事件的四种写法
[前言] 按钮少的时候用第三种的匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类. 按钮多的时候一般选择第四种写法. 一.第一种写法:在XML文件中声明onClick属性(很少用) 在XM ...
- SwiftLint:代码规范检查工具介绍
Swift-CodeStyle Checker:SwiftLint 介绍: SwiftLint 是一个用于强制检查 Swift 代码风格和规定的一个工具,基本上以 GitHub's Swift 代码风 ...
- Android Studio 配置SVN实现代码管理
Refference From:http://iaiai.iteye.com/blog/2267346 一.Android Studio配置SVN Android Studio关联配置SVN很简单,在 ...
- Android Studio配置SVN 以及使用代码管理
一.Android Studio配置SVN Android Studio关联配置SVN非常easy,在Settings里面.找到Version Control->Subversion.在这个页面 ...
- Android studio配置Git
Android studio配置Git 1.下载window 版git并安装:下载地址 2.Android Studio设置git插件:File->Setting->Version Con ...
随机推荐
- Android开发(三)——Android布局中实现圆角边框
设置corners_bg.xml(设置边框圆角可以在drawable-mdpi目录里定义一个xml): <?xml version="1.0" encoding=" ...
- nginx中配置proxy_pass
在nginx中配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走. 下面四种 ...
- 4. EM算法-高斯混合模型GMM详细代码实现
1. EM算法-数学基础 2. EM算法-原理详解 3. EM算法-高斯混合模型GMM 4. EM算法-高斯混合模型GMM详细代码实现 5. EM算法-高斯混合模型GMM+Lasso 1. 前言 EM ...
- 11月Android笔记
不知不觉又过了两个月了,过的够呛.新收获:百度云,视频直播,sqlite加密,lucene,SlidingPaneLayout. 我发现只要你有心,你期望的事情会接踵而来(不包括爱情= =) 上个游戏 ...
- 如何在wpf实现进度条
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; u ...
- 【转】mybatis连接Oracle做增删改查
原文地址:http://blog.csdn.net/liumengcheng/article/details/34422475 入门请看http://blog.csdn.NET/liumengchen ...
- cas单点登录-jdbc认证(三)
前言 本节的内容为JDBC认证,查找数据库进行验证,其中包括: 密码加密策略(无密码,简单加密,加盐处理) 认证策略(jdbc) 一.业务需求 不同的公司,需求业务需求或者架构不一样导致我们实现验证的 ...
- 【WPF】在MenuItem中下划线“_”显示不正常
MenuItem的Header显示文字时发现一个问题,字符串中的第一个下划线“_”不能显示.如果该下划线前面是一个英文字母,则下划线会跑到该字母下方.(是中文汉字则不会) 查到原因是第一个下划线“_” ...
- Instant Django 1.5 Application Development Starter
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic d ...
- Customize WCF Envelope and Namespace Prefix
转自:http://vanacosmin.ro/Articles/Read/WCFEnvelopeNamespacePrefix Posted on January 8th 2014 by Vana ...