Android命名规范

基本包名:(例)net.kiddingboy.app

分包说明

类命名

静态资源命名

  1. Activity布局文件命名:activity_描述.xml
  2. Dialog命名:dialog_描述.xml
  3. 列表项命名:list_item_描述.xml grid_item_描述.xml

资源ID

 格式:缩写_描述 加载控件方式采用xutils的注解配置

常用控件缩写



编码规则

/** * 类的大体描述放在这里。 * * 至于注释应该使用中文还是英文,请自己行决定,根据公司或项目的要求而定,推荐使用英文。 * * 1.整理代码 * 1.1. Java 代码中不允许出现在警告,无法消除的警告要用 @SuppressWarnings。 * 1.2. 去掉无用的包、方法、变量等,减少僵尸代码。 * 1.3. 使用 Lint 工具来查看并消除警告和错误。 * 1.4. 使用 Ctrl+Shift+F 来格式化代码,然后再进行调整。 * 1.5. 使用 Ctrl+Shift+O 来格式化 Import 包。 * * 2. 命名规则 * 2.1. 基本原则 * 变量,方法,类命名要表义,严格禁止使用 name1, name2 等命名。 * 命名不能太长,适当使用简写或缩写。(最好不要超过 25 个字母) * 方法名以小写字母开始,以后每个单词首字母大写。 * 避免使用相似或者仅在大小写上有区别的名字。 * 避免使用数字,但可用 2 代替 to,用 4 代替 for 等,如 go2Clean。 * * * 2.2. 类、接口 * 所有单词首字母都大写。使用能确切反应该类、接口含义、功能等的词。一般采用名词。 * 接口带 I 前缀,或able, ible, er等后缀。如ISeriable。 * * 2.3. 字段、常量</h3> * 成员变量以 m 开头,静态变量以 s 开头,如 mUserName, sInstance。 * 常量全部大写,在词与词之前用下划线连接,如 MAX_NUMBER。 * 代码中禁止使用硬编码,把一些数字或字符串定义成常用量。 * 对于废弃不用的函数,为了保持兼容性,通常添加 @Deprecated * * 3. 注释 * * 常量注释 * 变量注释 * 函数注释 * * 4. Class 内部顺序和逻辑 * 每个 class 都应该按照一定的逻辑结构来排列基成员变量、方法、内部类等,从而达到良好的可读性。 * 总体上来说,要按照先 public, 后 protected, 最后 private, 函数的排布也应该有一个逻辑的先后顺序,由重到轻。 * 以下顺序可供参考: * 定义TAG,一般为 private(可选) * 定义 public 常量> * 定义 protected 常量、内部类 * 定义 private 变量 * 定义 public 方法 * 定义 protected 方法 * 定义 private 方法 * * 5. 表达式与语句 * 基本原则:采用紧凑型风格来编写代码 * 细则 * 条件表示式 * switch 语句 * 循环语句 * 错误与异常 * 批注 * * * @author 作者名 * @since 2015-XX-XX */@SuppressWarnings("unused")public class CodingRuler {    /** 公有的常量注释 */    public static final String ACTION_MAIN =    "android.intent.action.MAIN";    /** 私有的常量注释(同类型的常量可以分块并紧凑定义) */    private static final int MSG_AUTH_NONE    = 0;    private static final int MSG_AUTH_SUCCESS = 1;    private static final int MSG_AUTH_FAILED  = 2;    /** 保护的成员变量注释 */    protected Object mObject0;    /**私有的成员变量mObject1注释(同类型成员变量可以分块并紧凑定义)*/    private Object mObject1;    /** 私有的成员变量 mObject2 注释 */    private Object mObject2;    /** 私有的成员变量 mObject3 注释 */    private Object mObject3;    /** * 对于注释多于一行的,采用这种方式来 * 定义该变量 */    private Object mObject4;    /** * 公有方法描述... * * @param param1 参数1描述... * @param param2 参数2描述... * @param paramXX 参数XX描述... (注意:请将参数、描述都对齐) */    public void doSomething(int param1,float param2, String paramXX) {        // 以下注释标签可以通过Eclipse内置的Task插件看到        // TODO 使用TODO来标记代码,说明标识处有功能代码待编写        // FIXME 使用FIXME来标记代码,说明标识处代码需要修正,甚至代码是        // 错误的,不能工作,需要修复        // XXX 使用XXX来标记代码,说明标识处代码虽然实现了功能,但是实现        // 的方法有待商榷,希望将来能改进    }    /** * 保护方法描述... */    @Deprecated    protected void doSomething() {        // ...implementation    }    /** * 私有方法描述... * * @param param1 参数1描述... * @param param2 参数2描述... */    private void doSomethingInternal(int param1, float param2) {        // ...implementation     }    /** * 条件表达式原则。 */    private void conditionFun() {        boolean condition1 = true;        boolean condition2 = false;        boolean condition3 = false;        boolean condition4 = false;        boolean condition5 = false;        boolean condition6 = false;        // 原则:         //1.if语句必须用{}包括起来,即便只有一句,禁止使用不带{}的语句        //2.在含有多种运算符的表达式中,使用圆括号来避免运算符优先级问题        //3. 判断条件很多时,请将其它条件换行        if (condition1) {            // ...implementation        }        if (condition1) {            // ...implementation        } else {            // ...implementation        }        if (condition1)          /* 禁止使用不带{}的语句 */            condition3 = true;        if ((condition1 == condition2)                 || (condition3 == condition4)                || (condition5 == condition6)) {        }    }    /** * Switch语句原则。 */    private void switchFun() {        // 原则:         //1.switch 语句中,break 与下一条 case 之间,空一行        //2.对于不需要 break 语句的,请使用 /* Falls through */来标注        //3. 请默认写上 default 语句,保持完整性        int code = MSG_AUTH_SUCCESS;        switch (code) {        case MSG_AUTH_SUCCESS:            break;        case MSG_AUTH_FAILED:            break;        case MSG_AUTH_NONE:            /* Falls through */        default:            break;        }    }    /** * 循环表达式。 */    private void circulationFun() {        // 原则:        // 1. 尽量使用for each语句代替原始的for语句        // 2. 循环中必须有终止循环的条件或语句,避免死循环        // 3. 循环要尽可能的短, 把长循环的内容抽取到方法中去        // 4. 嵌套层数不应超过3层, 要让循环清晰可读        int array[] = { 1, 2, 3, 4, 5 };        for (int data : array) {            // ...implementation        }        int length = array.length;        for (int ix = 0; ix < length; ix++) {            // ...implementation        }        boolean condition = true;        while (condition) {            // ...implementation        }        do {            // ...implementation        } while (condition);    }    /** * 异常捕获原则。 */    private void exceptionFun() {        // 原则:        // 1.捕捉异常是为了处理它,通常在异常catch块中输出异常信息。        // 2.资源释放工作,可以放到finally块部分去做。如关闭 Cursor等。        try {            // ...implementation        } catch (Exception e) {            e.printStackTrace();        } finally {        }    }    /** * 其它原则(整理中...)。 */    private void otherFun() {        // TODO    }    }

“`

更多相关文章

  1. 关于Android(安卓)Studio开发环境变量的设置(avd启动黑屏)
  2. Windows Android(安卓)NDK Compile -----android-ndk-r6b
  3. DataBinding使用指南(三):生成的binding类
  4. Android(安卓)SQLite总结(一)
  5. Android高手进阶教程(九)之----Android(安卓)Handler的使用!
  6. Android(安卓)Stutio设置注释模板
  7. Android(安卓)SQLite数据库使用INTO子句创建新表时报错
  8. [android] android开发中常用的Eclipse快捷键
  9. Android数据库ContentProvider封装原理

随机推荐

  1. Android(java)学习笔记80:UDP协议发送数据
  2. Android 8怎么修改USB默认为MTP
  3. android:configChanges="keyboard|keyboa
  4. [Android]JNI Tips
  5. android打电话的程序
  6. Android 手机bluetooth 名字的设置
  7. android 学习之---Android之SurfaceView
  8. android图片压缩方法
  9. popup menu案例,无说明只代码
  10. android 系统internt