前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >编码规范

编码规范

作者头像
六月的雨
发布2018-05-14 11:00:58
1.1K0
发布2018-05-14 11:00:58
举报
文章被收录于专栏:Android开发指南Android开发指南

一、命名规范

1.包命名

项目包名:com.公司名.项目名  例如:com.xinzong.etc

包名

说明

com.xxx.xxx.activitys

存放(一级)主界面activity (如:MainActivity)以及子activity的包(如登录界面的包:com.xxx.xxx.activitys.login)

com.xxx.xxx.fragment

存放所有fragment及子包,细节同上

com.xxx.xxx.bean

实体类

com.xxx.xxx.widget

自定义View、自定义dialog等

com.xxx.xxx.utils

公用工具方法类(日期或者不同单位间的转换,文本解析,SharedPreferences存储,网络访问,日志等工具)

com.xxx.xxx.db

数据库相关

2.类命名

类描述

规范

示例

基础父类

以Base开头

BaseActivity

Activity类

以activity后缀

LoginActivity

解析类

以Handler后缀

JsonHanlder,MyXmlHanlder

工具类

以Util或Manager后缀

TaskManager(任务管理)PreferencesUtil

数据库类

以DBHelper后缀

MySqliteDBHelper

3.变量命名

1) 变量采用小驼峰命名,如:tvName(TextView对象)

2) 类中控件名和布局ID一样,如:类中tvName 对应 布局中 R.id.tvName

3) 全局常量 名称全大写,用“_”分隔。如:public static final int MAX_NUM=999;

4) 静态变量 名称以s开头,如:public staitc int sMaxNum=999;

5) 非静态私有变量 名称以m开头,如:public int mMaxNum=999;(控件对象除外)

4.接口命名

1) 命名规则和类一样,以ible或able结尾,如:Runnable(自定义的Listener除外)

5.方法命名

1) 获取和设定某个值或对象用典型的getXXX 以及对应的 setXXX

2) 判断一个条件并且返回Boolean值 命名:isXXX 或 checkXXX或hasXXX

3) 初始化相关数据及资源的方法命名:initXXX

6.布局文件命名

描述

规范

示例

Activity布局文件

activity开头

activity_main

Fragment布局文件

fragment开头

fragment_home

Dialog布局文件

dialog开头

dialog_confirm

ListView item布局文件

lvitem开头

lvitem_rechange

7.资源ID命名

1) 控件

控件

缩写

TextView

tv

Button

btn

EditText

et

ImageView

iv

ImageButton

ib

FrameLayout

fl

RelativeLayout

rl

LinearLayout

ll

ViewPager

vp

ListView

lv

等…

2) 图片

命名

说明

bg_XXX

尺寸比较大的背景

btn_XXX

可点击的按钮背景,一般存在普通和按下去2种样子,命名例子:btn_login_0,btn_login_10表示普通状态,1表示按下去的状态

icon_XXX

小图标

3) drawable

说明

背景选择器

shape资源文件等命名法四大类:Pascal、Camel、匈牙利和下划线。包名:全是小写;文件名:首字母全大写的Pascal命名;类:Common类:Pascal自定义属性类:Pascal+后缀Attribute(继承Attribute);(使用较少)自定义异常类:Pascal+后缀Exception(继承Exception);泛型中的传递:大写字母(使用较少)方法:Pascal用于构造,Camel用于普通;(动宾短语)接口:接口文件及名称定义:后面加个Interface,前面Pascal;事件接口定义:后缀Listener;变量:私有成员变量:Pascal+前缀m;静态成员变量:Pascal+前缀s(只是类里面的,如果写到函数里面就不加);函数局部变量:Camel;(优化:_+Pascal)方法参数:Camel;(p+Pascal)循环中的变量:缩写字母,无意义的字母命名格式化严格换行:一个分号一换行;建议一个大括号一行(不要跟在末尾);严格缩进:使用Tab缩进,注释缩进和代码缩进对齐严格注释:文件、类、方法、方法参数、有含义的变量、属性都要注释;文件和类的注释一定要包含如下元素:Name、Description、Version、Date、Author、Change、Copyright;(遵循JavaDoc标准);变量前面用//在上一行注释声明位置:1、将所有的框架定义的命名空间为一组,自定义的和第三方的命名空间放在另一组;2、类成员变量的声明位置:所有的成员变量都应该声明在顶部,同时使用一个空行来将它们和属性以及方法分开;3、局部变量声明位置:放到方法顶部使用Java预定义类型而不是用类名来声明变量(较少使用)编码逻辑规范1、避免将多个类放在一个文件里,除非是一次性使用的内部类;2、一个方法的代码长度最好不要超过35行;3、原则上,尽量不要手动去修改系统自动生成的代码;4、final String取代String,int也是一样;5、不推荐在循环语句中,直接进行return操作;6、不要使用goto语句;7、处处要考虑异常情况;8、仅对需要对外公布的使用public,其余的使用private或者internal;9、尽量不要提供public和protected程序变量,使用属性代替它们;(get、set)10、不要在系统自动生成的函数直接写业务代码,,最好自定义函数,然后调用;11、总是使用接口,推荐使用显式接口实现;12、在switch语句中总是要有default字句来显示信息;项目目录规范Requirment、Design、Planning、Help、Log、Source、Publish、Test

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-10-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档