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的更多相关文章

  1. Android代码规范

    Android代码规范——文章来源<IT蓝豹>http://itlanbao.com/preview.aspx#1,0 [-]一Import的次序二缩进Indentation总则示例代码规 ...

  2. Java&Android代码规范

    项目中直接导入Square的代码风格文件.(不导入Google的原因是Square同时提供了Java和Android两套统一风格,Google只提供了一套) Square Code Styles Go ...

  3. Android 代码规范大全

    前言 虽然我们项目的代码时间并不长,也没经过太多人手,但代码的规范性依然堪忧,目前存在较多的比较自由的「代码规范」,这非常不利于项目的维护,代码可读性也不够高, 此外,客户端和后端的研发模式也完全不同 ...

  4. Android 代码规范 code style

    /* * 文件名(可选),如 CodingRuler.java * * 版本信息(可选),如:@version 1.0.0 * * 版权申明(开源代码一般都需要添加),如:Copyright (C) ...

  5. Android代码规范----按钮单击事件的四种写法

    [前言] 按钮少的时候用第三种的匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类. 按钮多的时候一般选择第四种写法. 一.第一种写法:在XML文件中声明onClick属性(很少用) 在XM ...

  6. SwiftLint:代码规范检查工具介绍

    Swift-CodeStyle Checker:SwiftLint 介绍: SwiftLint 是一个用于强制检查 Swift 代码风格和规定的一个工具,基本上以 GitHub's Swift 代码风 ...

  7. Android Studio 配置SVN实现代码管理

    Refference From:http://iaiai.iteye.com/blog/2267346 一.Android Studio配置SVN Android Studio关联配置SVN很简单,在 ...

  8. Android Studio配置SVN 以及使用代码管理

    一.Android Studio配置SVN Android Studio关联配置SVN非常easy,在Settings里面.找到Version Control->Subversion.在这个页面 ...

  9. Android studio配置Git

    Android studio配置Git 1.下载window 版git并安装:下载地址 2.Android Studio设置git插件:File->Setting->Version Con ...

随机推荐

  1. 备份Android机上的照片

    [本文出自天外归云的博客园] 一年一度的春节放假开始了,今天收拾柜子发现了一台上大学时候用的android机,里面有几百张当年的回忆. 写了个shell脚本遍历了下照片存放的路径,然后用一个pytho ...

  2. spring集成RabbitMQ配置文件详解(生产者和消费者)

    1,首先引入配置文件org.springframework.amqp,如下: <dependency> <groupId>org.springframework.amqp< ...

  3. ARKit从入门到精通(10)-ARKit让飞机绕着你飞起来

    1.1-ARKit物体围绕相机旋转流程介绍 1.2-完整代码 1.3-代码下载地址 废话不多说,先看效果 其实是会一直围着你转圈的,只不过笔者不好意思暴露家里的场景,所以请读者朋友们见谅~ 由于是晚上 ...

  4. 【转】oracle & 和 ' 特殊字符处理 ( like 'GAC/&_%' escape '&'; 这里面的 / 居然将& 转义了 为什么?)

    原文地址:http://blog.csdn.net/gjswxhb/article/details/6083242 今天在导入一批数据到Oracle时,碰到了一个问题:Toad提示(plsql 也一样 ...

  5. 【转】Java中JDK和JRE的区别是什么?它们的作用分别是什么?

    原文地址:http://blog.csdn.net/qq_33642117/article/details/52143824 JDK和JRE是Java开发和运行工具,其中JDK包含了JRE,但是JRE ...

  6. logback的日志文件中出现大量的ESC符号

    如下图: 这个日志文件是用less命令打开的,然后看到就惊呆了,日志文件乱成这样的. 开始我以为是我把logback的配置文件弄错了,还看了半天pattern. 然后百度了一下,找了这篇博客: htt ...

  7. 如何安装docker-compose

    docker-compose还是挺好用的~~~~~ 这里简单介绍下两种安装docker-compose的方式,第一种方式相对简单,但是由于网络问题,常常安装不上,并且经常会断开,第二种方式略微麻烦,但 ...

  8. .Net MVC 自定义Action类型,XmlAction,ImageAction等

    MVC开发的时候,难免会用到XML格式数据,如果将XML数据当作字符串直接返回给前台,其实这不是真正意义上的xmL,你可以看到ContentType是text/html而非XML类型,这往往会造成前端 ...

  9. linq操作符:连接操作符

    linq中的连接操作符主要包括Join()和GroupJoin()两个. 一.Join()操作符 Join()操作符非常类似于T-SQL中的inner join,它将两个数据源进行连接,根据两个数据源 ...

  10. nginx日志request_time 和upstream_response_time区别

    笔者在根据nginx的accesslog中$request_time进行程序优化时,发现有个接口,直接返回数据,平均的$request_time也比较大.原来$request_time包含了用户数据接 ...