Android代码规范

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1Android命名规范在命名规范的统一下,在加上注释,日后维护会高效快捷好多1标识符命名法1)驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。2)下划线命名法:单词与单词间用下划线做间隔。3)帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写4)匈牙利命名法:广泛应用于微软编程环境中,在以Pascal命名法的变量前附加小写序列说明该变量的类型。量的取名方式为:scope_+prefix_+qualifier范围前缀,类型前缀,限定词。个人觉得标识符命名原则:尽可能的用最容易识别的含义,推荐前两种2英文缩写原则1)较短的单词可通过去掉“元音”形成缩写2)较长的单词可取单词的头几个字母形成缩写3)此外还有一些约定成俗的英文单词缩写下面为常见的英文单词缩写名称缩写iconic(主要用在app的图标)colorcl(主要用于颜色值)dividerdi(主要用于分隔线,不仅包括Listview中的divider,还包括普通布局中的线)selectorsl(主要用于某一view多种状态,不仅包括Listview中的selector,还包括按钮的selector)2averageavgbackgroundBg(主要用于布局和子布局的背景)bufferbufcontrolctrldeletedeldocumentdocerrorerrescapeescincrementincinfomationinfoinitialinitimageimgInternationalizationI18Nlengthlenlibrarylibmessagemsgpasswordpwdpositionpos3serversrvstringstrtemptmpwindowwnd(win)3命名规范包(packages)采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名(com.tencent.qq.account)包名此包中包含com.xx.应用名称缩写.activity页面用到的Activity类(activities层级名用户界面层)com.xx.应用名称缩写.base页面中每个Activity类共用的类(如BaseActivity)com.xx.应用名称缩写.adapter页面用到的Adapter类(适配器的类)com.xx.应用名称缩写.util此包中包含:公共工具方法类(util模块名)com.xx.应用名称缩写.bean(或则com.xx.应用名称缩写.model)此包中包含:元素类com.xx.应用名称缩写.db数据库操作类(sharepreference、sqlite、file)com.xx.应用名称缩写.widget()自定义的View类等com.xx.应用名称缩写.serviceService服务4com.xx.应用名称缩写.broadcastBroadcast服务类(classe)名词,采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的,比如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应写类描述例如activity类Activity为后缀标识欢迎页面类WelcomeActivityAdapter类Adapter为后缀标识新闻详情页面类NewDetailAdapter解析类Hlr为后缀标识首页解析类HomePosterHlr公共方法类Utils或Manager为后缀标识线程池管理类:ThreadPoolManager日志工具类:Logger数据库类以DBHelper后缀标识新闻数据库:NewDBHelperService类以Service为后缀标识时间服务TimeServiceBroadcastReceive类以Broadcast为后缀标识时间通知TimeBroadcastContentProvider以Provider为后缀标识联系人ContactProvider直接写的共享基础类以Base开头BaseActivity,BaseFragment接口(interface)命名规则与类一样采用大驼峰命名法,多以able或Listener结尾,如interfaceRunnable;interfaceAccessListener。5方法(methods)动词或动名词,采用小驼峰命名法如:onCreate(),run()方法说明initXX()初始化相关方法,使用init为前缀标识,如初始化布局initView()isXX()checkXX()方法返回值为boolean型的请使用is或check为前缀标识getXX()返回某个值的方法,使用get为前缀标识processXX()对数据进行处理的方法,尽量使用process为前缀标识showXX()弹出提示框和提示信息,使用show为前缀标识saveXX()与保存数据相关的,使用sav为e前缀标识resetXX()对数据重组的,使用reset前缀标识clearXX()清除数据相关的removeXXX()清除数据相关的drawXXX()绘制数据或效果相关的,使用draw前缀标识变量(variables)采用小驼峰命名法。类中控件名称必须与xml布局id保持一致。全局变量可使用m开头尽量不要超过三个单词组合,避免使用拼音,不会的可以百度翻译,太长可用缩写,如mTvAccountName;6常量(Constants)全部大写,采用下划线命名法,常量写在全局变量的最后,例如:MIN_WIDTH资源文件(图片drawable文件夹下)全部小写,采用下划线命名法,加前缀区分:名称功能btn_xx按钮图片使用btn_整体效果(selector)btn_xx_normal按钮图片使用btn_正常情况效果btn_xx_press按钮图片使用btn_点击时候效果bg_head背景图片使用bg_功能_说明icon_more_help图标图片使用icon_功能_说明seg_list_line具有分隔特征的图片使用seg_功能_说明sel_ok选择图标使用sel_功能_说明命名后缀:后缀说明unit在使用xml的tilemode来配图片时,element图片使用此后缀nor图片的状态,代表普通状态hl图片的状态,代表高亮状态press图片的状态,代表按下状态select图片的状态,代表其所占的view被选中7布局文件(xml)Activity默认布局,以去掉后缀的Activity类进行命名。不加后缀:功能模块命名例如:activity_main.xml、activity_more.xml,fragment_mainDialog命名例如:dialog_hint.xmlPopupWindow命名例如:ppw_info.xml列表项命名例如:item_city_info.xml包含项例如:include_head.xml、include_bottom.xml自定义控件命名例如:widget_group_view.xml动画文件(anim文件夹下)全部小写,采用下划线命名法,加前缀区分动画命名例子规范写法备注fade_in淡入unselect图片的状态,代表其所占的view没有被选中8fade_out淡出push_down_in从下方推入push_down_out从下方推出push_left推像左方slide_in_from_top从头部滑动进入zoom_enter变形进入slide_in滑动进入layout中的id命名命名模式为:view缩写_模块名称_view的逻辑名称控件缩写LayoutViewlvRelativeViewrvTextViewtvButtonbtnImageButtonimgBtnImageViewivCheckBoxcbRadioButtonrb9analogClockanaClkDigtalClockdgtClkDatePickerdtPkEditTextedt或etTimePickertmPktoggleButtontglBtnProgressBarpBSeekBarskBarAutoCompleteTextViewautoTxtZoomControlszmCtlVideoViewvdoViWebViewwvRantingBarratBarTabtabSpinnerspnChronometercmtScollViewsclViTextSwitchtxtSwt104Android编码规范建议1.java代码中不出现中文,最多注释中可以出现中文2.局部变量命名、静态成员变量命名只能包含字母,单词首字母除第一个外,都为大写,其他字母都为小写3.常量命名只能包含字母和_,字母全部大写,单词之间用_隔开4.服务端可以实现的,就不要放在客户端5.引用第三方库要慎重,避免应用大容量的第三方库,导致客户端包非常大6.处理应用全局异常和错误,将错误以邮件的形式发送给服务端7.图片的.9处理8.使用静态变量方式实现界面间共享要慎重9.Log(系统名称模块名称接口名称,详细描述)10.单元测试(逻辑测试、界面测试)11.不要重用父类的handler,对应一个类的handler也不应该让其子类用到,否则会导致message.what冲突12.activity中在一个View.OnClickListener中处理所有的逻辑13.strings.xml中使用%1$s实现字符串的通配14.如果多个Activity中包含共同的UI处理,那么可以提炼一个CommonActivity,把通用部分叫由它来处理,其他activity只要继承它15.如果所开发的为通用组件,为避免冲突,将drawable/layout/menu/values目录下的文件名增加前缀ImageSwitchimgSwtlistViewlvExpandableListepdLtMapViewmapVi1116.数据一定要效验,例如字符型转数字型,如果转换失败一定要有缺省值;服务端响应数据是否有效判断5Android结构建议1.布局采用RelativeLayout减少布局层级结构2.如果数据是服务器动态获取的,在布局里面不要写死3.Activity里面的Log调试在发布的时候尽量去掉4.Activity里面变量定义的分层可采用基本数据类型变量-view-adapter-对象-常量5.Activity的跳转用static写在Activity内部onCreate()上面,如publicstaticvoidstartGroupActivity(Contextcontext,intorderId)6.尽量避免滚动控件的嵌套,可采用自定义View里面的addView的方式根据不同的数据量加载组合控件视图,页面的实现也可用自定义View拆分7.功能模块的实现时,考虑是否有可共用的控件,有则抽出,如倒计时、广告栏等等8.第三方库尽量抽成libarary复用,如网络库、图片库、刷新库、分享库等等9.个人代码风格要统一,如全部使用大小写或全部使用下划线,而不是各种混合,尽量不让Androidstudio提示命名问题10.统一标题栏、统一UI资源、统一页面跳转动画、统一空视图无网络页面、统一Dialog、统一Toast、统一Loading,这里的统一是指抽出来封装公用。

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功