Android 命名规范 (提高代码可以读性)

智能气象站:ESP32驱动的心知天气数据可视化实践 本文详细介绍了基于ESP32微控制器和心知天气API构建智能气象站的完整实践。通过Arduino开发环境,实现天气数据的获取、JSON解析与OLED屏可视化展示,涵盖硬件连接、API配置、低功耗优化及部署问题排查,为物联网开发者提供实用指南。 阅读详情

Android 命名规范 (提高代码可以读性)

前言

android文件众多,根据名称来辨别用途很重要,因此命名要规范

刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时间。如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,命名规范统一尤为重要,最好是团队中统一好大家命名方法,这样对于日后的工作会轻松很多。

在面试的时候,审核一个程序员的编程水平的时候,命名规范也是一大标准,所以,下面我就总结下我从网上别人的经验和自己的感悟中收集总结的android命名规范,希望对大家有所帮助。

PS:在命名规范的统一下,在加上注释,这样日后维护会高效快捷好多。

1、标识符命名法和英文缩写规则

先初略介绍下当前主要的标识符命名法和英文缩写规则:

1.1、标识符命名法

标识符命名法最要有四种:

  • 1、 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写.

  • 2、 帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写.

  • 3、 下划线命名法:单词与单词间用下划线做间隔.

  • 4、匈牙利命名法:广泛应用于微软编程环境中,在以Pascal命名法的变量前附加小写序列说明该变量的类型。 量的取名方式为:<scope_> + <prefix_> + <qualifier>范围前缀,类型前缀,限定词.

个人觉得标识符命名原则:尽可能的用最少的字符而又能完整的表达标识符的含义。

1.2、英文缩写原则:

  • 1、 较短的单词可通过去掉“元音”形成缩写.
  • 2、 较长的单词可取单词的头几个字母形成缩写.
  • 3、 此外还有一些约定成俗的英文单词缩写.

下面为常见的英文单词缩写:

这里写图片描述

程序中使用单词缩写原则:不要用缩写,除非该缩写是约定俗成的。

2、命名规范

2.1、包(packages)的命名规范

采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名

这里写图片描述

2.2、类(classes)的命名规范

名词,采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的, 比如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写。

这里写图片描述

2.3、接口(interface)的命名规范

命名规则与类一样采用大驼峰命名法,多以able或ible结尾,如interface Runnable;interface Accessible 。

2.4、方法(methods)的命名规范

动词或动名词,采用小驼峰命名法例如:onCreate(),run()

这里写图片描述

2.5、变量(variables)的命名规范

采用小驼峰命名法。类中控件名称必须与xml布局id保持一致。

用统一的量词通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。

例如,请使用strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。

这里写图片描述

2.6、常量(Constants)的命名规范

全部大写,采用下划线命名法.例如:MIN_WIDTH

2.7、资源文件(图片drawable文件夹下)的命名规范

全部小写,采用下划线命名法,加前缀区分

命名模式:activity名称_逻辑名称/common_逻辑名称

如果有多种形态如按钮等除外如btn_xx.xml(selector)

这里写图片描述

命名后缀:

这里写图片描述

2.8、资源布局文件(XML文件(layout布局文件))的命名规范

全部小写,采用下划线命名法
- 1).contentview命名, Activity默认布局,以去掉后缀的Activity类进行命名。不加后缀:

功能模块.xml

例如:main.xml、more.xml、settings.xml或者:activity_

功能模块.xml

例如:activity_main.xml、activity_more.xml

  • 2).Dialog命名:dialog_描述.xml

例如:dlg_hint.xml

  • 3).PopupWindow命名:ppw_描述.xml

例如:ppw _info.xml

  • 4). 列表项命名listitem_描述.xml

例如:listitem_city.xml

  • 5).包含项:include_模块.xml

例如:include_head.xml、include_bottom.xml

  • 6).adapter的子布局:功能模块_item.xml

例如:main_item.xml

2.9、动画文件(anim文件夹下)的命名规范

全部小写,采用下划线命名法,加前缀区分。

动画的类型_方向

这里写图片描述

2.10、资源ID(resourcesid)的命名规范

大小写规范与方法名一致,采用小驼峰命名法。
命名规范为资源控件的缩写名+变量名。

注意:页面控件名称应该和控件id名保持一致

strings.xml,colors.xml等中的id命名:

命名模式:activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称

strings.xml中,使用activity名称注释,将文件内容区分开来

2.11、layout中的id命名 的命名规范

命名模式为:view缩写_模块名称_view的逻辑名称
view的缩写详情如下:

这里写图片描述

2.12、activity中的view变量命名 的命名规范

命名模式为:逻辑名称+view缩写

建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view

2.13、styles.xml 的命名规范

将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中;

2.14、使用layer-list和selector

附录

Android编码规范建议(别人弄的觉得蛮有道理)

1.java代码中不出现中文,最多注释中可以出现中文
2.局部变量命名、静态成员变量命名 只能包含字母,单词首字母除第一个外,都为大写,其他字母都为小写
3.常量命名 只能包含字母和,字母全部大写,单词之间用隔开
4.图片尽量分拆成多个可重用的图片
5.服务端可以实现的,就不要放在客户端
6.引用第三方库要慎重,避免应用大容量的第三方库,导致客户端包非常大
7.处理应用全局异常和错误,将错误以邮件的形式发送给服务端
8.图片的.9处理
9.使用静态变量方式实现界面间共享要慎重
10.Log(系统名称模块名称接口名称,详细描述)
11.单元测试(逻辑测试、界面测试)
12.不要重用父类的handler,对应一个类的handler也不应该让其子类用到,否则会导致message.what冲突
13.activity中在一个View.OnClickListener中处理所有的逻辑
14.strings.xml中使用%1$s实现字符串的通配
15.如果多个Activity中包含共同的UI处理,那么可以提炼一个CommonActivity,把通用部分叫由它来处理,其他activity只要继承它即可
16.使用button+activitgroup实现tab效果时,使用Button.setSelected(true),确保按钮处于选择状态,并使activitygroup的当前activity与该button对应
17.如果所开发的为通用组件,为避免冲突,将drawable/layout/menu/values目录下的文件名增加前缀
18.数据一定要效验,例如 字符型转数字型,如果转换失败一定要有缺省值; 服务端响应数据是否有效判断

文章参考

使用GitLab+Drone CI持续集成自动部署web项目,图文详细 kind: pipeline # 定义对象类型,还有secret和signature两种类型 type: docker # 定义流水线类型,还有kubernetes、exec、ssh等类型 name: mall-tiny-drone # 定义流水线名称 steps: # 定义流水线执行步骤,这些步骤将顺序执行 - name: package # 流水线名称 image: maven:3-jdk-8 # 定义创建容器的Docker镜像 volumes: # 将容器内目录挂载到宿主机,仓库 阅读详情

相关推荐

4D Gaussian Splatting for Real-Time Dynamic Scene Rendering-4DGS阅读笔记

为了实现实时动态场景渲染,同时还能具备较高的训练和存储效率,作者提出了四维高斯溅射(4D-GS)方法,将其作为动态场景的一种整体表示方式,而不是对每个单独的帧应用三维高斯溅射(3D-GS)方法。在 4D-GS 中,提出了一种新颖的显式表示方法,它同时包含三维高斯模型和四维神经体素。受 HexPlane 启发,提出了一种分解的神经体素编码算法,以高效地从四维神经体素构建高斯特征,然后应用一个轻量级多层感知器(MLP)来预测在新时间戳下的高斯变形。

2403_85515624的博客 2343

命名规范。

标识符命名法标识符命名法最要有四种: 1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。 2 帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写 3 下划线命名法:单词与单词间用下划线做间隔。 4 匈牙利命名法:广泛应用于微软编程环境中,在以Pascal命名法的变量前附加小写序列说明该变量的类型。 量的取名方式为:<s...

weixin_30642561的博客 123

华为AR3260路由器NAT回流配置实战:从WEB界面到命令行的完整避坑指南

本文详细解析了华为AR3260路由器NAT回流(Hairpin NAT)的配置原理与实战方法。针对内网用户无法通过公网地址访问内部服务器的常见问题,文章不仅剖析了WEB界面配置的常见报错原因,更提供了清晰、可靠且一劳永逸的命令行(CLI)配置方案与排错指南,帮助企业网络工程师彻底解决内外网访问不一致的难题。

u6v7w8x的博客 874

Android 命名规范 (提高代码可以读性)-最全的安卓代码规范

Android 命名规范 (提高代码可以读性)  刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时间。如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,...

Jaylon Wang的专栏 381

openGauss学习笔记-280 openGauss性能调优-实际调优案例09-修改启动参数解决TPCC大幅度波动

openGauss学习笔记-280 openGauss性能调优-实际调优案例09-修改启动参数解决TPCC大幅度波动280.1 现象描述280.2 优化分析 openGauss学习笔记-280 ope

超哥的博客 308

利用SIMULINK搭建一个16QAM调制解调收发系统

1发送模块设计 根据前面介绍的理论知识,我们可以知道16QAM的基本结构,首先我来设计QAM发送段的SIMULINK仿真模块。 图1 16QAM的发送端模块 他的基本工作流程为:将信号通过两路升余弦滤波器,得到滤波以后的信号,滤波器的作用就是为了防止码间干扰。然后将滤波以后的信号和SIN,COS相乘得到调制信号,将调制 下面一一介绍每个模块的具体参数设置以及各个部分信号的波形图。 图2 产生随机数据的信号源 第一部分信号是产生一组随机的数字,作为信源,第二个模块将信号...

FPGA/MATLAB学习教程/源码/项目合作开发 4776

Android 代码命名规范 -- 提高代码可以读性

项目是团队分工合作,代码可读性非常重要,在开发过程中,命名规范统一尤为重要,最好是团队中统一好大家命名方法,这样对于日后的工作会轻松很多。        在面试的时候,审核一个程序员的编程水平的时候,命名规范也是一大标准,所以,下面我就总结下我从网上别人的经验和自己的感悟中收集总结的android命名规范,希望对大家有所帮助。        提醒:在命名规范的统一下,在加上注释,这样日

D调的华丽 859

手搓UDS Bootloader|全网独家复现0x10诊断会话控制、详解会话跳转规则与S3超时机制、助力ECU在线刷写、固件迭代、车规安全升级落地

在车载UDS诊断(ISO 14229)与Bootloader固件升级架构中,0x10诊断会话控制服务是所有高级诊断、固件刷写功能的前置核心与权限管控入口,属于UDS基础必实现服务。车载ECU通过分级会话模式,隔离常规故障诊断、高级标定、固件重编程等高、低权限操作,从协议层面保障车载电控系统的安全性与稳定性。多数嵌入式开发者开发UDS Bootloader时,仅简单实现会话切换报文应答,未吃透会话强制跳转规则、S3安全超时机制、会话权限绑定、APP在线刷写跳转逻辑。

getusushu的博客 465

Android 命名规范 (提高代码可以读性)(1)

各行各样都会淘汰一些能力差的,不仅仅是IT这个行业,所以,不要被程序猿是吃青春饭等等这类话题所吓倒,也不要觉得,找到一份工作,就享受安逸的生活,你在安逸的同时,别人正在奋力的向前跑,这样与别人的差距也就会越来越遥远,加油,希望,我们每一个人,成为更好的自己。BAT大厂面试题、独家面试工具包,资料包括 数据结构、Kotlin、计算机网络、Framework源码、数据结构与算法、小程序、NDK、Flutter《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取。

2401_84148974的博客 1359

智慧安防:基于Java+YOLOv8的视频AI识别平台设计与实现

张工,我们的园区智慧安防项目又出问题了!用Python写的YOLOv8 demo,拉3路RTSP流就卡,视频延迟超过5秒,入侵检测误报率太高,一到晚上光线差就全是误报,而且和我们的Java安防平台对接太麻烦,还要搭个消息队列,架构复杂得要死!“别慌,用Java+YOLOv8啊!

2601_94871597的博客 196

YOLOv13改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计

实时检测器架构的轻量级设计GsConv。

Limiiiing的博客 91

Android开发命名规范提高代码可以读性

先初略介绍下当前主要的标识符命名法和英文缩写规则:(这段别人那边借鉴的) 在讲解命名规范前,先初略介绍下当前主要的标识符命名法和英文缩写规则。标识符命名法标识符命名法最要有四种:1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。2 帕斯卡(pascal...

chuntianlong5227的博客 104

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Android 命名规范 (提高代码可以读性) 转

转自:http://blog.youkuaiyun.com/vipzjyno1/article/details/23542617 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件 什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时间。如果就是我一个人开发,一个人维护的话还 好,可是如果一个项目是团队分工合作,这样让你的同事去看...

SharkArmy 67

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

android接口类命名规范_Android 命名规范 (提高代码可以读性)

刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时间。如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,命名规范统一尤为重要,最好是团队中统一好大家命名方法...

weixin_39692847的博客 274

Android 命名规范 (提高代码可以读性),android高级面试题pdf

建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view。13.styles.xml:将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中;命名模式:activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称。strings.xml中,使用activity名称注释,将文件内容区分开来。1.java代码中不出现中文,最多注释中可以出现中文。

2401_84149882的博客 808
上一篇: Permissions and permission groups.
下一篇: Android ORM 框架之 greenDAO
YLBF_DEV
博客等级 码龄12年 30粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值