Android開發(fā)規(guī)范


目錄


項(xiàng)目結(jié)構(gòu)

代碼結(jié)構(gòu)

命名規(guī)范

● 方法

● 變量

● 類

● 文件

● 常量

注釋

項(xiàng)目結(jié)構(gòu)


由于公司有兩個(gè)應(yīng)用產(chǎn)品,然后分了一個(gè)lib存放兩產(chǎn)品公共東西.

Lib結(jié)構(gòu)

Common:存放兩產(chǎn)品公共類和方法.

Manager:公共服務(wù)類,廣播類. 服務(wù)類:TestService,廣播類:TestReceiver.

Net:存放兩產(chǎn)品網(wǎng)絡(luò)請求,json解析.

Utils:存放兩產(chǎn)品工具類和工具管理類,命名以Utils或Manager為后綴標(biāo)識,線程池管理類:ThreadPoolManager,日志工具類:LogUtils.

Widget:公共自定義控件和組件,命名以View為后綴標(biāo)識,例如:TestView. 如果有組件在 widget下創(chuàng)建組件名組件類,例如:級聯(lián)組件 創(chuàng)建 wheel存放文件.

BaseApplication:公共Application基類.


應(yīng)用結(jié)構(gòu)


Bean :存放實(shí)體類,返回?cái)?shù)據(jù)實(shí)體,命名以Entity為后綴標(biāo)識,例如:TestEntity。

Common:存放公共類,config類命名為AppConfig,常量類命名為Constants.

db:存放數(shù)據(jù)操作類,簡單數(shù)據(jù)存儲類.

Manager:公共服務(wù)類,廣播類. 服務(wù)類:TestService,廣播類:TestReceiver.

Net:存放網(wǎng)絡(luò)請求,json解析.

Ui:

? ?Activity:存放Activity ,命名以Activity為后綴標(biāo)識,例如:TestActivity.

? ?Adapter:存放適配器類,命名以apt為后綴標(biāo)識,例如:TestApt

? ?Fragment:存放適配器fragment類,命名以fragment為后綴標(biāo)識,例如:TestFragment.

? ?Widget:自定義控件和組件,命名以View為后綴標(biāo)識,例如:TestView. 如果有組件在 widget下創(chuàng)建組件名組件類,例如:級聯(lián)組件 創(chuàng)建 wheel存放文件.

Utils:存放工具類,命名以Utils或Manager為后綴標(biāo)識,線程池管理類:ThreadPoolManager,日志工具類:LogUtils.


代碼結(jié)構(gòu)


@Bind(R.id.ivAddIoc)

ImageView ivAddIoc;

@Bind(R.id.tvAddAddress)

TextView tvAddAddress;

@Override

protected void onCreate(Bundle savedInstanceState) {

//TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.act_address_shangchao);

ButterKnife.bind(this);

initView();

}

/*

* 初始化View

*/

public void initView() {

}

/*

* 加載數(shù)據(jù)

*/

public void loadData() {

}

/*

* 更新View

*/

private Handler mHandler=new Handler() {

? ?public void handleMessage(Message msg) {

? ?}

};

@Override

protected void onStart() {

//TODO Auto-generated method stub

super.onStart();

loadData();

}

@Override

protected void onResume() {

//TODO Auto-generated method stub

super.onResume();

}

@Override

protected void onRestart() {

//TODO Auto-generated method stub

super.onRestart();

}

@Override

protected void onPause() {

//TODO Auto-generated method stub

super.onPause();

}

@Override

protected void onStop() {

//TODO Auto-generated method stub

super.onStop();

}

@Override

protected void onDestroy() {

//TODO Auto-generated method stub

super.onDestroy();

}

@OnClick({R.id.ivAddIoc,R.id.tvAddAddress})

public void onClick(View view) {

? ? ?switch(view.getId()) {

? ? ? ? ? caseR.id.ivAddIoc:

? ? ? ? ? break;

? ? ? ? ? caseR.id.tvAddAddress:

? ? ? ? ? break;

? ? ?}

}


命名規(guī)范


● 方法

動(dòng)詞或動(dòng)名詞,采用小駝峰命名法例如:onCreate(),run()

如:

initXX() 初始化相關(guān)方法,使用init為前綴標(biāo)識,如初始化布局initView()

isXX() checkXX()方法返回值為boolean型和檢查方法的請使用is或check為前綴標(biāo)識

getXX() 返回某個(gè)值的方法,使用get為前綴標(biāo)識

processXX() 對數(shù)據(jù)進(jìn)行處理的方法,盡量使用process為前綴標(biāo)識

displayXX() 彈出提示框和提示信息,使用display為前綴標(biāo)識

saveXX() 與保存數(shù)據(jù)相關(guān)的,使用save為前綴標(biāo)識

resetXX() 對數(shù)據(jù)重組的,使用reset前綴標(biāo)識

clearXX() 清除數(shù)據(jù)相關(guān)的

removeXXX() 移除數(shù)據(jù)相關(guān)的

drawXXX() 繪制數(shù)據(jù)或效果相關(guān)的,使用draw前綴標(biāo)識

● 變量

Camel 標(biāo)記法:首字母是小寫的,接下來的單詞都以大寫字母開頭

布局文件控件命名使用Android Studio JakeWharton 的butterknife幫我們的生成控件命名點(diǎn)擊這里查看butterknife工具操作

● 類

類名通常以大寫字母開頭,如果類名稱由多個(gè)單詞組成,則每個(gè)單詞的首字母均應(yīng)為大 寫例如TestPage;如果類名稱中包含單詞縮寫,則這個(gè)所寫詞的每個(gè)字母均應(yīng)大寫.

如:XMLExample,還有一點(diǎn)命名技巧就是由于類是設(shè)計(jì)用來 代表對象的,所以在命名類時(shí)應(yīng)盡量選擇名詞。

● 文件

資源布局文件(XML文件(layout布局文件)):

全部小寫,采用下劃線命名法

1). Activity默認(rèn)布局,以去掉后綴的Activity類進(jìn)行命名:

act_功能模塊.xml

例如:act_main.xml、act_more.xml

2).Dialog命名:dialog_描述.xml

例如:dlg_hint.xml

2).PopupWindow命名:ppw_描述.xml

例如:ppw _info.xml

3).包含項(xiàng):include_模塊.xml

例如:include_head.xml、include_bottom.xml

4).a(chǎn)dapter的子布局:adp_功能模塊_item.xml

例如:adp _main_item.xml

● 常量

常量的名字應(yīng)該都使用大寫字母,并且指出該常量完整含義。如果一個(gè)常量名稱由多個(gè)單詞組成,則應(yīng)該用下劃線來分割這些單詞

如:MAX_VALUE

注釋


1.文件頭注釋

每一個(gè)文件的文件頭都必須做文件頭注釋。文件頭注釋范例如下:

/**文件名:LoginActivity

*描? ? 述:對用戶

*作? ? 者:

*時(shí)? ? 間:
*版? ? 權(quán):

*/

2.方法頭注釋

每一個(gè)成員方法頭都必須做方法頭注釋。

自定義成員方法注釋范例如下:

/**

*方法描述

*@param strName 參數(shù)

*@return 方法數(shù)據(jù)返回

*/

3.塊注釋

在實(shí)現(xiàn)一段階段性功能的代碼前做塊注釋。塊注釋的注釋范例如下:

4.變量注釋

所有的成員變量和大多數(shù)局部變量在聲明時(shí)都需要為其做功能注釋。

成員變量注釋的注釋范例如下:

局部變量注釋的注釋范例如下:

5.語句注釋

在關(guān)鍵語句的右側(cè)要做單條語句注釋。

語句注釋的注釋范例如下:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容