Android代码规范精华版

部分参考自:https://hawstein.com/2014/01/20/google-java-style/ 以及Android源码

必须遵守

  1. 宏定义:使用static final修饰,名字全大写
private static final int PICK_IMAGE_REQUEST_CODE = 100;
  1. 常量写在类的最前面,变量写在常量后面
  2. 日志打印规范
  • 格式:前缀使用应用名加下划线,Sdk使用应用名加Sdk名加下划线,TAG使用类名;
比如日历应用:Calendar_CalendarApplication
  • 有异常或提前返回时打印,正常逻辑一般不打,视情况而定
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
if (am == null) {
    LogUtil.e(TAG, "terrible, am is null!");
    return;
}
        try {
                  ......
        } catch (Exception e) {
            //e.printStackTrace();  禁止使用
            LogUtil.e(TAG, "something is exception : " + e.toString());
        }
  1. 重写父类接口:加上@Override, 方便理解
  2. 判断语句执行的代码块,必须加上{},即使只有一行,包括if、while、switch...case等
boolean find = false;
if(state) {
    find = true;
}
  1. switch...case语句必须加上default操作
switch(state) {
     case state0: {
        break;
    }
    default : {
        break;
    }
}
  1. 内部类放在类的最后面,接口放在变量后面,构造方法前面
  2. 实现了父类接口的变量放在一般变量后面,函数前面
    private EditText mEditText;
    private Handler mHandler = new Handler(Looper.getMainLooper()) {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                default:{
                    break;
                }
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
  1. 每次只声明一个变量
  2. 类名或接口通常是名词或名词短语,第一个字母大写
  3. 方法名通常是动词或动词短语,第一个字母小写
  4. 参数名:参数应该避免用单个字符命名
  5. 字符串的连接:超过两个字符串的连接,使用StringBuilder或StringBuffer(同步)

强烈建议遵守

  1. 尽量使用正向判断,而不是负向判断,因为正向更容易理解
                //不建议这样做
                if (!TextUtils.isEmpty(path)) {
                    mMediaPlayer.prepareAsync();
                } else {
                    mMediaPlayer.reset();
                }
                
                //建议这样做
                if (TextUtils.isEmpty(path)) {
                    mMediaPlayer.reset();
                } else {
                    mMediaPlayer.prepareAsync();
                }
  1. 避免使用静态变量
  2. 代码格式化使用Android Studio默认即可
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。