代码规范
1.书写规范
- 编码方式统一用UTF-8. Android Studio默认已经是UTF-8,只要不去改动它就可以了
- 一个方法最多不要超过40行代码
- 文字大小的单位统一用 sp,元素大小的单位统一用 dp
- 应用中字符串统一在 strings.xml 中定义,然后在代码和布局文件中引用
- 颜色值统一在 colors.xml 中定义,然后在代码和布局文件中引用。另外,不要在代码和布局文件中引用系统的颜色,除了透明
2.命名规范
1. 包命名
域名反写+项目名称+模块名称,全部单词用小写字母
- 如:www.shbj.com —– 写成: com.shbj.mydemo.home
2. 类和接口命名
使用大驼峰规则,用名词或名词词组命名,每个单词的首字母大写
- activity类,以Activity结尾,如:MainActivity
- fragment类,以Fragment结尾,如:HomeFragment 或 Home_Fragment
- service类,以Service结尾,如:DownloadService
- adapter类,以Adapter结尾,如:GoodsAdapter
- 工具类,以Util结尾,如:JsonUtil
- 模型类,以Entity,Bean结尾,如:GoodEntity,GoodBean
- 接口实现类,以 Impl 结尾或大写 I 开头,如:AppImpl或者IApp
3. 方法命名
使用小驼峰规则,用动词命名,第一个单词的首字母小写,其他单词的首字母大写
- 初始化方法,以init开头,例如:initView
- 按钮点击方法,以to开头,如:toLogin
- 设置方法,以set开头,如:setData
- 具有返回值的获取方法,以get开头,如:getData
- 通过异步加载数据的方法,以load开头,如:loadData
- 布尔型的判断方法,以is或has,或具有逻辑意义的单词如equals 开头,如:isEmpty
4. 控件缩写
控件 | 缩写 | 控件 | 缩写 |
---|---|---|---|
TextView | txt | EditText | edt |
Button | btn | ImageButton | ibtn |
ImageView | img | ListView | list |
LinearLayout | llayout | RelativeLayout | rlayout |
RadioGroup | group | RadioButton | rbtn |
ProgressBar | progress | SeekBar | seek |
CheckBox | chk | Spinner | spinner |
TableLayout | table | TableRow | row |
ScrollView | scroll | SearchView | search |
TabHost | host | TabWidget | widget |
5. 常量命名
- 单词字母全部大写,单词之间用下划线分开
public static final int PAGE_SIZE = 20;
6. 变量命名
{范围描述+}意义描述+类型描述的组合,用驼峰式命名法则,首字母小写
private TextView mTitleTxt; //标题栏的标题
private Button loginBtn; // 登录按钮
private GoodEntity goodEntity;
7. 控件id命名
控件缩写_{范围_}意义,范围可选,只在有明确定义的范围内才需要
<!-- 这是标题栏的TextView -->
<TextView
android:id="@+id/txt_title";
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<!-- 这是登录按钮 -->
<Button
android:id="@+id/btn_login";
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
8. layout命名
字母必须全小写且中间不能有空格,否则会报错
组件类型_{范围_}功能,范围可选,只有在明确定义的范围内才需要
activity_{范围_}功能,为Activity的命名格式:LoginActivity ---> activity_login
fragment_{范围_}功能,为Fragment的命名格式:LoginFragment ---> fragment_login
dialog_{范围_}功能,为Dialog的命名格式
item_list_{范围_}功能,为ListView的item命名格式
item_grid_{范围_}功能,为GridView的item命名格式
header_list_{范围_}功能,为ListView的HeaderView命名格式
footer_list_{范围_}功能,为ListView的FooterView命名格式
9. strings的命名
类型_{范围_}功能,范围可选
- 页面标题,命名格式:title_页面
- 按钮文字,命名格式:btn_按钮事件
- 标签文字,命名格式:label_标签文字
- 选项卡文字,命名格式:tab_选项卡文字
- 消息框文字,命名格式:toast_消息
- 编辑框提示文字,命名格式:hint_提示信息
- 图片的描述文字,命名格式:desc_图片文字
- 对话框的文字,命名格式:dialog_文字
- menu的item文字,命名格式:action_文字
10. colors的命名
前缀{_控件}{_范围}{_后缀},控件、范围、后缀可选,但控件和范围至少要有一个
- 背景颜色,添加 bg 前缀
- 文本颜色,添加 text 前缀
- 分割线颜色,添加 div 前缀
- 区分状态时,默认状态的颜色,添加 normal 后缀
- 区分状态时,按下时的颜色,添加 pressed 后缀
- 区分状态时,选中时的颜色,添加 selected 后缀
- 区分状态时,不可用时的颜色,添加 disable 后缀
11.drawable的命名
前缀{_控件}{_范围}{_后缀},控件、范围、后缀可选,但控件和范围至少要有一个
- 图标类,添加 ic 前缀
- 背景类,添加 bg 前缀
- 分割类,添加 div 前缀
- 默认类,添加 def 前缀
- 区分状态时,默认状态,添加 normal 后缀
- 区分状态时,按下时的颜色,添加 pressed 后缀
- 区分状态时,选中时的颜色,添加 selected 后缀
- 区分状态时,不可用时的颜色,添加 disable 后缀
- 多种状态的,添加 selector 后缀(一般为ListView的selector或按钮的selector)
12.动画文件命名
动画类型_动画方向
- fade_in ,淡入
- fade_out ,淡出
- push_down_in,从下方推入
- push_down_out,从下方推出
- slide_in_from_top,从头部滑动进入
- zoom_enter,变形进入
- shrink_to_middle,中间缩小
其他
1.标识符命名法(熟悉)
- 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写
- 帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写
- 下划线命名法:单词与单词之间用下划线做间隔
2.重要几点(熟练使用)
- 接口,类的命名:使用帕斯卡(pascal)命名法,每个单词首字母都要大写
- 方法名:驼峰命名法,除首单词外,其余所有单词首字母都要大写
成员变量
3.1.记得加上成员修饰符// 修饰符的权限 private //只能被当前类的方法访问 protected //可以被所有子类访问,子类没有在同一个包中也可以访问 public //可以被任何类访问 default //不加任何修饰符就是默认。可以被同一个包下的所有类访问;如果子类没有在同一个包下,则不能访问
3.2.命名规范,一般成员变量要在变量前加上一个 m ,如:
private List<CartBean> mDatas;
private Context mContext;
boolean mEdit;
private CardDao mcartDao;