美文网首页Android开发
Android开发代码规范

Android开发代码规范

作者: J_wendel | 来源:发表于2015-07-27 11:41 被阅读479次

    命名规范
    1.1类名和接口名类名开头字母大写(Pascal规范), 类名的单词之间不用下划线
    示例:
    public class AppConfig {
    }

    1.2 方法名开头字母小写:动作词汇开头;用反义词组命名相反动作的函数;多个单词组合而成的方法名中,后面的单词首字母大写,但专有名词不受限制;单词间不用下划线连接。
    示例:
    pubic void setStr() {
    }

    1.3 常量使用大写字母, 用下划线 ‘_’ 分割单词。
    示例:
    static final int MAX_WIDTH = 999;

    1.4 类变量、属性、方法参数、方法局部变量开头字母小写(Camel规范),用完英文描述符命名; 要避免方法局部变量和类属性名相同,以免产生混淆。

    1.5 全局变量命名m开头(javabean 类不需要),使用能准确表达意义的词语或缩写词:
    private ListView mListView;
    1.6 一般变量名不得取单个字符(如i、j、k等)作为变量名,局部循环变量除外。
    1.7 代码中控件命名应采用完整的英文描述符命名,名字的前缀是控件类型名(匈牙利规范)。
    示例:
    btnOk

    1.8 获取性方法的命名有两类,一种是判断性的操作(返回类型boolean),以is为方法声明的开头。另外一种获取返回值的操作,以get开头
    示例:
    getFirstName()
    getAccountNumber()
    isPersistent()
    isAtEnd()

    1.9 避免直接使用magic number (数字常量)、字符串,定义(static final)常量代替
    示例:
    private static final int WAITING_SECOND = 10;

    1.10 一行只声明一个变量。
    正例:
    int level;
    int size;
    反例:
    int level, size;
    1.11 一个变量有且只有一个功能,不能把一个变量用于多种用途。
    1.12 标识符要采用英文单词或其组合,选择行业专业术语词汇,禁止使用汉语拼音命名和随意创造术语
    1.13 标识符应当使用完整的英文描述,命名要求"最小长度最大信息量的",非常用缩写词的单词, 慎用缩写。
    1.14 在使用缩写时,应该按着专业术语的要求大小写,例如,System.IO,而不是 System.Io
    1.15 命名时应避免采用几乎相同的名称。如 device 与 devices ,sqlDatabase与SQLDatabase

    代码易读性
    2.1 代码中不要出现中文,comment 使用英语来写 代码复杂或者分支较多时要添加comment
    2.2 代码中不要出现TAB,工具设置:用空格代替制表符,1 tab = 4 space
    2.3 运算符前后,大括号前面要有一个空格
    If (a == b) {
    a = b + 10;
    } else if {
    }
    [if !supportLists]2.4 [endif] 类内部的代码布局顺序:类常量、类变量、属性、构造函数、方法、内部类。

    2.5 if else语句必须使用大括号,条件句与分支语句不要写在同一行
    正例:
    if(flag) {
    return false;
    }
    反例:
    if(flag)
    return false;
    2.6 while,for 循环必须使用大括号
    正例:
    while(flag) {
    count++;
    }
    反例:
    while(flag)
    count++;

    2.7 在switch语句中,case分支要用break结尾,共用或者 特殊情况需要注释说明。最后必须有default分支。
    switch (msg.what){
    case BT_ON:
    break;
    case BT_OFF:
    break;
    default:
    }
    2.8 避免使用printStackTrace,可以使用Android log 机制 打印:
    “exception ” + ex.getMessage()

    性能及问题预防相关
    3.1 if else判断的 item超过3个时考虑使用Switch 或者抽离,if else嵌套不允许超过5层
    3.2 方法抽离:一般情况下一个方法内不允许超过100行
    3.3 输入参数使用前做非空判断
    3.3 UI 线程与耗时的数据操作分离,防止ANR
    3.4合理的生命周期使用Broadcast register (onResume())与 unregister (onStop())
    3.5 cursor , file,stream,fd用完一定要注意close
    3.6 catch 异常时,要catch 具体的类型,一般不允许直接catch Exception类型
    3.7 避免将浮点变量用“==”或“!=”与数字比较,应该转化成“>=”或“<=”形式。
    示例:if ((tmp >= 0.0) && (tmp <= 0.0)))
    反例:if (tmp == 0.0) //隐含错误的比较
    3.8 覆盖equals方法要覆盖hashCode方法

    英文缩写原则:
    1 较短的单词可通过去掉“元音”形成缩写
    2 较长的单词可取单词的头几个字母形成缩写
    3 此外还有一些约定成俗的英文单词缩写.
    下面为常见的英文单词缩写:
    名称

    缩写

    icon ic (主要用在app的图标)
    color cl(主要用于颜色值)
    divider di(主要用于分隔线,不仅包括Listview中的divider,还包括普通布局中的线)
    selector sl(主要用于某一view多种状态,不仅包括Listview中的selector,还包括按钮的selector)
    average avg
    background bg(主要用于布局和子布局的背景)
    buffer buf
    control ctrl
    delete del
    document doc
    error err
    escape esc
    increment inc
    infomation info
    initial init
    image img
    length len
    library lib
    message msg
    password pwd
    position pos
    server srv
    string str
    temp tmp
    window wnd(win)
    argument arg
    compare cmp
    configuration cfg
    context ctx
    initialize init
    maximum max
    message msg
    minimum min
    operating system OS
    parameter param
    previous prev
    trigger trig

    write wr

    view的缩写详情如下:
    LayoutView lv
    RelativeView rv
    TextView tv
    Button btn
    ImageButton imgBtn
    ImageView imgView 或则 iv
    CheckBox chk
    RadioButton rdoBtn
    analogClock anaClk
    DigtalClock dgtClk
    DatePicker dtPk
    EditText edtTxt
    TimePicker tmPk
    toggleButton tglBtn
    ProgressBar proBar
    SeekBar skBar
    AutoCompleteTextView autoTxt
    ZoomControls zmCtl
    VideoView vdoVi
    WdbView webVi
    RantingBar ratBar
    Tab tab
    Spinner spn
    Chronometer cmt
    ScollView sclVi
    TextSwitch txtSwt
    ImageSwitch imgSwt
    listView lVi 或则lv
    ExpandableList epdLt
    MapView mapVi

    三种命名规范:

    1. Pascal规范:第1个字符大写,每个单词的第1个字母也大写,其他的所有字符都小写。
    2. Camel规范:第1个字符不大写,但每个单词的第1个字母大写,其他的所有字符都小写。
    3. 匈牙利规范:在目标名中加入表示类型的前缀,如strName。

    相关文章

      网友评论

        本文标题:Android开发代码规范

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