Android命名规范(重点讲解:包名)
Android程序开发中,使⽤规范的命名有益于程序的开发和后期阅读。本⽂主要对Android程序包名的定义做详细介绍,并附带⼀些简单的命名规则。
⼀、标识符命名⽅法
1、⼩驼峰命名法,除⾸单词外,其余所有单词的第⼀个字母⼤写。如:allPrice,getAllNames
2、⼤驼峰命名法,所有单词的第⼀个字母⼤写。如:GuideActivity,StudentInfoBean
3、下划线命名法:单词与单词间⽤下划线做间隔。如:activity_main,select_backGround_color
⼆、命名规范
1、包(packages)的命名规范:
采⽤反域名命名规则,全部使⽤⼩写字母。⼀级包名为com,⼆级包名lwz(为个⼈或公司名称,可以简写),三级包名guidecity(根据应⽤进⾏命名),四级包名ui或utils等(模块名或层级名),根据实际情况也是可以⽤五级包名,六级包名。
这⾥的四级包名是要重点理解和分类的,例如:com.lwz.应⽤.utils ,此包中包含:公共⼯具⽅法类
(1)utils
此包中包含:公共⼯具⽅法类,⽐如:SPHelperUtil、TimeUitl、FileUtil等
(2)adapter
此包中包含:⼀些适配器的类,⽐如:ArticleAdapter、FansAdapter,HistorAdaper等
(3)base
此包中包含:⼀些共同类的基类,⽐如:BaseActivity(所有的Activity类都继承这个类)、BaseFragment(所有的Fragment都继承这个类),ListItemAdapter(封装了Base Adapter的基类)等
(4)bean
此包中包含:⼀些属性对象类,⽐如:StudentBean、LonginBean、ArticleBean等
(5)config
此包中包含:最顶级的配置类,⽐如:MyApp(继承了Application)
(6)httpservice
此包中包含:Http数据的请求接⼝类,好像Retrofit⽹络框架请求⽹络数据才要使⽤。如:ILogin接⼝,IAddTopic接⼝,IUpdate等
(7)interface
此包中包含:某个页⾯或对象的所⽤操作接⼝类,这个接⼝主要是定义这个对象的所有⽅法。如:IUser接⼝,IArticle接⼝,ITopic接⼝等
(8)model
这是MVC或MVP框架设计中的M。此包中包含:某个页⾯或对象的所⽤操作类,这个类继承了上⾯定义的interface接⼝,重写并实现厘⽶那的⽅法。如:UserModel,ArticleMode类,TopicMode类等
(9)ui
这个ui表⽰的页⾯的意思,也是MVC或MVP中的V,很多⼈把这个包名写成activity,其实是不准确的,因为ui包含了activity和fragment,所以ui是四级包名,⽽activity和fragment是ui包下的五级包名。
activity此包中包含:Activity对象类。如:MainActivity类,HomeActivity类,FansListActivity类等。如果是使⽤了MVP框架模式,activity包名下还可以有六级包名,⽐如:loginMVP(包含ILoginView接⼝类,LoginPresenter类)、seleteTopicMVP
fragment此包中包含:Fragment对象类。但是Fragment⼀般都是多个存在的,所以fragment包下⼀般还有六级包名,表⽰⾥⾯是哪个页⾯的Fragment对象。android retrofit
(10)weight
此包中包含:⾃定义View或⾃定义对话框等视图类。如:CursroDialog类,SpringScrollView类,ScrollListView类等
(11)db
此包中包含:数据库操作类
(12)service
此包中包含:Service服务类
(13)broadcast
此包中包含:Broadcast⼴播接收者类
(14)provider
此包中包含:Provider内容提供者类(⽤得很少)
包名规划我感觉对程序后期阅读或修改有很⼤的帮助,特别是很⼤的程序,⽂件太多,不规划的话⾃⼰都不知道这个类是⼲什么的!
当然如果程序中没有这⼀类的⽂件,这个包名是可以不写,但是⼀些基本的包名,基本每个程序都是需要的⽐如:ui、utils、adapter、weight、bean等
2、类(classes)的命名规范:
⼀般⽤名词,采⽤⼤驼峰命名法,尽量避免缩写,除⾮该缩写是众所周知的,⽐如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应⼤写。
以下是部分⽰例说明:
(1)activity 类,如欢迎页⾯类WelcomeActivity.
(2)adapter类,如商品详情适配器ProductDetailAdapter
(3)util公共⽅法类,如:线程池管理类:ThreadPoolManager,⽇志⼯具类:LogUtil
(4)db数据库类,以DBHelper后缀标识。如城市数据库:CityDBHelper
(5)Service类,以Service为后缀标识
(6)BroadcastReceive,以Broadcast为后缀标识
(7)ContentProvider,以Provider为后缀标识
3、接⼝(interface):
命名规则与类⼀样采⽤⼤驼峰命名法,多以able或ible结尾或以I开头,如Runnable、Accessible、IUser。
4、⽅法(methods)的命名规则:
⼀般使⽤动词或动名词,采⽤⼩驼峰命名法 例如:onCreate(),run()
(1)initXXX()初始化相关⽅法,使⽤init为前缀标识
(2)isXXX()、checkXXX() ⽅法返回值为boolean型的请使⽤is或check为前缀标识
(3)getXXX()返回某个值的⽅法,使⽤get为前缀标识
(4)processXXX() 对数据进⾏处理的⽅法,尽量使⽤process为前缀标识
(5)displayXXX() 弹出提⽰框和提⽰信息,使⽤display为前缀标识
(6)saveXXX() 与保存数据相关的,使⽤sav为e前缀标识
(7)resetXXX() 对数据重组的,使⽤reset前缀标识
(8)clearXXX()removeXXX() 清除数据相关的,使⽤clear或remove为前缀标识
(9)drawXXX() 绘制数据或效果相关的,使⽤draw前缀标识
5、变量(variables)采⽤⼩驼峰命名法。类中控件名称⼀般与xml布局id保持⼀致
6、常量(constants)全部⼤写,采⽤下划线命名法.例如:MIN_WIDTH
7、XML⽂件(布局⽂件):全部⼩写,采⽤下划线命名法
例如:l, l、homeposter_l
8、资源⽂件(图⽚):全部⼩写,采⽤下划线命名法,加前缀区分
命名说明
btn_login_normal按钮图⽚使⽤btn_功能_说明
bg_head背景图⽚使⽤bg_功能_说明
def_search_cell默认图⽚使⽤def_功能_说明
icon_more_help图标图⽚使⽤icon_功能_说明
seg_list_line具有分隔特征的图⽚使⽤seg_功能_说明
sel_ok选择图标使⽤sel_功能_说明
9、动画⽂件(anim包):全部⼩写,采⽤下划线命名法,加前缀区分。
动画命名例⼦:
规范写法备注
click_head_left点击背景切换动画使⽤click前缀标识
bg_shape_rectangle背景⾃定义图形使⽤bg前缀标识
show_shopcar_add⼩动画效果使⽤show前缀标识
10、资源ID(resources id):⼤⼩写规范与⽅法名⼀致,采⽤⼩驼峰命名法。
命名规范为“资源控件的缩写名”+“变量名”。例如TextView的id=“tv_userName”。注意:页⾯控件名称应该和控件id名⼀般是⼀致,例如:TextView tv_userName=(TextView)findViewById(R.id.tv_userName);
三、图解包名规范⽰例
本⽂主要是想对程序包名的命名规划,这⾥展⽰我之前开发的程序的包名图⽚,供⼤家参考:
1、总显⽰
上⾯example这个包名⼀般是不⽤的!
2、ui包下
fragment展⽰
activity 展⽰:
3、utils和weight包下
4、res⽂件夹下的部分⽂件展⽰:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论