Android代码规范总结

作者: 奔跑吧李博 | 来源:发表于2017-12-26 16:50 被阅读185次
    image.png

    每当看到github上优秀的项目代码时,那简直就比掏耳朵还享受。写代码如同写文章,代码时开发者的颜值,正所谓没有丑女人,只有懒女人,漂亮的代码也需要我们去精心装饰。简洁规范的代码对个人,对团队,对下一个代码接盘者,是一种责任,也是一种专业的体现。

    命名规范:

    • 类的命名:使用大驼峰法,同时需要根据类的作用引入Android相关命名规则,使用类的类型作为前缀或后缀,示例:
      Activity类:xxxActivity
      Fragment类:xxxFragment
      Service类:xxxService
      工具类:xxxUtil
      Adapter类,xxxAdapter
      基类,Basexxx

    • 布局文件命名:
      布局文件命名规则使用“前缀_逻辑名”方式,单词全小写,示例:
      Activity布局文件命名:activity_xxx
      Fragment布局文件命名:fragment_xxx
      自定义控件布局文件命名:view_xxx
      Dialog布局文件命名:dialog_xxx
      列表项布局文件命名:item_xxx

    • 资源文件命名:
      资源文件命名规则使用“前缀模块名功能名”方式,单词全小写,示例:
      我的个人设置textview,用tv_me_setting
      登录按钮,用btn_login
      图标命名以ic为前缀,形如ic_xxx
      背景图片命名以bg为前缀,形如bg_xxx
      背景样式shape形如shape_xxx
      背景选择器selector形如selector_xxx

    • 命名结构

    1. 枚举常量用逗号隔开,换行可选:
    public enum NetWorkState {
        WIFI,MOBILE,NONE;
    }
    
    1. 每次只声明一个变量:
      不要组合声明变量,例如int num,max;这样影响阅读。

    2. 数据初始化:可写成块状结构,例如

    new int[] {
            0, 1, 2, 3 
    }
    new int[] {
            0,
            1,
            2,
            3
    }
    
    • 变量和常量
      变量名的命名使用小驼峰法lowerCamelCase。常量名使用大写字母,单词用下划线分割,例如public static final int REQUEST_OK = 200。

    • 临时变量
      变量i,j,k通常用于循环计数;变量m,n通常用于整形;c,d,e通常用于字符型。

    • 常用英文单词缩写:

    名称 缩写
    icon ic
    average avg
    background bg
    delete del
    document doc
    error err
    increment inc
    infomation info
    initial init
    image img
    length len
    library lib
    message msg
    password pwd
    position pos
    string str
    • 不要使用拼音来命名,不知道英文单词就及时使用翻译。

    代码书写规范:

    • 多使用花括号:
      if,else,for等语句和花括号一起使用,即使只有一条语句,也要加上花括号。
    if(allowed)
        todo();
    else
        back();
    

    不建议这样写,这样可能给人误导。
    正确做法应为:

    if(allowed){
        todo();
    }else{
        back();
    }
    
    • 每行字符个数限制在80—100个之间

    • 空白的使用:符号之间应用一个空格隔开;一段代码内,不要都挤在一起,而应该按照逻辑分组,用空行隔开,使逻辑更加清晰。

    • 修饰符的顺序:类和成员的修饰符如果存在多个,需要按照Java规范的定义排序,顺序如下:
      public protected private abstract static final transient volatile synchronized native

    • 方法的注释:

    /**
         * 功能描述
         * @param 参数说明
         * @return 返回值说明
         * @author 模块的作者
         */
    private void function(){
    }
    
    • 类的注释:在创建类时标注好作者,创建时间,联系方法,类功能等信息
    /**
     * Created by libo on 2017/12/25.
     * email:
     * 单聊
     */
    

    该文章持续总结,持续更新。

    相关文章

      网友评论

        本文标题:Android代码规范总结

        本文链接:https://www.haomeiwen.com/subject/frsjgxtx.html