您的位置:首页 > 移动开发 > Android开发

Android代码规范

2016-05-28 12:20 302 查看
1、Android命名规范

Java类文件命名规范

1、 Activity命名规范:以Activity作为后缀。例如:PersonActivitty

2、Adapter命名规范:以Adapter作为后缀 。例如:PersonAdapter

3、Entity命名规范:大多以Entity作为后缀。例如:PersonEntity

4、其他的类似于前面的要求。例如:Fragment,PopupWindow等等

方法命名和实体变量等命名

方法命名需要通俗易懂,例如:初始化页面数据 initDatas 首字母小写,第二个单词首字母大写,实体类属性名、局部变量、全局变量都遵循此规则,注意与常量区分开来

常用方法命名:

方法名说明
initXX()初始化相关方法,使用init为前缀标识,如初始化布局initView()
isXX()checkXX()方法返回值为boolean型的请使用is或check为前缀标识
getXX()返回某个值的方法,使用get为前缀标识
processXX() 对数据进行处理的方法,尽量使用process为前缀标识
displayXX()弹出提示框和提示信息,使用display为前缀标识
saveXX()与保存数据相关的,使用sav为e前缀标识
resetXX()对数据重组的,使用reset前缀标识
clearXX()清除数据相关的
removeXXX() 清除数据相关的
drawXXX()绘制数据或效果相关的,使用draw前缀标识
资源文件命名规范

1、页面布局文件。以act_作为前缀,以Activity所在的Package作为中缀,以Activity的名称(去掉Activity)作为后缀。注意都是小写。例如:对于Person这个模块下的AddCustomerActivity,它的layout文件就应该是:act_person_addcustomer.xml

2、ListView的item布局文件。以item_作为固定前缀,列表项的名称为后缀。注意都是小写。例如:某个页面下有一个用户列表,控件名为lvUserList,那么item的layout就应该是:item_lvuserlist.xml

3、Dialog布局文件。以dlg_作为固定前缀,Dialog的功能名称作为后缀。注意都是小写。例如:dlg_hint.xml

4、drawable目录下文件命名规范。drawable目录下的资源,大部分是图片,此外,还有一部分xml文件,用于Selector,background等。但无论是图片还是xml文件,都应该遵循以下命名规范:

对于只在一个页面使用的资源,就以该页面的名称作为前缀。

对于只在一个模块下多个页面使用的资源,就以该模块的名称作为前缀。

对于在各个模块、各个页面都有可能使用的资源,比如说上导航、下导航,以common作为前缀。

Java类中控件对象的命名规范

控件类型缩写+控件的逻辑名称(首字母大写),比如登录按钮,就可以命名为btnLogin

常用控件的缩写

控件缩写控件缩写
LinearLayoutllEditTextet
RelativeLayoutrlTimePickertp
TextViewtvToggleButttontb
ButtonbtnProgressBarpb
ImageButtonibWebViewwv
ImageViewivRantingBarrb
CheckBoxcbTabtab
RadioButtonrbListViewlv
DatePickerdpMapViewmp
Layout中控件对象的命名规范

控件缩写加上下划线加上逻辑名称

例如:

Button btnLogin=(Button)findViewById(R.id.btn_login);

strings.xml常量的命名规范

因为这些值大多在layout中的控件上使用,所以以该常量所在的Activity名称作为前缀,后面接控件名称,在后面就自由发挥了,比如登录页面上显示的按钮文字,就可以命名为:loginActivity_btnLogin_text

如果是在java代码中使用,可能出现在Activity中,也可能出现在工具类Utils中,这个时候如果跟具体的Activity相关,那么规则跟上面一致,以所在Activity名称作为前缀,如果涉及到公共模块和控件相关,就以common_作为前缀。

strings.xml的规则,我们以模块来进行划分,例如:strings_person.xml,需要注意的是常量命名时为了避免各个模块的strings文件常量重名的问题,需要在每个常量前面加上模块名称前缀

例如:person_loginActivity_btnLogin_txt

常量命名

只能包含字母和下划线_,字母全部大写,单词之间使用下划线个隔开。

例如:PERSON_ID

2、Android编码规范

分门别类存放各种类

工具类、实体类、ui、Listener、Interface、adapter等专门创建各个的包,如果是activity或者fragment又要以模块区分,例如:com.heart.activity.person com.heart.activity.search

使用findViewById语句

控件声明为Activity级别,如果有多个相同的控件,可以以“,”隔开

例如:private TextView tvName,tvDescription,tvSex;

layout和java文件中禁止直接出现中文

需要首先在strings文件中定义,以getResource或者@string方式获取

Layout中所有控件的字体大小,边距等,都定义在dimens.xml中

例如:

<!--字体大小-->
<dimen name="font_size_tiny">10sp</dimen>
<dimen name="font_size_small">12sp</dimen>
<dimen name="font_size_normal">14sp</dimen>
<dimen name="font_size_normal_high">16sp</dimen>
<dimen name="font_size_large">18sp</dimen>
<dimen name="font_size_large_high">20sp</dimen>
<dimen name="font_size_xlarge">22sp</dimen>

<!--边距大小-->
<dimen name="offset_2dp">2dp</dimen>
<dimen name="offset_4dp">4dp</dimen>
<dimen name="offset_6dp">6dp</dimen>


这样做可以统一样式,方便修改,如果有多个相同属性我们还可以定义style。

坚持使用Gson,fastJson自定义实体来作为API数据的载体

JSONObject、JSONArray、HashMap<String,Object>、ArrayList<String,Object>
等不能够序列化的实体禁止使用。除非为了实现某个算法,临时使用。

页面之间的数据传递,坚持使用intent、budle等携带数据的方式,禁止使用全局静态变量的方式。

为控件添加事件统一使用实现onItemClickListenrer接口的方式

例如:并且强烈要求每个点击事件都要加上注释

//绑定监听
btnBack.setOnClickListener(this),
btnBack.setOnClickListener(this)

@Override
onClick(View v){
switch(v,.getId){
case R.id.btn_back:
//销毁当前activity
this.finished();
break;
case R.id.btn_back:
//登录
.......
break;
}
}


禁止直接在Layout中直接绑定点击事件

<Button  android:OnClick=".."......>


Activity中禁止嵌套内部类,尽量独立出来,放到对应的包中

Adapter的编码规范

1、所有Adapter类全部放到Adapter的包中。

2、Adapter绑定的数据如果是固定的数量使用数组
<自定义实体类>
,否则一律使用
ArrayList<自定义实体类>


3、在Adapter中创建适合自身的ViewHolder类,统一命名为ViewHolder。

图片的处理统一使用第三方组件,ImageLoder或Fresco来进行异步加载

使用SharedPreferences存储简单数据,例如:开关状态等。对于复杂的数据类型,建议存储到本地文件中。

尽量使用ApplicationContext代替使用Context,否则会引起内存泄漏,但是跟窗口周期相关的必须使用Context。

数据类型转换一定注意校验

使用常量代替枚举类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: