Android开发规范

为了规范开发,减小重构成本,总结编码规范如下,分享给大家,提供个参考

命名规范

  • 关于MVP

    对于MVP模式,由于需要实现众多的接口,导致代码臃肿,故决定采取Contract模式,即将接口统一放置在同一类中。

    e.g.

    特别注意:为了减少开发成本,请特别注意Contract内部类的命名,如确定此方案,则务必不要命名为NewsModel等形式

    public interface NewsContract{
    interface Model{
    
    }
    interface Presenter{
    
    }
    interface View{
    
    }
    }
    

    对应实现类:

    特别注意:为了减少开发成本,请特别注意Presenter内部接口的命名,如确定此方案,则务必不要命名为NewsPresenterImpl等形式

    NewsPresenter

    public class NewsPresenter implments NewsContract.Presenter{
    
    }
    

    NewsModel

    public class NewsModel implments NewsContract.Model{
    
    }
    

    特别注意:明确区分ModelEntity 所有实体类放入Entity包,业务逻辑处理放入Model

  • 关于成员与变量

    1. 为了区分成员与local变量,采取与Android源码一致规范,即成员前加m。
    2. 静态常量命名需大写,且为final。

    e.g.

    public class Goods{
    public static final String GOODS = "goods";
    private String mGoodsName;
    private int mId;
    public class Goods(String goodsName,int id){
      mGoodsName = goodsName;
      mId = id;
    }
    }
    

需要用作类似key判断的应写在静态常量里,切勿出现以下情况:

//这是错误的范例,不要学!!!
intent.getStringExtra("key");

if(message.what == 0x123){
}

webView.loadUrl("http://baidu.com");

规范写法如下:

static final String KEY = "key";
intent.getStringExtra(KEY);

static final int FLAG = 0x123;
if(message.what == FLAG){
}

static final String HOST = "http://baidu.com";
webView.loadUrl(Constant.HOST);
  • 关于Activity

    对于需要参数的Activity启动,统一提供静态方法,可以明确地通知调用者需要的参数,避免漏参情况。

    特别注意:为了减少开发成本,请注意方法命名,如确定此方案,则务必不要命名为startWebViewActivity()等形式

    e.g.

    public static void startActivity(Context context, String title, String url) {
      Intent intent = new Intent(context, WebViewActivity.class);
      intent.putExtra(WebViewActivity.EXTRA_URL, url);
      intent.putExtra(WebViewActivity.EXTRA_TITLE_TEXT, title);
      context.startActivity(intent);
    }
    
  • 关于fragment

    统一提供newInstance()方法返回实例.

    特别注意:为了减少开发成本,请注意方法命名,如确定此方案,则务必不要命名为newPlaceFragment()等形式

    e.g.

    public static PlaceholderFragment newInstance(int sectionNumber){
      PlaceholderFragment fragment = new PlaceholderFragment();
      Bundle args = new Bundle();
      args.putInt(ARG_SECTION_NUMBER, sectionNumber);
      fragment.setArguments(args);
      return fragment;
    }
    

  • 关于布局文件

    1. 对于xml文件命名,前缀有layout、view、item、activity、fragment

    2. 对于id命名,有如下映射表,以此类推:

    控件名称 id命名
    TextView tv_sample
    RecyclerView rv_sample
    LinearLayout ll_sample
    RelativeLayout rl_sample

发表评论

电子邮件地址不会被公开。