Android客户端开发规范笔录

概述

此文档是参照《Google Java编程风格指南》编写的。
##特别说明

  1. 在代码中除注释外尽量不要出现中文;
  2. 字符串都从res/values/string.xml中引用;
  3. 色彩值都从res/values/colors.xml中引用;
  4. 尺寸值尽量都维护在res/values/dimens.xml中;
  5. Android studio默认的格式化是遵循《Google Java编程风格指南》,因此,在编写好代码之后,都需要去进行格式(快捷键Ctrl+Alt+L),以确保代码格式的标准化。
    ##命名规范

包命名

域名反写+项目名+模块名,除了模块名可用大小写组合,其它的必须是小写,而且以小写字母开头,例如“demo”项目包命名如下:

  1. 项目包名:com.kevin.demo
  2. view接口子包的包名:com.kevin.demo.iView

类和接口命名

使用大驼峰规则,用名词或名词词组命名,每个单词的首字母大写,以下为几种常用类的命名:

  • activity类,命名以Activity为后缀,如:LoginActivity
  • fragment类,命名以Fragment为后缀,如:ShareDialogFragment
  • service类,命名以Service为后缀,如:DownloadService
  • adapter类,命名以Adapter为后缀,如:CouponListAdapter
  • 工具类,命名以Util为后缀,如:EncryptUtil
  • 模型类,命名以Bean为后缀,如:UserBean
  • 接口实现类,命名以Impl为后缀,如:ApiImpl

方法命名

使用小驼峰规则,用动词命名,第一个单词的首字母小写,其他单词的首字母大写,以下为几种常用方法的命名:

  • 初始化视图控件的方法,命名以init开头,例:initView
  • 初始化成员变量的方法,命名以init开头,例:initData
  • 通过异步加载数据的方法,命名以load开头,例:loadData
  • 按钮点击方法,命名以to开头,例:toLogin
  • 设置方法,命名以set开头,例:setData
  • 具有返回值的获取方法,命名以get开头,例:getData
  • 布尔型的判断方法,命名以is或has,或具有逻辑意义的单词如equals,例:isEmpty

控件缩写

控件名 缩写 控件名 缩写
TextView tv EditText et
Button btn ImageButton ibtn
ImageView imv ListView list
ListView列表项 item ViewPager pager
RadioGroup group RadioButton rbtn
ProgressBar progress SeekBar seek
CheckBox cb Spinner spinner
TableLayout tl TableRow row
TabHost host TabWidget widget
RecyclerView rv Layout l
LinearLayout ll RelativeLayout rl
FrameLayout fl AbsoluteLayout al
ScrollView scroll SearchView search

常量命名

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

  • public final static int PAGE_SIZE = 20;

变量命名

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

  • private TextView tvHeaderTitle; // 标题栏的标题
  • private Button btnLogin; // 登录按钮
  • private UserBean userBean或user; // 用户实例

控件id命名

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

  • tv_header_title //这是标题栏的标题
  • btn_login //登录按钮

layout的命名

组件类型_{范围_}功能,范围可选,只在有明确定义的范围内才需要加上。
以下为几种常用的组件类型命名:

  • activity_{范围_}功能,为Activity的命名格式
  • fragment_{范围_}功能,为Fragment的命名格式
  • dialog_{范围_}功能,为Dialog的命名格式
  • item_list_{范围_}功能,为ListView的item命名格式
  • item_grid_{范围_}功能,为GridView的item命名格式
  • header_list_{范围_}功能,为ListView的HeaderView命名格式
  • footer_list_{范围_}功能,为ListView的FooterView命名格式
  • pw_{范围_}功能,为PopupWindow命名格式
  • v_{范围_}功能,为其它视图控件命名格式

strings的命名

类型_{范围_}功能,范围可选。
以下为几种常用的命名:

  • 页面标题,命名格式为:title_页面
  • 按钮文字,命名格式为:btn_按钮事件
  • 标签文字,命名格式为:label_标签文字
  • 选项卡文字,命名格式为:tab_选项卡文字
  • 消息框文字,命名格式为:toast_消息
  • 编辑框的提示文字,命名格式为:hint_提示信息
  • 图片的描述文字,命名格式为:desc_图片文字
  • 对话框的文字,命名格式为:dlg_文字
  • menu的item文字,命名格式为:action_文字

colors的命名

一款app所需要的颜色通常不会很多,一般有界面背景色、文字、分割线颜色、按钮、功能块间的分割色、对话框背景色、toast背景色、按钮不可操作色、输入框提示文案色hint、item点击背景色。

颜色归纳:

  • 强调色(高亮):一级强调色(深/浅)、二级强调色(深/浅)、三级强调色(深/浅),深浅色主要用于用户操作时的反馈,一级强调色通常是应用主色,即主题色。
  • 主要颜色:黑色、深灰色、灰色、浅灰色、白色、透明度(白色透明度或黑色透明度)。
  • 一些特殊辅助色:根据设计而定,一般不会很多,不然整个App的用色会显得很杂乱。

作用及用色:

作用 用色
界面背景色 强调色、白色、浅灰色
文字颜色 黑色、深灰色、灰色、强调色
分割线 深灰色
功能块间的分割色 浅灰色
对话框背景色 通常类似界面背景色
toast背景色 通常使用系统默认或黑色,又时也会使用App主题色或者应用内定义的提示框背景色
按钮不可操作色 灰色
hint文字色 浅灰色
item点击背景色 浅灰色

Ps:关于强调色,比如微信的纯绿色、支付宝的蓝色和美团的浅绿色。

  • 通用颜色命名:{_作用}_颜色名{_后缀},作用、后缀可选。
  • 特殊颜色命名:前缀{_控件}{_作用}_颜色名{_后缀},控件、作用、后缀可选,但控件和作用至少要有一个。
  • 前缀及后缀标识:
  • 背景颜色,添加bg前缀。如,登录按钮背景色bg_btn_login
  • 文本颜色,添加text前缀。如,登录文本颜色text_login
  • 分割线颜色,添加div前缀。如,list分割线颜色div_list
  • 透明:直接以transparent命名,不必区分色值
  • 半透明:添加transparent_half作为前缀,以色值作为后缀(_色值或者颜色名)。如,白色半透明transparent_half_white
  • 百分比透明度:添加transparent_透明度作为前缀,以色值作为后缀(_色值)。如,白色10%透明度transparent_10_white。关于透明度可参考这篇文章
  • 区分状态时,默认状态的颜色,添加n(normal简写)后缀。如,登录按钮默认颜色bg_btn_login_n
  • 区分状态时,按下时的颜色,添加p(pressed简写)后缀。如,登录按钮按下时颜色bg_btn_login_p
  • 区分状态时,选中时的颜色,添加s(selected简写)后缀如,列表item被选中时背景色bg_list_item_selected
  • 区分状态时,不可用时的颜色,添加dis(disable简写)后缀如,登录按钮不可用是颜色bg_btn_login_dis

drawable的命名

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

  • 图标,添加ic或者icon前缀
  • 背景,添加bg前缀
  • 普通图片,添加img前缀
  • 分隔,添加div前缀
  • 默认,添加def前缀(比如网络图片加载失败,用于默认显示的图片资源)
  • Item类,添加item前缀
  • 区分状态时,默认状态,添加n(normal)后缀
  • 区分状态时,按下时的状态,添加p(pressed)后缀
  • 区分状态时,选中时的状态,添加s(selected)后缀
  • 区分状态时,不可用时的状态,添加dis(disable)后缀
  • 多种状态的,添加selector后缀(一般为ListView的selector或按钮的selector),即selector资源文件的命名

动画文件命名

动画类型_动画方向。

  • fade_in,淡入
  • fade_out,淡出
  • push_down_in,从下方推入
  • push_down_out,从下方推出
  • slide_in_from_top,从头部滑动进入
  • zoom_enter,变形进入
  • shrink_to_middle,中间缩小

library模块下资源命名规范

以用户信息模块为例,模块名为user-info,简写为user,其资源命名如下:

Layout命名规范

module名称简称_资源控件的缩写(_模块)_功能.xml,括号内为可选,如下:

  • user_activity(_模块)_功能.xml,为activity命名规范
  • user_fragment(_模块)_功能.xml,为fragment命名规范
  • user_pw(_模块)_功能.xml,为popupWindow命名规范
  • user_item(_模块)_功能.xml,为item命名规范
  • user_v(_模块)_功能.xml,为自定义控件命名规范

图片资源命名

module名称简称_前缀(_模块)_功能(_状态).png,括号内为可选,如下:

  • 图标:user_ic(_模块)_功能(_状态).png
  • 背景图:user_bg(_模块)_功能(_状态).png
  • 普通图片:user_img(_模块)_功能(_状态).png

Ps:其它资源命名类似图片资源命名规范。

Java代码注释模板

类注释模板

/**
 * Description: 
 * Created by \$user\$ on \$date\$ \$time\$
 */

类注释模板效果

/**
 * Description: 这是类注释,注释内容跟“Description:”之间有一个空格
 * Created by Kevin.Li on 2017/1/6 12:37
 */

方法注释模板

/**
 * 
 * author: \$user\$
 * created at \$date\$ \$time\$
 */

方法注释模板效果

/**
 * 这是方法注释,注释内容跟*号之间有一个空格
 * author: Kevin.Li
 * created at 2017/1/6 12:35
 */

设置注释模板教程链接

你可能感兴趣的:(随笔,android-studio)