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

2023-11-18

原标题: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实战开发

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

责任编辑:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android接口一般定义格式,Android开发规范 的相关文章

  • ARM之未定义指令异常和SVC异常

    异常向量表的概述 在上一章 我们学习了建立异常向量表 这里我们可以通过看arm的手册 我们每一种异常都对应一个工作模式 下面我就来尝试触发一下未定义指令异常和SVC异常 异常发生的说明 简单的来说就是先保存现场 之后恢复现场 保存现场 我们
  • 第一章 计算机系统概论

    一 计算机系统简介 1 计算机软硬件概念 计算机是一种能够执行指令的电子设备 它由硬件和软件两部分组成 计算机硬件是指计算机系统中的物理组件 包括中央处理器 CPU 内存 硬盘 输入设备 如键盘 鼠标 输出设备 如显示器 打印机 等 这些硬
  • windows10安装RDKit化学信息学python库(通过anaconda)

    RDKit是一款功能强大的化学信息学工具 推荐使用anaconda安装 安装时应当参考 1 官方安装指南 Rdkit Anaconda org 2 中文教程 RDKit简介 RDKit 中文教程 2020 09 文档 chenzhaoqia
  • python爬虫之数据解析

    python爬虫之数据解析 正则表达式 bs4 xpath 主要运用在聚焦爬虫模块中 涉及到的数据解析方法有 正则表达式 bs4以及xpath 1 使用对象 聚焦爬虫 聚焦爬虫 爬取页面中指定的页面内容 2 数据解析原理概述 解析的局部的文
  • word在另外计算机格式不对,为什么word 2007文件在不同电脑上排版显示不同?应该如何解决?...

    为什么word文件在不同电脑排版显示不同 最近打印论文 自己的笔记本是word2007 保存的通用格式 预览排版没有问题 去打印店打印时 发现插入的图片窜行了 幸亏即使调整过来 并且保存 但拿回自己的笔记本打开后图片的位置还是窜行的 请问这
  • iOS中堆和栈的使用(Swift)

    堆和栈都是一种数据项按序排列的数据结构 只能在一端 称为栈顶 top 对数据项进行插入和删除 堆 队列优先 先进先出 FIFO first in first out 栈 先进后出 FILO First In Last Out 堆栈空间分配
  • 手机APP远程温湿度监控系统(连上公网、阿里云)

    APP界面 实物图 操作演示 一 硬件电路图 这里有两点需要说明 1 第一点是关于LCD1602需不需要加上拉电阻的说明 51单片机P0口作为IO口输出时 输出低电平为0 输出高电平为高组态 并非5V 相当于悬空状态 也就是说P0 口不能真
  • 【蓝桥杯Python组】寻找2020

    寻找2020 题目描述 小蓝有一个数字矩阵 里面只包含数字 0 和 2 小蓝很喜欢 2020 他想找到这个数字矩阵中有多少个 2020 小蓝只关注三种构成 2020 的方式 同一行里面连续四个字符从左到右构成 2020 同一列里面连续四个字
  • matlab中 hold on 与 hold off,figure作用

    hold on是当前轴及图像保持而不被刷新 准备接受此后将绘制的图形 多图共存 即启动图形保持功能 当前坐标轴和图形都将保持 从此绘制的图形都将添加在这个图形的基础上 并自动调整坐标轴的范围 hold off使当前轴及图像不再具备被刷新的性
  • moviepy音视频剪辑:视频剪辑基类VideoClip详解

    前往老猿Python博文目录 一 概述 在 moviepy音视频剪辑 moviepy中的剪辑基类Clip详解 和 moviepy音视频剪辑 moviepy中的剪辑基类Clip的属性和方法详解 介绍了剪辑相关类及类关系 可以看到视频剪辑类Vi
  • 汽车电子行业静态分析和代码审查规则

    汽车电子行业静态分析和代码审查规则 查了很多编码规则大都是PDF版 最终我整理出了几份word版的 并且帮大家排版好了可直接用于书写测试大纲或报告 下载链接在我的下载中 规则包含以下 1 MISRA C 2012 2 MISRA C 200
  • Node.js入门 03:模块化规范 CommonJS 与 ES Module

    文章目录 目的 CommonJS 基础使用 module 对象 require 方法 ES Module 混合使用 总结 目的 传统的用在网页中的JavaScript代码文件与文件之中的内容都是全局相互可见的 这对于大型项目特别是多人合作的
  • 领域驱动设计:DDD分层架构

    文章目录 DDD 分层架构 DDD 分层架构最重要的原则 DDD 分层架构推动架构演进 三层架构如何演进到 DDD 分层架构 微服务架构模型有好多种 例如整洁架构 CQRS 和六边形架构等等 每种架构模式虽然提出的时代和背景不同 但其核心理
  • 近一月翻阅资料小结

    近一个月接触的东西比较多 梳理一下 Nginx Tomcat 实现负载均衡 同时采用keepalived的形式实现HA 负载后 关键问题就是session共享的问题 可实现的思路较多 Tomcat6以后本身可以使用cluster技术达成 也
  • 训练自己的ai模型(三)学习笔记与项目实操(一些概念理解杂谈)

    ai模型大火 作为普通人 我也想做个自己的ai模型 训练自己的ai模型通常需要接下来的的六步 一 收集和准备数据集 需要收集和准备一个数据集 其中包含想要训练模型的数据 这可能需要一些数据清理和预处理 以确保数据集的质量和一致性 二 选择和
  • PTA——7-3 两个数的简单计算器

    输入格式 输入整数A 符号ch和整数B 输出格式 根据符号ch 在一行中输出A ch B的值 如果ch是 则输出A B的值 如果ch是 则输出A B的值 如果ch是 则输出A B的值 如果ch是 则输出A B的值 题目保证B不为0 并且结果
  • C++泛型编程:源起、实现与意义

    C 泛型编程 源起 实现与意义 为什么泛型泛型编程 Generic Programming 最初提出时的动机很简单直接 发明一种语言机制 能够帮助实现一个通用的标准容器库 所谓通用的标准容器库 就是要能够做到 比如用一个List类存放所有可
  • [Linux]日志文件已删掉磁盘空间不释放,不重启服务进程的解决方法

    Linux 日志文件已删掉磁盘空间不释放 不重启服务进程的解决方法 问题背景 服务进程启动后 后台会有写日志的操作 当服务进程还没停掉 日志就会一直在写 这时候手动删除日志 会造成日志在linux该目录下已经删除 但是磁盘空间不会被释放掉
  • C语言函数操作大全----(超详细)

    fopen 打开文件 相关函数 open fclose 表头文件 include

随机推荐

  • MAC电脑常用效率工具推荐

    作者主页 IT技术分享社区 作者简介 大家好 我是IT技术分享社区的博主 从事C Java开发九年 对数据库 C Java 前端 运维 电脑技巧等经验丰富 个人荣誉 数据库领域优质创作者 华为云享专家 阿里云专家博主 个人博客 IT技术分享
  • supervisor系列:3、配置文件

    supervisor系列 3 配置文件 文章目录 supervisor系列 3 配置文件 1 文件格式 1 1 环境变量 2 unix http server 段设置 2 1 unix http server 段的值 2 2 unix ht
  • VS中Qt中ui文件和生成.h文件问题

    vs中的ui的ui xxxx h头文件是由Qt通过编译生成 vs项目属性中配置环境调用Qt安装目录下bin目录下的uic exe来自动生成代码 如果移动工程目录 而之前又把相关的ui xxx h头文件添加到工程或移动其位置 那么再次修改ui
  • sketchup 255个su常用插件)_「教程」巧用Rhino和SU,做出你想要的地形效果

    Xiao素材 地形建模教程 本期精选 教你如何做好地形效果图 1 SU部分 地形效果 SU插件安装小教程 su软件是我们现在经常会使用到的一个软件 但是在我们作图的过程中会发现 很多情况下 相对于一些复杂的图形我们需要依赖相关的插件 比如
  • python递归函数代码_Python递归函数 二分查找算法实现解析

    一 初始递归 递归函数 在一个函数里在调用这个函数本身 递归的最大深度 998 正如你们刚刚看到的 递归函数如果不受到外力的阻止会一直执行下去 但是我们之前已经说过关于函数调用的问题 每一次函数调用都会产生一个属于它自己的名称空间 如果一直
  • Kubernetes + Dashboard 集群搭建

    1 环境说明 基于kubeadm工具部署k8s 集群 还有基于二进制的部署方式但是需要单独部署k8s的每个组件比较繁琐 kubeadm是 Kubernetes官 提供的 于快速部署Kubernetes集群的 具 基于Kubernetes v
  • OC中的分类与类扩展

    在OC中 对于已有的类进行扩展 我们有两种方式 1 在原始类的定义中 进行代码扩展 2 通过继承的方式 扩展子类 3 使用分类的方式 第一 二种方式不用多说 第三种方式则是OC中比较有特色的功能 分类允许我们在不更改类的原始代码的情况下 实
  • 接口设计之幂等性设计

    幂等性设计 今天我们来聊聊接口的幂等性设计 所谓幂等 就是任意多次执行所产生的影响均与一次执行的影响相同 幂等性接口是指可以使用相同参数重复执行 并能获得相同结果的接口 这里就不展开数学中的定义了 有兴趣的可以自行google 为什么接口需
  • 关于mysql_free_result和mysql_close的解惑

    之前用mysql的时候一直是在用短链接 调用mysql store result获取一次数据之后就直接调用 以下是代码片段 mysql free result m result mysql close m Database 但是有两个问题
  • 找个好用的录屏软件,怎么这么难?

    真的要被录屏软件给搞疯了 本来公司说要给新人做个培训视频 想着把视频录屏一下 然后简单的剪辑一下就可以了 可谁知道录屏软件坑这么多 弄来弄去头都秃了 不过在头秃了几天之后 终于让我发现了一个值得 私藏 的录屏软件 咱就说这是什么神仙软件 把
  • 编码器测速,获取实际速度

    本例程中使用的电机为带霍尔编码器的减速电机 电机由三部分组成 减速器 电机以及霍尔编码器 霍尔编码器工作原理 霍尔编码器通过电磁转换 将机械的位移转化为脉冲信号 并且输出A B两相的方波信号 A B两相脉冲信号相位相差90 通过检测规定时间
  • Android Studio快捷键从Mac OS改为Win

    原理将Mac的Control映射为Command Command映射为Option Option映射为control 这样与win的快捷键按键习惯应该相同 未长时间测试
  • iOS App上传到苹果应用市场构建版本的图文教程

    使用hbuilderx的h5 或uniapp框架写的前端 进行云打包ios应用 会生成一个ipa后缀的应用文件 这个文件是没有办法像安卓应用那样直接安装在手机上面的 需要上架到苹果应用商店 用户才能下载安装使用 因此 我们这篇文章讲详细介绍
  • 5G基础信令

    一 4 5G高层协议规范框架对比 4G 5G 36 300 LTE整体 38 300 NR整体 36 401 E URTAN整体架构 38 401 NG RAN整体架构 36 321 LTE MAC 38 321 NR MAC 36 322
  • Dockerfile部署mysql并初始化

    文件目录结构 Dockerfile FROM centos 7 ADD jdk 8u261 linux x64 tar gz usr local ADD check mysql sh home datasong release bin CO
  • Gogs使用详解

    Gogs使用介绍 Gogs是一款类似Github 国内有码市 的开源文件 代码管理系统 基于Git 目前功能基本介绍 远程代码仓库管理 代码仓库权限分配 管理 团队管理 代码审查 1 注册 2 基本功能介绍 主面板说明 图中 表示自己个人账
  • 【测试入门】测试用例经典设计方法 —— 因果图法

    01 因果图设计测试用例的步骤 1 分析需求 阅读需求文档 如果User Case很复杂 尽量将它分解成若干个简单的部分 这样做的好处是 不必在一次处理过程中考虑所有的原因 没有固定的流程说明究竟分解到何种程度才算简单 需要测试人员根据自己
  • 直线检测方法—LSD论文翻译

    附原文链接 LSD a Line Segment Detector 摘 要 LSD是一个线段检测器 能够在线性时间内得到亚像素级精度的检测结果 它无需调试参数就可以适用于任何数字图像上 并且能够自我控制错误数量的检测 平均来说 一个图像中允
  • Bazel install Tips

    Bazel Fast Correct Choose two Build and test software of any size quickly and reliably Speed up your builds and tests Ba
  • Android接口一般定义格式,Android开发规范

    原标题 Android开发规范 一 书写规范 1 编码方式统一用UTF 8 2 花括号不要单独一行 和它前面的代码同一行 而且 花括号与前面的代码之间用一个空格隔开 3 空格的使用 if else for switch while等逻辑关键