文章转载禁止用于商业用途,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处莫高雷草原以及作者@JiongBull。
Android代码规范
包名由小写的字母组成,默认以com.huashengrun.android.betterus
开头,然后接上根据功能划分的模块名。
com.huashengrun.android.betterus.ui
com.huashengrun.android.betterus.ui.widget
名称的首字母需要大写,如果由多个单词组成,那么每个单词的首字母需要大写,其他字母小写。
class LoginActivity
interface OnClickListener
采用驼峰命名法来命名。
public String getName()
public boolean isExist()
采用驼峰命名法命名。
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;
}
常量需要声明为final static形式,组成名称的单词必须全部大写,单词之间用下划线隔开。
private static final int FADE_IN_TIME = 200;
名称必须以Exception
结尾。
NullPointerException
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 |
组成名称的单词必须全部小写,单词之间用下划线隔开,名称不需要复杂的层级定位,只需要准确描述所代表控件的功能作用即可,通常我们在名称前使用控件类型的缩写前缀来避免重复起名的麻烦。
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 |
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 |
遵循见名知意的原则,组成名称的单词必须全部小写,单词之间用下划线隔开。
<string name="welcome">欢迎</string>
<color name="white">#FFFFFF</color>
养成良好的注释习惯,对提升自己的编程能力和团队合作能力有很大的益处。
源文件的开头需要注释说明当前的文件信息,包括文件名、作者、版本信息、日期、修改记录等。
/*
* -----------------------------------------------------------------
* 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);
* -----------------------------------------------------------------
*/
在类的开头添加类信息的描述.
/**
* 管理Volley的Request, 使用之前需要调用init()进行初始化.
*/
public class RequestManager {
}
一般情况下需要为每个方法添加注释,包括方法的功能描述,参数信息、返回值、异常信息等,有些约定俗成的方法可以不需要添加注释,请参考约定俗成
的说明。
/**
* 输出日志.
*
* @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) {
...
}
/**
* 日志的扩展名.
*/
public static final String LOG_EXTENSION = ".log";/**
* 网络请求队列.
*/
private RequestQueue mRequestQueue;
单行注释
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);
<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.Light.NoActionBar">
<!-- Customize your theme here. -->
</style>
通过IDE工具批量生成域变量的 get / set 方法可以不用注释。
第三方库生成的代码可以不用注释,例如greenDao生成的代码。
通用类的公共方法应全部添加注释。
例如在activity、service等文件中,只需对关键的类变量进行注释,方法建议全部添加注释。
原文地址:http://blog.csdn.net/jiongbull/article/details/41514449