Android代码规范
来源:互联网 发布:photoshopcs6 for mac 编辑:程序博客网 时间:2024/05/17 13:44
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 RelativeLayoutrlTimePickertpTextViewtvToggleButttontbButtonbtnProgressBarpbImageButtonibWebViewwvImageViewivRantingBarrbCheckBoxcbTabtabRadioButtonrbListViewlvDatePickerdpMapViewmp
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。
数据类型转换一定注意校验
使用常量代替枚举类型
- android 编程代码规范
- Android开发代码规范
- android代码规范整理
- Android开发代码规范
- android 代码编写规范
- Android代码规范
- Android代码编写规范
- Android代码规范
- Android代码规范
- Android开发代码规范
- android代码规范
- Android代码规范
- Android代码规范
- Android代码规范
- Android代码规范
- Android代码规范
- android代码书写规范
- Android代码规范
- 赢在职场-WEB全栈开发-1-4background讲解
- C#(FCL)字符串对象的不可变性
- Filter 过滤器
- luci, show dynamic infomation on web
- 欢迎使用CSDN-markdown编辑器
- Android代码规范
- 赢在职场-WEB全栈开发-1-5border
- 常用数据库的JDBC驱动程序写法
- 赢在职场-WEB全栈开发-1-6padding
- NYOJ 喷水装置(一) (贪心)
- 图像处理中常用的彩色模型
- 用java编程输出九九乘法表
- 赢在职场-WEB全栈开发-1-7margin
- 茫无头绪的瞎侃