您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > Android开发规范与程式优化
Android开发规范与程式优化Android开发(编码)规范介绍命名规则注释代码风格其他规约程式优化技巧UI布局编码目录为什么需要编码规范?编码规范对于程序员而言尤为重要,有以下几个原因:一个软件的生命周期中,80%的花费在于维护几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品Android开发规范包命名一个唯一包名的前缀总是全部小写的ASCII字母并且是一个顶级域名,通常是com,edu,gov,mil,net,org。包名的后续部分根据不同机构各自内部的命名规范而不尽相同。规约:若项目无特殊要求,包命名必须以com.jipu.robclient开始,后面跟有项目名称(或者缩写),再后面为模块名或层级名称。不允许使用通配符引用即”*”号:importjava.io.*;使用的类必须全名称引用。Android开发规范-包命名类命名类名是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML)类名必须使用驼峰规则,即首字母必须大写,如果为词组,则每个单词的首字母也必须要大写,类名必须使用名词,或名词词组。要求类名简单,不允许出现无意义的单词(如classABCActivity)。Android开发规范-类命名方法的命名方法名一般是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。类的获取&设置get&set类的布尔类型判断is&has类的普通方法一般采用完整的英文描述说明成员方法功能,第一个单词尽可能采用动词,首字母小写,如openFile(),addCount()。构造方法应该用递增的方式写。(参数多的写在后面)Android开发规范-方法的命名变量命名第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。变量名应简短且富于描述。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型。非公有非静态变量加m前缀。其后跟驼峰规则的字符串(即每个词首字母大写的单词或词组)。静态变量均加s前缀,其后跟驼峰规则的字符串。Android开发规范-变量命名常量命名类常量的声明,应该全部大写,单词间用下划线隔开。例如:staticfinalintMIN_WIDTH=4;异常命名自定义异常的命名必须以Exception为结尾。以明确标示为一个异常。Android开发规范-常量&异常命名layout命名layoutxml的命名必须以全部单词小写,单词间以下划线分割,并且使用名词或名词词组,即使用模块名_功能名称来命名。如:knowledge_gained_activity.xml正确如:list.xml错误!Android开发规范-layout命名id命名layout中所使用的id必须以全部单词小写,单词间以下划线分割,并且使用名词或名词词组,并且要求能够通过id直接理解当前组件要实现的功能。命名模式为:view缩写_模块名称_view的逻辑名称.view缩写详情如下:TextView:tvEditText:etImageView:ivImageButton:ibtnButton:btnListview:lvSurfaceView:svCheckBox:cbDatePicker:dp如:某TextView@+id/textbookname错误!应为@+id/tv_book_nameAndroid开发规范-id命名res命名所使用的所有资源命名必须以全部单词小写,单词间以下划线分割,并且尽可能的使用名词或名词组,即使用模块名_逻辑名称来命名。如果为公共资源,如分割线等,则直接用用common_逻辑名称命名:如:menu_icon_navigate.png正确某分割线:common_line.png、common_separator.pngstrings.xml中的id命名:activity名称_功能模块名称_逻辑名称、activity名称_逻辑名称/common_逻辑名称strings.xml中,使用activity名称注释,将文件内容区分开来如:!--ModuleActivityName--Android开发规范-res命名注释Java程序有两类注释:实现注释(implementationcomments)和文档注释(documentcomments)。实现注释是使用/*...*/和//界定的注释。文档注释(被称为doccomments)由/**...*/界定。文档注释可以通过javadoc工具转换成HTML文件。使用Eclipse开发环境可以方便的添加文档注释,即在类、属性、方法名称前面键入”/**”然后键入回车,Eclipse会自动为你添加文档注释框架。Android开发规范-注释文件注释所有的源文件都应该在开头有一个注释.如下:/***文件说明*@author作者*创建日期(可选项)*版本名称,版本号(可选项)*版权所有(可选项)*/Android开发规范-文件注释类注释每一个类都要包含如下格式的注释,以说明当前类的功能等。实现的主要功能部分请描述详尽,原则上至少写两行。/***实现的主要功能*@author作者*创建日期(可选项)*/Android开发规范-类注释方法注释每一个方法都要包含如下格式的注释包括当前方法的用途,当前方法参数的含义,当前方法返回值的内容和抛出异常的列表。/***p方法详述(简单方法可不必详述)/p*@paramp说明参数含义(可有多个)*@returnr说明返回值含义*/Android开发规范-方法注释成员变量和常量成员变量和常量需要使用javadoc形式的注释,以说明当前变量或常量的含义。以Public定义的必须写./***XXXX含义*/Android开发规范-类成员变量&常量XML注释如果当前layout或资源需要被多处调用,或为公共使用的layout(若list_item),则需要在xml写明注释。要求注释清晰易懂。如:!--Common--如:!--ModuleName--其他注释方法内部的注释如果需要多行使用/*……*/形式,如果为单行是用//……形式的注释。不要再方法内部使用javadoc形式的注释“/**……**/”,简单的区分方法是,javadoc形式的注释在eclipse中为蓝色,普通注释为绿色。Android开发规范-XML&其他注释缩进只允许使用空格进行缩进,缩进单位为4个空格字符。空行空行将逻辑相关的代码段分隔开,以提高可读性。下列情况应该总是使用空行:一个源文件的两个片段(section)之间;变量声明区域或常量声明区域之后;方法内的局部变量和方法的第一条语句之间;方法声明之前;类声明和接口声明之间Android开发规范-代码风格行宽因为现在的显示器都比较大,请使用120进行设置(在eclipsePreferencesJavaCodeStyleFormatter中设置),一行代码不要超过120字节。空格运算/赋值符号左右必须要有空格.如:for(inti=0;i=MAX_LENGHT;i++){doSomethingElse(i);}逗号后必须要有空格.如:doSomething(this,what,how,where,why);Android开发规范-代码风格括号风格Ifelse语句即使只有一行语句,也必须使用{}括起来.如:if(isSmile){doSomething();}Android开发规范-代码风格基本规约java代码中不出现中文,最多注释中可以出现中文.Message内容统一写在strings.xml中.软键盘的弹出控制,不要让其覆盖输入框.需要自适应屏幕的项目,使用dp(dip)替代px,字体使用sp.Log([系统名称]模块名称[接口名称],详细描述)(“[]”内为可选项).Android开发规范-其他规约参数和返回值一个方法的参数不要超过7个!不要使用null,使用空变量如返回List则可以使用Collections.emptyList()神秘数代码中不允许出现单独的数字,字符!如果需要使用数字或字符,则将它们按照含义封装为静态常量或添加易懂的注释!Android开发规范-其他规约控制语句判断中如有常量,则应将常量置于判断式的左侧。如:if(SERVER_NAME.equals(serverName)){doSomething(something);}循环weibo.com/xmagicjAndroid开发规范-其他规约异常捕获处理勿将所有内容全都放进try块中处理,try块里面只放需要捕获异常的内容.访问控制若没有足够理由,不要把实例或类变量声明为public。方法编写控制方法体不允许超过100行,超过该长度必须分拆成一系列较短小的子方法以供调用。禁止Ctrl+C代码的出现。完全相同的代码段必须提取出来定义成为一个方法以供调用。Android开发规范-其他规约变量赋值避免在一个语句中给多个变量赋相同的值。它很难读懂。例如:fooBar.fChar=barFoo.lchar='c';不要使用内嵌(embedded)赋值运算符试图提高运行时的效率,这是编译器的工作。例如:d=(a=b+c)+r;//AVOID!应该写成a=b+c;d=a+r;Android开发规范-其他规约圆括号一般而言,在含有多种运算符的表达式中使用圆括号来避免运算符优先级问题,是个好方法。即使运算符的优先级对你而言可能很清楚,但对其他人未必如此。你不能假设别的程序员和你一样清楚运算符的优先级。if(a==b&&c==d)//AVOID!if((a==b)&&(c==d))//RIGHTAndroid开发规范-其他规约返回值设法让你的程序结构符合目的。例如:if(booleanExpression){returntrue;}else{returnfalse;}应该代之以如下方法:returnbooleanExpressionAndroid开发规范-其他规约条件运算符”?”前的表达式如果一个包含二元运算符的表达式出现在三元运算符?:的?之前,那么应该给表达式添上一对圆括号。例如:(x=0)?x:-x若无特殊说明请在Eclipse的Workspace中统一编码为:UTF-8Android开发规范-其他规约UI布局通过inflate在Activity中布局是个有性能消耗的过程。每增加一个嵌套的布局和视图都会对应用的性能造成很大的影响。总之,好的实践是尽量保持布局尽可能简单,尤其是要避免嵌套inflate操作整个新的布局,这是为更新已经存在布局的小变化。避免使用太多视图:任何时候都不要在一个布局中包含超过80个视图。避免深度嵌套:如果没有硬性限制,将嵌套限制在10层以下是好的实践。Layoutopt.bat/hierarchyviewer.batAndroid开发规范-程式优化多屏幕适配(dpi的概念)大屏手机适配的顺序是layout_hdpi-layout_mdpi-layout-layout_ldpi;中屏手机适配的顺序是layout_mdpi-layout-layout_hdpi-layout_ldpi;小屏手机适配的顺序是layout_ldpi-layout-layout_mdpi-layout_hdpi;推荐做
本文标题:Android开发规范与程式优化
链接地址:https://www.777doc.com/doc-3985069 .html