Android代码规范

类的组织结构

1.类成员区顺序
类成员顺序对代码的可读性是有很大帮助的,从上到下的排列顺序为:

常量区
UI控件变量区
普通变量区
生命周期区
重载方法区
私有方法区
内部类区

2.类成员划分

按照发生的先后顺序排列
常量按照使用先后排列
UI控件成员变量按照layout文件中的先后顺序排列
普通成员变量按照使用的先后顺序排列
方法基本上都按照调用的先后顺序在各自区块中排列

命名规范

1.包名

包名一般采用域名的反转,全部小写,连续的单词只是简单地连接起来,不使用下划线。例如:com.shuidi.huzhu

2.类和接口
类名=功能+类型后缀
类名都以大驼峰(UpperCamelCase)风格编写。类名通常是名词或名词短语。

activity类,命名以Activity为后缀,如:LoginActivity
fragment类,命名以Fragment为后缀,如:ShareDialogFragment
service类,命名以Service为后缀,如:DownloadService
adapter类,命名以Adapter为后缀,如:CouponListAdapter
工具类,命名以Util为后缀,如:EncryptUtil

3.变量
a.成员变量:
成员变量采用小驼峰命名规则,第一单词的首字母小写,其后的首字母大写。例如:

private Intent cropIntent;

b.静态变量:
为了可以很方便的区分静态变量,静态变量的命名一般采用小写的s开头,后面单词的命名规则和成员变量保持一致,例如:

private static Map<String, String> sCacheStrings;

c.常量
常量命名规则一般是所有的单词都是大写,中间使用_(下划线)分割,例如:

private static final float SCALE_RATE = 1.25f;

4.方法
方法命名规则采用小驼峰命名法例如:onCreate(),onRun(),方法名一般采用动词或者动名词。一般使用的方法名前缀。

getXX()返回某个值的方法
initXX() 初始化相关方法,比如初始化布局:initView()
checkXX()和isXX() 方法为boolean值的时候使用is或者check为前缀
saveXX() 保存数据
clearXX()和removeXX() 清除数据
updateXX() 更新数据
processXX() 对数据进行处理
dispalyXX() 显示某某信息
drawXX() 绘制数据或者效果

资源文件命名规范

注意:项目中使用的string、color、dimen的值原则上都是必须放在strings.xml、colors.xml、dimens.xml中,不要放在Java代码中,这样的好处是可复用,提高维护性,减少非必要的代码。

1.控件类型

控件类型(或缩写)+意义描述,用驼峰式,首字母小,如:
private TextView tvHeaderTitle; // 标题栏的标题
private Button btnLogin; // 登录按钮

2.控件ID命名

<!-- 这是标题栏的标题 -->
<TextView android:id="@+id/txt_header_title" ... />

<!-- 这是登录按钮 -->
<Button android:id="@+id/btn_login" ... />

3.Layout
Layout的命名规则需要和使用他们的组件对应,方便查找和维护,比如我们在创建一个用户信息的UserInfoActivity,对应的Layout的命名就应该是activity_user_info.xml

activity_功能描述,为Activity的命名格式 , 如:activity_user_info.xml
fragment_功能描述,为Fragment的命名格式,如:fragment_sign_up.xml
dialog_功能描述,为Dialog的命名格式 ,如:dialog_change_password.xml
item_功能描述,为列表的item命名格式,如:item_user.xml
include_功能描述,include layout复用命名格式,如:include_title
widget_功能描述,为自定义控件类命名格式
header_功能描述,为列表的HeaderView命名格式
footer_功能描述,为列表的FooterView命名格式

4.string的命名

a.跟业务有关的:业务_描述或业务_控件类型_描述,如:
按钮文字: login_cancel
页面标题: info_title
选项卡文字:info_tab_选项卡文字

b.某类型控件通用的:控件类型_描述,如:
消息框文字:toast_描述
编辑框的提示文字:hint_提示描述
对话框的文字:dialog_描述

c.通用的文字,直播描述表示就可以,如:
 <string name="search">搜索</string>

5.colors的命名

a.跟业务有关的,业务_{描述}颜色类型,如:
登录页面背景颜色:login_bg
登录页面取消按钮颜色:login_cancel_btn_bg
资讯页面标题文字颜色: info_title_txt
资讯页面标题背景颜色: info_title_bg
设置页面分割线颜色:setting_div_bg

b.某类型控件通用的,控件类型_颜色类型,如:
列表的背景色:listview_bg
按钮的文件颜色:btn_txt

c.通用的颜色,颜色类型_描述,如:
背景颜色,添加bg前缀,如:bg_red
文字颜色,添加text前缀,text_red
分割线颜色,添加div前缀,div_red

另外:
区分状态时,默认状态的颜色,添加normal后缀
区分状态时,按下时的颜色,添加pressed后缀
区分状态时,选中时的颜色,添加selected后缀
区分状态时,不可用时的颜色,添加disable后缀

6.dimens的命名

a.跟业务有关的,业务_控件_尺寸类型,如:
登录按钮的宽度:login_btn_width
登录按钮的高度:login_btn_heigth
登录按钮的文字大小:login_btn_size

b.某类型控件通用的,控件_尺寸类型,如:
列表的分隔线的高度:listview_div_height

7.drawable的命名

注意:图片添加img前缀,shape添加shape前缀,selector添加selector前缀,其它的则直接描述命名即可。

图片-图标类,添加ic后缀,格式:img_描述_ic,如:img_msg_icon
背景类,添加bg后缀,格式:img_描述_bg,如:img_search_bg
分隔类,添加div后缀,格式:img_描述_div,如:img_listview_div
shape背景,如:shape_bg_radius
selector,如:selector_list_item
区分状态时,默认状态,添加normal后缀
区分状态时,按下时的状态,添加pressed后缀
区分状态时,选中时的状态,添加selected后缀
区分状态时,不可用时的状态,添加disable

8.动画文件命名
动画类型_动画方向

fade_in,淡入
fade_out,淡出
push_down_in,从下方推入
push_down_out,从下方推出
slide_in_from_top,从头部滑动进入
zoom_enter,变形进入
shrink_to_middle,中间缩小
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容