Android代码规范

文章转载禁止用于商业用途,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处莫高雷草原以及作者@JiongBull


  • 不要使用拼音命名
  • 名称应简洁而富于描述,使用完整单词,避免使用缩写(除非该缩写被更广泛使用,例如URL、HTML)
  • 代码中不要出现中文标点字符,例如:‘,’、‘:’
  • 注释中可以书写中文标点字符,便于阅读
  • 注释遵循英文写作习惯,标点符号后空一格,避免句子紧凑
  • 颜色色值的字母必须全部大写

命名规则

1. 包命名

包名由小写的字母组成,默认以com.huashengrun.android.betterus开头,然后接上根据功能划分的模块名。

com.huashengrun.android.betterus.ui

com.huashengrun.android.betterus.ui.widget

2. 类和接口命名

名称的首字母需要大写,如果由多个单词组成,那么每个单词的首字母需要大写,其他字母小写。

class LoginActivity

interface OnClickListener

3. 方法的命名

采用驼峰命名法来命名。

public String getName()

public boolean isExist()

4. 变量的命名

采用驼峰命名法命名。

  • 非公共的、非静态的域变量用m前缀
  • 静态域变量用s前缀
  • 集合类型的变量使用复数形式,若多种集合类型的变量存储的是相同类型的对象,除了根据功能区分,也可以简单通过集合类型来区分

public class User {

private int mId;

private static User sUser;

String mName;

protected int mAge;

public int level;

public List<Company> companies;

public List<Score> listScores;

public Score[] arrScores;

}

5. 常量的命名

常量需要声明为final static形式,组成名称的单词必须全部大写,单词之间用下划线隔开。

private static final int FADE_IN_TIME = 200;

6. 异常的命名

名称必须以Exception结尾。

NullPointerException

7. 布局的命名

name是模块的名称或功能的描述,单词必须全部小写,单词之间用下划线隔开。

类型 模板 事例
Activity activity_name.xml activity_main.xml
Tab tab_name.xml tab_home.xml
Dialog dialog_name.xml dialog_login.xml
ListItem item_name.xml item_contact.xml

8. ID的命名

组成名称的单词必须全部小写,单词之间用下划线隔开,名称不需要复杂的层级定位,只需要准确描述所代表控件的功能作用即可,通常我们在名称前使用控件类型的缩写前缀来避免重复起名的麻烦。

name是模块的名称或功能的描述。

类型 模板 事例
TextView tv_name.xml tv_title.xml
EditText et_name.xml et_mail.xml
RelativeLayout rlyt_name.xml rlyt_login.xml
LinearLayout llyt_name.xml llyt_login.xml

控件类型缩写对照表

控件类型 源文件中缩写 资源文件中缩写
View V v
Button Btn btn
ImageButton Ibtn ibtn
RadioButton Rbtn rbtn
ToggleButton Tbtn tbtn
CheckBox Chk chk
TextView Tv tv
EditText Et et
ImageView Iv iv
ListView Lv lv
ProgressBar Pbar pbar
ScrollView Sclv sclv
RelativeLayout Rlyt rlyt
LinearLayout Llyt llyt
TableLayout Tlyt tlyt
FrameLayout Flyt flyt

9. 图片的命名

name是模块的名称或功能的描述。

图片名称一般由模块名称/功能描述 + 后缀组成,后缀是可选的。

前缀 描述 示例
ic_ 图标 ic_launcher.png
bg_ 背景图片 bg_title.png
sl_ 状态图片 sl_button.png
后缀 描述 示例
普通状态 login.png
_p 按压状态 login_p.png
_c 选中状态 login_c.png
_d 不可用状态 login_d.png

10. 其他资源命名

遵循见名知意的原则,组成名称的单词必须全部小写,单词之间用下划线隔开。

<string name="welcome">欢迎</string>

<color name="white">#FFFFFF</color>


注释

养成良好的注释习惯,对提升自己的编程能力和团队合作能力有很大的益处。

1. 文件注释

源文件的开头需要注释说明当前的文件信息,包括文件名、作者、版本信息、日期、修改记录等。

/*

* -----------------------------------------------------------------

* Copyright (C) 2007-2014, by HuaShengRun, Shenzhen, All rights reserved.

* -----------------------------------------------------------------

*

* File: RequestManager.java

* Author: JiongBull

* Version: 1.0

* Create: 2014-8-10

*

* Changes (from 2014-8-10)

* -----------------------------------------------------------------

* 2014-8-10 : 创建 RequestManager.java (JiongBull);

* -----------------------------------------------------------------

*/

2. 类注释

在类的开头添加类信息的描述.

/**

* 管理Volley的Request, 使用之前需要调用init()进行初始化.

*/

public class RequestManager {

}

3. 方法注释

一般情况下需要为每个方法添加注释,包括方法的功能描述,参数信息、返回值、异常信息等,有些约定俗成的方法可以不需要添加注释,请参考约定俗成的说明。

/**

* 输出日志.

*

* @param context Context

* @param logLevel 日志等级

* @param tag 标签

* @param content 输出内容

* @param throwable 异常信息, 若没有异常可为空

*/

private static void trace(final Context context, final int logLevel, final String tag, final String content, final Throwable throwable) {

...

}

4. 域变量和常量注释

/**

* 日志的扩展名.

*/

public static final String LOG_EXTENSION = ".log";

/**

* 网络请求队列.

*/

private RequestQueue mRequestQueue;

5. 其他注释

单行注释

view.setImageResource(defaultImageResId); // 无图片显示默认图片

区块注释

/* 网络图片添加渐变动画 */

Resources resource = mContext.getResources();

final TransitionDrawable transitionDrawable =

new TransitionDrawable(new Drawable[] {

new ColorDrawable(android.R.color.transparent),

new BitmapDrawable(resource, bmpResponse)

});

view.setBackgroundResource(defaultImageResId);

view.setImageDrawable(transitionDrawable);

transitionDrawable.startTransition(RequestManager.FADE_IN_TIME);

6. XML注释

<!-- Base application theme. -->

<style name="AppTheme" parent="android:Theme.Holo.Light.NoActionBar">

<!-- Customize your theme here. -->

</style>


约定俗成

1. get / set 方法的注释

通过IDE工具批量生成域变量的 get / set 方法可以不用注释。

2. 第三方库生成代码的注释

第三方库生成的代码可以不用注释,例如greenDao生成的代码。

3. 通用类的注释

通用类的公共方法应全部添加注释。

4. 一般情况下的注释

例如在activity、service等文件中,只需对关键的类变量进行注释,方法建议全部添加注释。


时间: 2025-01-06 08:03:56

Android代码规范的相关文章

Java&amp;Android代码规范

项目中直接导入Square的代码风格文件.(不导入Google的原因是Square同时提供了Java和Android两套统一风格,Google只提供了一套) Square Code Styles Goolge Code Styles 导入后会有很多好处,如注释规范化,import规范,方法排序,统一自动断行(PC屏幕较宽,建议断行字符数设置为120[File->Setting–>Code Style,右边Right Margin Columns])等 而在编码保存或提交时还能自动格式化代码,删

Android代码规范(转)

Android代码规范 综述 为规范Android项目中的编码,方便代码的阅读及给日后维护带来便利,特制定本规范.下文从注视规范及代码书写及命名规范做如下规定.对源码中出现命名不规范的地方,希望大家互相监督.指正. 注释规范 命名规范 Java代码 Java源码中除静态常量定义外应禁止使用下划线(_)作为各种变量.函数.接口.类名等各种命名的字符,命名应尽可能不使用拼音及拼音缩写,而改用规范的英文翻译单词命名.其他具体命名规范如下: Package Package的名字应为全部小写单词组成,不应

android代码规范和studio配置CodeStyle

studio配置CodeStyle可以很好的帮助我们检测代码规范性,保持大家的代码统一,来看看怎么配置和使用吧 代码规范,自己公司的一套 代码规范 一.      简介 A.    目的 本文提供一整套编写高效可靠的 Java代码的标准.约定和指南.它们以安全可靠的软件工程原则为基础,使代码易于理解.维护和增强.而且,通过遵循这些程序设计标准,你作为一个 Java软件开发者的生产效率会有显著提高.经验证明,若从一开始就花时间编写高质量的代码,则在软件开发阶段,对代码的修改要容易很多.最后,遵循一

最佳实践之 Android代码规范

命名规范 包命名规范 采用反域名命名规则,包名全部小写,连续的单词只是简单地连接起来,不使用下划线,一级包名为com,二级包名为xxx(可以是公司域名或者个人命名),三级包名根据应用进行命名,四级包名为模块名或层级名.如: com.isa.crm.activity | com.isa.crm.adapter JAVA类命名规范 采用大驼峰式命名法,尽量避免缩写,除非该缩写是众所周知的,比如HTML,URL,如果类名称包含单词缩写,则单词缩写的每个字母均应大写.如: Product | Produ

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

[前言] 按钮少的时候用第三种的匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类. 按钮多的时候一般选择第四种写法. 一.第一种写法:在XML文件中指定(很少用) 在XML文件中显式指定控件的onClick属性,点击按钮时会利用反射的方式调用对应Activity中的onClick()方法. (1)xml文件代码如下: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2

[转] Android 命名规范 (提高代码可以读性)

Android命名规范编码习惯 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的 审查和修改过程中就会浪费不少不必要的时间.如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就 更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,命名规范统一尤为重要,最好是团队中统一好大家命名方法,这样对于日后的工作会轻松很 多. 在面试的时候,审核一个程序员

【Android 应用开发】 Android 相关代码规范 更新中 ...

. 简介 : Android 常用的代码结构, 包括包的规范, 测试用例规范, 数据库模块常用编写规范; 参考 : 之前写的一篇博客 [Android 应用开发] Application 使用分析 ; -- Application 分析 : Application 概念, 声明周期, 组件间传递数据作用, 数据缓存作用; -- 源码分析 : 分析 Application 结构接口源码; -- 使用示例 : 自定义 Application 注册, 保存崩溃日志到文件, 监听Activity声明周期

Android 命名规范 (提高代码可以读性)

刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的 审查和修改过程中就会浪费不少不必要的时间.如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就 更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,命名规范统一尤为重要,最好是团队中统一好大家命名方法,这样对于日后的工作会轻松很 多. 在面试的时候,审核一个程序员的编程水平的时候,命名规范也是一

Android 命名规范 (提高代码可以读性)(转)

刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时间.如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,命名规范统一尤为重要,最好是团队中统一好大家命名方法,这样对于日后的工作会轻松很多. 在面试的时候,审核一个程序员的编程水平的时候,命名规范也是一大标准