您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > android书写规范说明
书写规范说明1、简介1.2定义术语或缩写词说明性定义JavaDoc来自Sun微系统用于生成API文档为来自Java源代码的HTML格式的一种计算机软件工具。9PatchNinePatchDrawable绘画的是一个可以伸缩的位图图像,Android会自动调整大小来容纳显示的内容。2、编码规范2.1代码风格代码内的空行、缩进、对齐、换行、间隔等代码风格均按照Eclipse2.1的标准。只需使用Eclipse2.1进行代码格式化即可。Eclipse中配置方式:2.2基本命名规范类别说明例子包包名一律小写,少用缩写和长名;采用以下规则:[com].[组织名].[项目名]后面再跟后面为模块名或层级名称。如:com.tuge.项目缩写.模块名com.tuge.dzm.bookmark如:com.tuge.项目缩写.层级名com.tuge.dzm.activities类类或接口名是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免用缩写词(除非该缩写词被更广泛使用,像URL,HTML)如:interfaceOnResultListenerclassResult方法方法名是动词[名词]结构,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写;取值类可使用get前缀,设值类可使用set前缀,判断类可使用is(has)前缀。如:setSuccessful()isSuccessful()变量只在代码块的开始处声明变量;采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写;变量名不应以下划线或美元符号开头;尽量避免单个字符的变量名;组件或部件变量使用其类型名或类型名缩写作其后缀。;集合类型变量,例如数组和矢量,应采用复数命名或使用表示该集合的名词做后缀。如:StringbookName成员变量使用m开头,其它和变量的规则一致,如:booleanmSuccessful临时变量临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型。如:for(inti=0;iiLen;i++)常量全部采用大写,单词间用下划线隔开StaticfinalStringMSG_GATEWAY_NOT_RESPONSE;2.3控件命名规范类别说明(前缀)例子LinearLayoutlaylayFriendRelativeLayoutlaylayMsgFrameLayoutlaylayCartTableLayoutlaylayTabButtonbtnbtnHomeImageButtonibtnibtnPlayTextViewtvtvNameEditTextetetNameListViewlvlvCartImageViewivivHeadGridViewgvgvPhoto2.4资源文件命名规范类别说明例子layout文件必须以全部单词小写,单词间以下划线分割,使用名词或名词词组。用common前缀表示多模块共用布局,用inc前缀表示嵌入布局。采用以下规则:模块名_逻辑名称act_逻辑名称common_逻辑名称inc_逻辑名称act_friendfriend.xmlfriend_list_item.xmlfriend_info.xmlinc_topbar.xmlinc_navbar.xmlcommon_face.xmlcommon_date.xmldrawable全部单词小写,单词间以下划线分割。使用名词或名词词组,可加后缀_s表示小图_b表示大图,逻辑名称可由多个单词加下划线组成,采用以下规则:Icon-写死的,图标Bg-图片背景等Btn-按钮图片main_btn_home.png按键模块名_用途_逻辑名称模块名_用途_颜色用途_逻辑名称用途_颜色maket_divider_white.png分割线ic_edit.png图标bg_main.png背景btn_red.png红色按键btn_red_b.png红色大按键ic_head_s.png小头像bg_input.png输入框背景divider_white.png白色分割线anim全部单词小写,单词间以下划线分割,采用以下规则:模块名_逻辑名称逻辑名称refresh_progress.xmlmarket_cart_add.xmlmarket_cart_remove.xmlstringsstrings的name命名使用Camel命名法,采用以下规则:模块名+逻辑名称逻辑名称mainMenuAbout主菜单按键文字friendTitle好友模块标题栏friendDialogDel好友删除提示loginCheckEmail登录验证dialogTitle弹出框标题buttonOk确认键loading加载文字appNamecolorscolors的name命名使用Camel命名法,采用以下规则:模块名+逻辑名称颜色friendInfoBgfriendBgtransparentgraystylescolors的name命名使用Camel命名法,采用以下规则:模块名+逻辑名称逻辑名称MainTabBottomBlueBigButtonGraySmallButtonFriendList2.5注释Java程序有两类注释:实现注释(implementationcomments)和文档注释(documentcomments)。实现注释是使用/*...*/和//界定的注释。文档注释(被称为doccomments)由/**...*/界定。文档注释可以通过JavaDoc工具转换成HTML文件。2.5.1文件注释所有的源文件都应该在开头有一个注释,其中列出类名、版本信息、日期和版权声明。如下:/**文件名*包含类名列表*版本信息,版本号*创建日期*版权声明*/Eclipse中的配置方式:需要配置的注释格式如下:/***@title:${file_name}*TODO包含类名列表*Copyright(C)ShenzhenFutuoTechnologyCo.Ltd.Allrightreserved.*@version:v1.0,${date}*/${filecomment}${package_declaration}${typecomment}/**@name${type_name}*@description*@authormax*@date${date}*/${type_declaration}2.5.2类注释每一个类都要包含如下格式的注释,以说明当前类的功能等。/***@name类名*@author原作者*@description实现的主要功能。*@date创建日期*修改者,修改日期,修改内容。*/Eclipse中的配置方式:2.5.3方法注释每一个方法都要包含如下格式的注释包括当前方法的用途,当前方法参数的含义,当前方法返回值的内容和抛出异常的列表。/***方法的一句话概述*方法详述(简单方法可不必详述)*@params说明参数含义*@return说明返回值含义*@throwsIOException说明发生此异常的条件*@throwsNullPointerException说明发生此异常的条件*/2.5.4类成员变量和常量注释成员变量和常量需要使用javadoc形式的注释,以说明当前变量或常量的含义/***XXXX含义*/2.5.5其他注释方法内部的注释如果需要多行使用/*……*/形式,如果为单行是用//……形式的注释。不要在方法内部使用javadoc形式的注释“/**……**/”,简单的区分方法是,javadoc形式的注释在eclipse中为蓝色,普通注释为绿色。2.5.6XML注释如果当前layout或资源需要被多处调用,或为公共使用的layout(若common_list_item),则需要在xml写明注释。要求注释清晰易懂。2.6编程规范2.6.1方法一个方法尽量不要超过30行,如果方法太长,说明当前方法业务逻辑已经非常复杂,那么就需要进行方法拆分,保证每个方法只作一件事。2.5.2参数和返回值一个方法的参数尽可能的不要超过4个!如果一个方法返回的是一个错误码,请使用异常!!尽可能不要使用null,替代为异常或者使用空变量如返回List则可以使用Collections.emptyList()2.5.3神秘的数代码中不允许出现单独的数字,字符!如果需要使用数字或字符,则将它们按照含义封装为静态常量!(for语句中除外)2.5.4控制语句判断中如有常量,则应将常量置于判断式的右侧。如:if(true==isAdmin())...尽量不使用三目条件的嵌套。所有if语句必须用{}包括起来,即便是只有一句:if(true){//dosomething......}if(true)i=0;//不要使用这种对于循环://不推荐方式____________________________________________while(indexproducts.getCount()){//每此都会执行一次getCount()方法,//若此方法耗时则会影响执行效率//而且可能带来同步问题,若有同步需求,请使用同步块或同步方法}//推荐方式______________________________________________//将操作结构保存在临时变量里,减少方法调用次数finalintcount=products.getCount();while(indexcount){}2.5.5访问控制若没有足够理由,不要把实例或类变量声明为公有。通常,实例变量无需显式的设置(set)和获取(gotten),通常这作为方法调用的边缘效应(sideeffect)而产生。一个具有公有实例变量的恰当例子,是类仅作为数据结构,没有行为。亦即,若你要使用一个结构(struct)而非一个类(如果java支持结构的话),那么把类的实例变量声明为公有是合适的。3、工程结构Android开发工程中初始化的时候如何在初期我们就能搭建一个好的架构,从开发的角度,看到整齐的代码、统一的风格、清晰的分层,对后面工程的开发和扩展非常重要。关于Android架构,我们参考了网上一些人对App工程结构搭建的理解和一些当今比较流行的Android软件包,综合比较吸取其中优秀的,搭建我们自己通用的工程模板。软件包第一层,使用com.tuge+项目缩写;第二层,不按照模块划分,主要按照组件的类型来划分,然后把此类型所有的类全部放在其下,包结构如下:1.实体包命名为model包,里面不仅存放实体类XXXX.java,而且还存放更高一级的实体类的相关类;2.config中存储一些系统配置,比如名称、应用参数等系统级的常量或者静态变量,包含LocSession类,存放全部静态变量,运行性变量;3.constant包中存储的都是publishstaticfinal常量,定义状态、类型等等;4.common包中定义一些公用库、方法,这些方法和库,不应该涉及到业务;5.appwidget中存储自定义控件;6.util包中存储涉及到业务的公用方法如util、helper类和控件的数据源适配器。4、架构机制4.1异常处理机制所有导致异常的代码,都应尽可能提供一个不用引发异常就能检查是否成功的方法。例如,有些对象可以返回为null,如果不加判断就去操作就会报异常。尽管这并不总是可能的,但其目标是在正常执行情况下不应有异常发生;在每个捕捉到的异常中,使用用户可以理解的语言描述异常,而不要将系统异常的信息直接显示给用户;发生系统异常时,系统应能记录该异常,并提供给系统管理员、开发人员等查看。(如使用CNZZ把错误发到服务端);对于正常或预期的错误,或者对于正常的控制流,不要使用异常;业务流程中发生因业务不完整而返回的情况时,请勿使用异常,而采用returnfalse;refintResultCode的方式返回业务错误代码。4.2多线程机制主线程负责创建、显示、更新UI控件,启动、停止子
本文标题:android书写规范说明
链接地址:https://www.777doc.com/doc-2897211 .html