一、Android代码规范
1、java代码中不出现中文,最多注释中可以出现中文
2、局部变量命名、静态成员变量命名
只能包含字母,单词首字母除第一个外为大写,其他字母都为小写
3、常量命名
只能包含字母和_,字母全部大写,单词之间用_隔开
4、layout中的id命名
命名模式为:view缩写_模块名称_view的逻辑名称
view的缩写详情如下
LayoutView:lv RelativeView:rv TextView:tv ImageView:iv ImageButton:im Button:btn
layout的缩写详情如下
FrameLayout:fraLay RelativeLayout:relLay TextView:tv ImageView:iv ImageButton:im Button:btn
5、activity中的view变量命名
命名模式为:逻辑名称+view缩写
建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view
6、strings.xml中的id命名
命名模式:activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称
strings.xml中,使用activity名称注释,将文件内容区分开来
drawable中的图片命名
命名模式:activity名称_逻辑名称/common_逻辑名称
7、styles.xml:将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中;
8、使用layer-list和selector
9、图片尽量分拆成多个可重用的图片
10、服务端可以实现的,就不要放在客户端
11、Log(系统名称模块名称接口名称,详细描述)
12、引用第三方库要慎重,避免应用大容量的第三方库,导致客户端包非常大
13、如果ImageView的图片是来自网络,进行异步加载
14、应用开发中自定义View的时候,交互部分,千万不要写成线程不断刷新界面显示,而是根据TouchListener事件主动触发界面的更新
二、Android开发UI优化
1、layout组件化,尽量使用merge及include复用
2、使用styles,复用样式定义
3、软键盘的弹出控制,不要让其覆盖输入框
4、数字、字母和汉字混排占位问题:将数字和字母全角化。由于现在大多数情况下我们的输入都是半角,所以字母和数字的占位无法确定,但是一旦全角化之后,数字、字母的占位就和一个汉字的占位相同了,这样就可以避免由于占位导致的排版问题。
5、英文文档排版:textview自动换行时要保持单词的完整性,解决方案是计算字符串长度,然后手动设定每一行显示多少个字母并加上‘\n‘
6、复杂布局使用RelativeLayout
7、自适应屏幕,使用dp替代pix
8、使用android:layout_weight或者TableLayout制作等分布局
9、使用animation-list制作动画效果
三、Java代码规范
一 注释规范
1. 类、接口注释的内容
1、用途。开发人员使用某个类/接口之前,需要知道采用该类/接口的用途
2、开发维护的日志。一个有关于该类/接口的维护记录:时间、作者、摘要。
Eclipse 代码格式化:
位置:
Window › Preferences ›Java › Code Style>Code Template >Code>New Java files
内容:
${filecomment}
${package_declaration}
/**
* 类说明:
* @author tj
* @date ${date}
* @version 1.0
*/
${typecomment}
${type_declaration}
2. 方法注释的内容
1、该方法是做什么的。
2、传入什么样的参数给这个方法。@param
3、异常处理。@throws
4、这个方法返回什么 @return
二命名规范
命名规范的目的是使程序更易读。它们也可以提供一些有关标识符功能的信息,以助于理解代码,不论它是一个常量、包、还是类。
应该尽量做到以下几点:使用完整的英文描述来命名;避免命名超长(15 个字符以内比较好);避免相似的命名,例如:persistentObj 和persistentObjs 不要一起使用;anSqlStmt 和anSQLStmt 不要一起使用;慎用缩写,如果要用到缩写,则按照缩写规则使用缩写,例如:No.代表number 数字,ID.代表identification标示。下面分类介绍命名规范。
1. 包
包名小写
import com.founder.mobile.common
2. 类/接口
大小写字母混合组成,头字母大写,名字要有意义。
class XmlParseUtils
3. 方法
方法名字是一个动词,大小写字母混合组成,第一个单词的首字母小写,其后单词的首字母大写,名字要有意义。
run();
getBackground();
4. 变量、参数
变量用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。
变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m 和n,它们一般用于整型;c,d,e,它们一般用于字符型。
5. 集合、数组
应该从命名中体现其复数的含义,例如加后缀s或前缀some,名字要有意义。
customers;
postedMessages;
someCustomers;
someItems ;
6. 域(Field)命名
非公有,非静态字段命名以m开头。
静态域命名以s开头。
其他字段以小写字母开头。
public static final 字段(常量) 全部大写,并用下划线连起来。
例子:
public class MyClass
{
public static final int SOME_CONSTANT = 42;
public int publicField;
private static MyClass sSingleton;
int mPackagePrivate;
private int mPrivate;
protected int mProtected;
}
7.三样式规范
1. 注释/Javadoc :使用标准样式写它
2. 简短的方法 :不写超大的方法,如果一个方法超过一屏,则考虑重构。
3. 字段(成员变量):要么是在该文件的顶部,或紧接在使用它们的方法前面。
4. 局部变量 :限制作用域
5. 行长度 :一行的最大长度是一屏。
6. 一致性 :保证代码规范的一致性。
7. 在定义类时,应该按照访问权限的大小分别排列属性和方法。
1、public
2、protected
3、包级别(没有访问修饰符的,默认为friendly)
4、private