Android接口一般定义格式,Android开发规范

原标题:Android开发规范

一.书写规范

1. 编码方式统一用UTF-8.

2. 花括号不要单独一行,和它前面的代码同一行。而且,花括号与前面的代码之间用一个空格隔开。

3. 空格的使用

if、else、for、switch、while等逻辑关键字与后面的语句留一个空格隔开。

运算符两边各用一个空格隔开。

方法的每个参数之间用一个空格隔开。

4.空行的使用

将逻辑相关的代码段用空行隔开,以提高可读性。空行也只空一行,不要空多行。在以下情况需用一个空行:

两个方法之间

方法内的两个逻辑段之间

方法内的局部变量和方法的第一条逻辑语句之间

常量和变量之间

5.当一个表达式无法容纳在一行内时,可换行显示,另起的新行用8个空格缩进。

6.一行声明一个变量,不要一行声明多个变量,这样有利于写注释。

7.使用快捷键进行代码自动格式化。

Windows:CTRL+ALT+L

Mac:OPTION+COMMAND+L

8.一个方法最多不要超过40行代码。

9.范围型的常量用枚举类定义,而不要直接用整型或字符,这样可以减少范围值的有效性检查。

10.文字大小的单位统一用sp,元素大小的单位统一用dp。

11. 应用中的字符串统一在strings.xml中定义,然后在代码和布局文件中引用。

12. 颜色值统一在colors.xml中定义,然后在代码和布局文件中引用。另外,不要在代码和布局文件中引用系统的颜色,除了透明。

二.命名规范

1. 包命名

域名反写+项目名称+模块名称,全部单词用小写字母。

2. 类和接口命名

使用大驼峰规则,用名词或名词词组命名,每个单词的首字母大写。

以下为几种常用类的命名:

activity类,命名以Activity为后缀,如:LoginActivity

fragment类,命名以Fragment为后缀,如:ShareDialogFragment

service类,命名以Service为后缀,如:DownloadService

adapter类,命名以Adapter为后缀,如:CouponListAdapter

工具类,命名以Util为后缀,如:EncryptUtil

模型类,命名以BO为后缀,如:CouponBO

接口实现类,命名以Impl为后缀,如:ApiImpl

3. 方法命名

使用小驼峰规则,用动词命名,第一个单词的首字母小写,其他单词的首字母大写。

以下为几种常用方法的命名:

初始化方法,命名以init开头,例:initView

按钮点击方法,命名以to开头,例:toLogin

设置方法,命名以set开头,例:setData

具有返回值的获取方法,命名以get开头,例:getData

通过异步加载数据的方法,命名以load开头,例:loadData

布尔型的判断方法,命名以is或has,或具有逻辑意义的单词如equals,例:isEmpty

4. 控件缩写

8ba4c37e3fa642585b0a0b2e5d878ae7.png

5. 常量命名

全部为大写单词,单词之间用下划线分开。

1

publicfinalstaticintPAGE_SIZE =20;

6. 变量命名

{范围描述+}意义描述+类型描述的组合,用驼峰式,首字母小写。

1

2

3

privateTextView headerTitleTxt;// 标题栏的标题

privateButton loginBtn;// 登录按钮

privateCouponBO couponBO;// 券实例

7. 控件id命名

控件缩写_{范围_}意义,范围可选,只在有明确定义的范围内才需要加上。

1

2

3

4

5

6

7

8

9

android:id="@+id/txt_header_title"

... />

android:id="@+id/btn_login"

... />

8. layout命名

组件类型_{范围_}功能,范围可选,只在有明确定义的范围内才需要加上。

以下为几种常用的组件类型命名:

activity_{范围_}功能,为Activity的命名格式

fragment_{范围_}功能,为Fragment的命名格式

dialog_{范围_}功能,为Dialog的命名格式

item_list_{范围_}功能,为ListView的item命名格式

item_grid_{范围_}功能,为GridView的item命名格式

header_list_{范围_}功能,为ListView的HeaderView命名格式

footer_list_{范围_}功能,为ListView的FooterView命名格式

9. strings的命名

类型_{范围_}功能,范围可选。

以下为几种常用的命名:

页面标题,命名格式为:title_页面

按钮文字,命名格式为:btn_按钮事件

标签文字,命名格式为:label_标签文字

选项卡文字,命名格式为:tab_选项卡文字

消息框文字,命名格式为:toast_消息

编辑框的提示文字,命名格式为:hint_提示信息

图片的描述文字,命名格式为:desc_图片文字

对话框的文字,命名格式为:dialog_文字

menu的item文字,命名格式为:action_文字

10. colors的命名

前缀{_控件}{_范围}{_后缀},控件、范围、后缀可选,但控件和范围至少要有一个。

背景颜色,添加bg前缀

文本颜色,添加text前缀

分割线颜色,添加div前缀

区分状态时,默认状态的颜色,添加normal后缀

区分状态时,按下时的颜色,添加pressed后缀

区分状态时,选中时的颜色,添加selected后缀

区分状态时,不可用时的颜色,添加disable后缀

11. drawable的命名

前缀{_控件}{_范围}{_后缀},控件、范围、后缀可选,但控件和范围至少要有一个。

图标类,添加ic前缀

背景类,添加bg前缀

分隔类,添加div前缀

默认类,添加def前缀

区分状态时,默认状态,添加normal后缀

区分状态时,按下时的状态,添加pressed后缀

区分状态时,选中时的状态,添加selected后缀

区分状态时,不可用时的状态,添加disable后缀

多种状态的,添加selector后缀(一般为ListView的selector或按钮的selector)

12. 动画文件命名

动画类型_动画方向。

fade_in,淡入

fade_out,淡出

push_down_in,从下方推入

push_down_out,从下方推出

slide_in_from_top,从头部滑动进入

zoom_enter,变形进入

三.注释规范

1. 文件头注释

文件顶部统一添加版权声明,声明的格式如下:

1

2

3

/**

* Copyright (c) 2015. Keegan小钢 Inc. All rights reserved.

*/

2. 类和接口注释

类和接口统一添加javadoc注释,格式如下:

1

2

3

4

5

6

/**

* 类或接口的描述信息

*

* @author ${USER}

* @date ${DATE}

*/

3. 方法注释

下面几种方法,都必须添加javadoc注释,说明该方法的用途和参数说明,以及返回值的说明。

接口中定义的所有方法

抽象类中自定义的抽象方法

抽象父类的自定义公用方法

工具类的公用方法

1

2

3

4

5

6

7

8

9

10

/**

* 登录

*

* @param loginName 登录名

* @param password 密码

* @param listener 回调监听器

*/

publicvoidlogin(String loginName, String password,

ActionCallbackListener listener);

4. 变量和常量注释

下面几种情况下的常量和变量,都要添加注释说明,优先采用右侧//来注释,若注释说明太长则在上方添加注释。

接口中定义的所有常量

公有类的公有常量

枚举类定义的所有枚举常量

实体类的所有属性变量

1

2

3

4

5

6

7

8

publicstaticfinalintTYPE_CASH =1;// 现金券

publicstaticfinalintTYPE_DEBIT =2;// 抵扣券

publicstaticfinalintTYPE_DISCOUNT =3;// 折扣券

privateintid;// 券id

privateString name;// 券名称

privateString introduce;// 券简介

shrink_to_middle,中间缩小

来自:Android实战开发

程序员共读整理发布,转载请联系作者获得授权返回搜狐,查看更多

责任编辑:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558458.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++将小写转换为大写函数_必须掌握的基础函数组合应用技巧,提高效率,准时下班...

点击上方"Excel函数公式"免费订阅货币,生活中必不可少的东西,是物品价值等的直接体现,在实际的工作中也经常遇到,如果给定的数据中,要对其进行格式的设置,你会怎么做?一、Dollar函数&…

jenkins使用哪个版本号_Linux下安装JDK及jenkins

往期相关文章推荐:Linux ping不通域名安装JDK依赖(8/11)一.(推荐)// 查看yum仓库中可安装的jdk版本yum -y list java*// 安装示例yum install -y java-1.8.0-openjdk-devel.x86_64java --version 二.1.获取JDK安装包,可以win下下载,再用scp…

骁龙660鸿蒙系统,骁龙660双摄测试机偷跑 核心数/GPU证实

中关村在线消息:高通会在今年推出一款全新的中端处理器——骁龙660。此前有网友在微博上曝光一组疑似骁龙660的跑分,安兔兔总成绩为105576分。现在,微博上又出现搭载骁龙660双摄工程机的谍照,该机支持2K分辨率,采用6GB…

tensorflow 模型可视化_基于tensorflow-2.x的yolov3实现

YOLO v3可以说是单阶段检测器中的佼佼者,融合了多个框架的优势,在保持模型简洁性的同时,性能上也在当时达到了stoa。YOLO v3的主干网络是darknet-53的前面的52层,所以它是一个全卷积网络,并且为了降低池化带来的梯度负…

android闹钟延时,android闹钟定时启动延时或者直接不启动

自己写的android闹钟功能,需要实现timepicker选择完成后将选择的时间设定为闹钟的启动时间,但是不管怎么改总是没法定时启动alertDialog new AlertDialog.Builder(context).setView(view).setCustomTitle(viewTitle).setNegativeButton("确定"…

switch语句可以被代替吗_爬楼梯可以代替跑步吗?

转载:有很多人在下雨天选择爬楼梯作为运动方式,前几天就有人问老王:爬楼梯可以代替跑步吗?爬楼梯是在一个坡度上下移动,上楼梯时,腿部需要承受自身体重1.5-2.5倍的重量;下楼梯时则要承受自身体重…

gsonformat插件_吐血推荐珍藏的IDEA插件

之前给大家推荐了一些我自己常用的VS Code插件,很多同学表示很受用,并私信我说要再推荐一些IDEA插件。作为一名职业Java程序员/业余js开发者,我平时还是用IDEA比较多,所以也确实珍藏了一些IDEA插件。今天就一并分享给大家。在最开…

html城市手机搜索,原生js实现html手机端城市列表索引选择城市

本文实例为大家分享了js实现手机端城市列表索引选择城市的具体代码,供大家参考,具体内容如下html部分:定位城市上海市css部分:*{margin: 0;padding: 0;list-style: none;}html{font-size: 12px;}body {background-color: #f5f5f5;…

html 图片使用scale,缩放:scale() - CSS3 | 绿叶学习网

在CSS3中,我们可以使用transform属性的scale()方法来实现元素的缩放效果。缩放,指的是“缩小”和“放大”的意思。语法:transform: scaleX(x); /*沿X轴方向缩放*/transform: scaleY(y); /*沿Y轴方向缩放*/transform: scale(x, y); /*沿X轴和Y…

dbeaver无法修改表数据_隐藏彩蛋:你知道python有一个内置的数据库吗?

全文共2520字,预计学习时长7分钟如果你是软件开发人员,相信你一定知道甚至曾经使用过一个非常轻量级的数据库——SQLite。它几乎拥有作为一个关系数据库所需的所有功能,而且这些有功能都保存在一个文件中。下面是一些官方网站显示可以使用SQL…

批量删除HTML链接软件,3种方法教你一次性删除word文档中的所有超链接

您可能感兴趣的话题:Word核心提示:在编辑文档时,可能会在文档以外复制一些内容进来,但是总会有一些烦人的链接很难去掉。或是WORD 从网上下了一些资料,存到 word 里面,里面很多文字和图片都带有超链接。下面小编就为大家介绍3种方…

一文道破Java中的深拷贝,浅拷贝,零拷贝

前言 在Java编写代码中,对象的拷贝是一个常见的操作。根据拷贝的层次和方式不同,可以分为深拷贝、浅拷贝和零拷贝。本篇文章我们将详细介绍这三种拷贝方式的概念、实现方法以及使用场景,方便大佬学习及面试。 深拷贝 深拷贝是一种创建对象副…

关键词热度分析工具_谷歌SEO推广排名的关键要素(一)利用谷歌关键词分析工具分析关键词...

大家好,我是谷歌鸿飞,到今年算起,从业谷歌SEO,已经十一个年头了。服务过的外贸企业也有几百家,接触和操作过外贸产品也有上千种。这么多的企业,这么多的产品,思绪万千,不知如何下笔。…

计算机桌面设置定时,如何设置可以每月自动变化的日历桌面?

设置步骤:1、显示电脑桌面(即把所有窗口都最小化);2、Windows Xp和Windows 2000设置有些不同:(windows vista好像不能设置活动桌面)Windows xp:在电脑桌面点击鼠标右键,出现菜单,选择“属性”,然…

系统辨识理论及应用_控制理论学习书单推荐(值得一读)

经 System control 授权,基于控制理论学习书单整理改编。提起系统与控制领域的学习,经常被谈论到的就是,对于刚接触这个领域的初学者总会在各种控制理论中迷茫,有的甚至直接劝退。面对众多理论,完全无从下手。下面就简…

正则只能小于0负数_2019–2020学年七年级数学期末考试考点之正数与负数考点详解...

七年级数学期末考试第一讲之正数与负数考点详解嗨,大家好,这里是摆渡学涯。马上我们就要迎来期末考试了,你们有没有开始复习呢?这次课程咱们来为大家讲一下数的考点,教你轻松学数学。数的概念数从是否为正负数的角度来…

controller接收json数据_SpringMVC实现多种数据类型绑定

点击上方“放学等我”,选择“置顶公众号”精品文章,第一时间送达绑定基本数据类型Java基本数据类型int的默认值是0,在使用int进行url传递参数时,参数key是必须写的,其值也只能是int类型的,否则将会报错。 比…

宝塔设置thinkphp的伪静态_宝塔面板与WDCP狭路相逢,谁才是国产之光?

我本来想给大家写一篇工具类的杂谈,思来想去又想到了可视化面板,就目前国产面板而言,WDCP、宝塔面板、AMH等,说是群雄逐鹿一点都不为过,AMH4.2之后,可以说是走了相当一部分人,暗示收费版本&…

计算机桌面打标签,在电脑桌面上添加便签的方法步骤详解(2)

电脑的桌面便签软件推荐1、CintaNotes电脑的桌面便签软件推荐图1CintaNotes是一款非常轻巧实用的笔记软件,可看作EverNote轻量级替代品。CintaNotes只需1个exe,体积仅1MB,却拥有EverNote易于收集、实时搜索、条状排列、tag分类的优点,更有EverNote 所不具备的中文搜索、纯文本更…

windows。forms.timer设置第一次不等待_适用于初学者的中线交易策略——金叉的三种设置条件...

本文将介绍了使用移动平均线最重要的方法之一——金叉。我们将描述该信号的产生条件,然后深入探讨一下三个交易案例。什么是金叉?当短期移动平均线与长期移动平均线相交时,黄叉就会产生。听起来确实很简单。然而,关键是构成交叉的移动平均线…