24H免费课程咨询  TEL:13401595960   QQ:1870218756  微信:13401595960(李老师)

东方博宜

网站首页 > 软件开发资讯 > 安卓开发

【常州安卓开发培训班】Android开发基础规范(一)

2018-05-29 09:54:01 东方博宜 阅读

一、工程相关


1.1 工程结构 

当进行提交代码的工作时,工程应该保持如下的目录结构:


当你修改或者增加新功能的时候,工程结构依然应该保持如上的样子。 

使用如上的工程结构可以让我们的应用代码从相关的测试代码中分离出来。 

CommonTest目录使得我们的功能测试和单元测试可以共享部分代码,比如mock model creation and dagger test configuration classes.


1.2 文件命名 

1.2.1 类文件 

任何定义的类都应该使用驼峰命名格式,比如:


任何继承自android组件的类都应该使用组件名称来结尾,比如:




使用驼峰格式命名易于阅读。

用android组件名称结尾的继承类能够清楚的标识出类的用途,比如,如果要去查找修改RegistrationDialog时,那么这个命名使得定位这个类文件非常方便。


当命名资源文件时,应该只使用小写字母和下划线替代空格,例如: 

activity_main, fragment_user, item_post 

在你查找布局文件时,这样命名同样使得定位文件很方便。

在使用android studio中,布局的package中的文件是按字母顺序排列的,这样意味activity,fragment和其他的layout是按组分类放置的,所以你知道从哪里去开始找一个文件了。

不仅如此,用组件名称开头的布局文件可以很清晰的表示这个布局文件是被那类组件使用。

1.2.2 资源文件 

1.2.2.1 Drawable 文件


Drawable资源文件应该使用“ic_”前缀后跟上尺寸以及资源的颜色信息 

For example, white accept icon sized at 24dp would be named: 

比如,白色的24dp大小的用于接受动作的图标应该命名如下: 

ic_accept_24dp_white 

黑色用于取消动作的48dp大小的图标命名: 

ic_cancel_48dp_black 

我们使用这样的命名约定方便使用命名来组织drawable资源文件

如果命名中没有颜色和尺寸信息,那么开发者还需要打开drawable文件去查看这些信息。所以这样可以节约我们时间.其他的drawable文件应该使用对应的前缀,如下:

//create by 逆流的鱼yuiop on 2016/9/21 

//blog地址:http://blog.csdn.net/hejjunlin


Type Prefix Example

Selector selector_ selector_button_cancel

Background bg_ bg_rounded_button

Circle circle_ circle_white

Progress progress_ progress_circle_purple

Divider divider_ divider_grey

在Android Studio中这个命名约定依然可以帮助我们将相似的组织到一起 

并清晰的标识出这一文件用作什么 

比如, 命令一个资源为“button_cancel”不能标识任何信息 

这是一个selector资源呢还是一个圆角按钮背景呢? 

正确的命名可以去除所有的引起的模糊不清. 

在创建selector不同状态资源时,也应该使用对应的命名下标:


//create by 逆流的鱼yuiop on 2016/9/21 

//blog地址:http://blog.csdn.net/hejjunlin


State Suffix Example

Normal _normal btn_accept_normal

Pressed _pressed btn_accept_pressed

Focused _focused btn_accept_focused

Disabled _disabled btn_accept_disabled

Selected _selected btn_accept_selected

使用如上清晰的下标绝对明显的标识出了selector状态资源的作用。 

为有颜色和其他标识的资源文件增加下标,使得开发者在打开selector文件时就可以知道不同的selector资源的状态是什么


1.2.2.2 Layout 文件 

在命名布局文件时,应该用android组件的名称作为文件名的前缀,比如:


//create by 逆流的鱼yuiop on 2016/9/21 

//blog地址:http://blog.csdn.net/hejjunlin


Component Class Name Layout Name

Activity MainActivity activity_main

Fragment MainFragment fragment_main

Dialog RateDialog dialog_rate

Widget UserProfileView view_user_profile

AdapterView Item N/A item_follower

注意:如果要创建的布局文件是有多个不同组件使用的,那么应该使用”layout_”前缀 

这样不仅在层级目录中可以很方便的找到文件, 

这样也可以帮助我们定义相应的这个layout布局文件归属的类。


1.2.2.3 Menu Files 

菜单文件不需要使用“menu_”前缀。 

在资源目录下已经有菜单包了,所以这是不必要的。


1.2.2.4 Values Files 

所有的资源文件名必须是复数的,比如: 

attrs.xml, strings.xml, styles.xml, colors.xml, dimens.xml


二、代码相关


2.1 Java语句规则 

2.1.1 绝不要忽略exceptions 

正确的方式是避免没有处理的异常,如下:

//create by 逆流的鱼yuiop on 2016/9/21//blog地址:http://blog.csdn.net/hejjunlinpublic void setUserId(String id) {    try {

        mUserId = Integer.parseInt(id);

    } catch (NumberFormatException e) { }

}

如果这里出现问题,这里不会打印出任何信息,而且也很难debug,只能让人迷惑。 

当catch一个异常时,我们总是需要输出error日志到控制台,用于调试,如果必要的话,需要警告用户这个异常。比如:



这里我们有如下的方式处理出错:


显示一个信息给用户,提示他们这里出错了

设置了一个可能的默认值

抛出了一个合适的异常

2.1.2 不要catch最大的异常(Exception):



为什么不这样做呢? 


在大部分情况下,catch这个大的Exception或者Throwable都是不合适的。(特别是Throwable因为它包含Error的异常。) 

这样意味着你没有期望到的最终要捕获的异常(包括RuntimeExceptions像CLassCastException)都被捕获并在应用层进行error处理,这样是很危险的。 

如果有人在你调用的代码里添加了一个新的类型的异常,编译器不会帮你认识到你需要处理这个不同的错误类型。这是你代码里很难发现的错误处理方式。 

常州东方博宜是一家专注IT,互联网,电脑方面的顶尖培训机构,欢迎社会及院校有志互联网营销,搜索引擎营销的人士,来东方博宜报名学习,互相交流。

常州东方博宜地址:常州天宁区延陵西路2号工人文化宫5号楼

2.新北区太湖东路9-4号常州创意园E12


Powered by 东方博宜教育咨询江苏有限公司  ©2008-2018 www.czos.cn