博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android开发编程规范
阅读量:4114 次
发布时间:2019-05-25

本文共 1796 字,大约阅读时间需要 5 分钟。



 无规矩不成方圆,国家如此,社会如此,当然我们做开发的也有一定的规范。

编程规范

  •  一些约定

  •  代码规范

  •  命名规范

  ①. Java命名

  ②. 资源命名

  ③. 布局文件中的View id命名

  •  其他规范


  一些约定

  •  类中public方法在前,private在后,所有不对外的方法,变量全部使用private修饰符。类中public static final的常量在最上方,其次private static final,然后public,private等。

  •  类中定义的接口放在变量声明之后,所有方法之前。

  •  方法相关性,方法之间有调用关系的,按照先后顺序排列在一起。

  •  善用空行,方法体之间必须空行,代码逻辑块之间使用空行分隔,变量声明根据变量类型适当空行。

  •  方法体不要过长,尽量提取小方法代替逻辑块,保证代码可读性。

  •  善用TODO,对于未完成或已完成但是方案不完美需后续跟踪的,使用TODO标签标示,并写好注释。

  •  不建议注释太多,要通过方法名,变量名提高代码可读性,而非注释。但是一些非常规方法,复杂逻辑,需要详细注释说明。

  •  协作中,不要做整个代码的格式化,仅格式化自己编写的那部分。

  •  注意命名以及注释英文单词,不要写错~

  •  杜绝“Magic Number”, 所有数值根据情况提取为常量,dimen或constant。

  代码规范

  •  使用Android Studio提供的格式化规范。

  命名规范

  ①. Java命名

分类 命名方式 举例 说明
包名 全小写 com.cicaero.kite 公司域名倒序,“.”分隔,单个包名建议不超过12个字母
类名 首字母大写的驼峰 UserInfo 名词形式
接口名 首字母大写的驼峰 ServerInterface 名字形式
方法名 驼峰 getUserInfo 动词结构,含义为一个动作
常量 全大写,单词下划线分隔 MSG_UPDATE_PROGRESS 建议数值类常量从1开始,且根据功能预留数段
成员变量 m/s/is/has开头的驼峰 mImageUrl 正常成员m开头,静态s开头,布尔型is/has开头
局部变量 首字母小写的驼峰 currentPosition 名词形式,除非是循环,否则不建议使用i,j,k等简单变量名

  2. 资源命名

分类 命名方式 举例 说明
布局 全小写,单词下划线分隔 activity_main.xml Activity以activity开头,Fragment以fragment开头,list、grid项以item开头,Dialog布局以dialog开头,自定义View以layout开头,其他被include的或公用组件,诸如title_bar,bottom_bar,根据实际含义命名
Drawable 全小写,单词下划线分隔 btn_bg.png 根据图片使用方式命名, 图标以ic_开头,背景以_bg结尾,状态drawable xml以_selector结尾。
Color 全小写,单词下划线分隔 green 尽量根据颜色值命名
String 全小写,单词下划线分隔 app_name 模块多且大的话,根据模块建立不同的String xml 文件
style 首字母大写的驼峰 NoTitleTheme 类似类名,style本身也是有类似类的集成关系
dimension 全小写,单词下划线分隔 left_padding  
id 全小写,单词下划线分隔 user_name_tv 详细id命名规范参考以下章节

  3. 布局文件中的View id命名

View 结尾命名规则
TextView tv
Button btn
EditText et
ImageView iv
ImageButton img_btn
RadioButton rb
RadioGroup rg
SeekBar seek
ProgressBar progress
Spinner spinner
VideoView vv
CheckBox cb
ListView lv
GridView grid
Layout lt

  其他规范

  Gradle引入第三方库时comment加上库地址。

转载地址:http://frzpi.baihongyu.com/

你可能感兴趣的文章
springcloud 连续请求 500
查看>>
vue复用新增和编辑表单
查看>>
Ubuntu 16.04 apt-get更换为国内阿里云源
查看>>
laravel部署到宝塔步骤
查看>>
小程序获取access_token
查看>>
navicat远程连接mysql数据库
查看>>
tp5令牌数据无效 解决方法
查看>>
自己的网站与UCenter整合(大致流程)
查看>>
laravel 制作通用的curd 后台操作
查看>>
【小红书2017年笔试】求一个数组中平均数最大的子数组
查看>>
Linux基础系列-定时器与时间管理
查看>>
Linux基础系列-可执行程序的产生过程
查看>>
Linux基础系列-Kernel 初始化宏
查看>>
Linux子系统系列-I2C
查看>>
<iOS>关于自定义description的一点用法
查看>>
Unix 命令,常用到的
查看>>
DLL中建立进程共享数据段需要注意的语法问题
查看>>
服务器端技术----Http请求的处理过程
查看>>
C语言-预处理指令2-条件编译
查看>>
C语言-预处理指令3-文件包含
查看>>