由于在实际开发的过程中,各种命名和使用不规范,没有按照要求来,给看代码的人带来了困扰,也给自己的开发带来不便,在寻找的时候浪费了时间。所以本周主要学习看了,安卓和Java的命名规范和使用规约,以及部分kotlin的总结。

一、android资源文件命名与使用

1.资源文件

资源文件需要带模块前缀

2.layout文件

activity、main_activity

fragment、modue_fragment

Dialog、demo_dialog

include、demo_include

ListView demo_list_item

RecyclerView demo_recycle_item

GridView demo_grid_item

3.drawable资源

drawable资源名称以小写单词+下划线的方式命名

模块名_业务功能描述_控件描述_控件状态

main_login_btn_pressed

4.anim资源

anim资源名称以小写单词+下划线的方式命名

Tween动画 demo_push_down_in

Frame动画 demo_loading_grey_001

5.color资源

写入module_clolor.xml中,


<color name="module_btn_bg_color">#00b4aa</color>


6.dimen资源

dimen以小写单词+下划线方式,写入module_dimens.xml中,


<dimen name="activity_vertical_margin">16dp</dimen>


7.style资源


<style name="Theme_Corner_Dialog" parent="android:style/Theme.Dialog">


8.string资源

string资源文件写入module_strings.xml中,

module_login_tips

9.id资源、View

Id资源原则上以驼峰法命名,View组件id以View的缩写。

二、Java编程规约

1.命名风格

代码中的命名不能以下划线或美元符号开始和结束

类名使用UpperCamelCase风格 例如:ForceCode

方法名、参数名、成员变量、局部变量都统一使用LowerCamelCase 例如:localValue

常量命名全部使用大写,单词间用下划线隔开

类型与中括号紧挨相连表示数组

POJO类中的任何布尔类型的变量,都不要is前缀,否则部分框架解析会引起序列化错误

包名统一使用小写

避免在子父类的成员变量、或者不同代码块的局部变量之间采用完全相同的命名

杜绝完全不规范的缩写

2.常量定义

不允许任何没有定义的变量直接出现在代码中

不要使用一个常量类维护所有常量,要按常量功能进行分类

3.代码格式

在进行类型转换的时候,不要空格

单行字符限制不超过120个,超出需要换行

4.OOP规约

5.日期时间

获取当前毫秒值,System.currentTimeMillis()

不允许在程序中任何地方中使用 Java.sql.Data java.sql.time

不要在程序中,写死一年365天。

避免公历闰年2月份问题

6.集合处理

主要覆写equals,就必须覆写hashCode

判断集合内部是否为空,使用isEmpty()

ArrayList的subList结果不可强转为ArrayList

不要在foreach循环中进行元素的remove/add操作,使用lterator

7.并发处理

获取单例对象需要保证线程安全,其中的方法也要保证线程安全

8.控制语句

switch括号内的变量类型为string,必须先进行null判断

9.注释规约

所有的抽象方法都要javadoc注释

所有的枚举类必须要有注释

三、Kotlin接口的使用

在具体使用的时候,经常会混淆接口和抽象方法,所以特地记录一下接口和抽象的区别。

接口的使用,一个类可以实现一个或者多个接口。

接口的属性,只能是抽象的,不可以初始化值,实现接口时,必须重写属性。

重新函数,可能会遇到同一方法继承多个实现的问题。

注意实现接口是, class D:A{}  A后面没有括号