目錄
[TOC]
開(kāi)發(fā)工具
- 盡量使用最新版的IDE進(jìn)行開(kāi)發(fā)
- 編碼格式統(tǒng)一為UTF-8
- 文件編輯完后:
- .java、.xml等文件后一定要格式化
- 基本格式方面使用 AS 默認(rèn)模板即可
- .java文件需刪除多余的import,減少警告出現(xiàn)
- 進(jìn)行代碼規(guī)范檢查
- 插件:Alibaba Java Coding Guidelines
- 代碼Review
- .java、.xml等文件后一定要格式化
包命名規(guī)范
- 包名全部小寫(xiě)字母,連續(xù)的單詞只是簡(jiǎn)單地連接起來(lái),不使用下劃線,
- 一級(jí)包名為頂級(jí)域名,通常為com,edu,gov,net,org等,
- 二級(jí)包名,可以是公司域名或者個(gè)人命名,
- 三級(jí)包名根據(jù)應(yīng)用進(jìn)行命名,
- 四級(jí)包名為模塊名或?qū)蛹?jí)名。
- 注意:全部使用小寫(xiě)字母
編碼規(guī)范
- 架包引入
- 去除重復(fù)包
- 進(jìn)行二次封裝
- 命名
- 代碼中的命名嚴(yán)禁使用拼音與英文混合的方式,更不允許直接使用中文的方式。
- 正確的英文拼寫(xiě)和語(yǔ)法可以讓閱讀者易于理解,避免歧義。
- 注意:
- 即使純拼音命名方式也要避免采用。但alibaba、taobao、youku、hangzhou等國(guó)際通用的名稱(chēng),可視同英文。
- 類(lèi)編輯規(guī)范
- 注釋
-
類(lèi)注釋
/** * @projectName ${PROJECT_NAME} * @packageName ${PACKAGE_NAME} * @className ${NAME} * @date ${DATE} * @author coderName * @desc */ -
方法注釋
/** * */ -
行內(nèi)注釋
//desc /*desc*/
-
- 命名規(guī)范
-
class 類(lèi)
- Application類(lèi)
- 以Application為后綴,
- eg:BaseApplication
- activity類(lèi),
- 以Activity為后綴,
- eg:LoginActivity
- fragment類(lèi),
- 以Fragment為后綴,
- eg:TabFragment
- service類(lèi),
- 以Service為后綴,
- eg:DownloadService
- BroadcastReceiver類(lèi)
- 以Broadcast為后綴,
- eg:DownloadBroadcast
- ContentProvider類(lèi)
- 以Provider為后綴,
- eg:DownloadProvider
- adapter類(lèi),
- 以Adapter為后綴,
- eg:UserMsgAdapter
- 工具類(lèi),
- 以Utils為后綴,
- eg:StringUtils
- 管理類(lèi),
- 以Manager為后綴,
- eg:ThreadPoolManager
- 接口類(lèi),
- 以I為前綴,
- eg:IApi
- 接口實(shí)現(xiàn)類(lèi),
- 以Impl為后綴,
- eg:ApiImpl
- 基礎(chǔ)類(lèi),
- 以Base為前綴,
- eg:BaseActivity
- 實(shí)體類(lèi),
- 以Bean為后綴,
- eg:UserBean
- 以Entity為后綴,
- eg:UserEntity
- 監(jiān)聽(tīng)類(lèi),
- 以O(shè)n為前綴,Listener為后綴
- eg:OnClickListener
- 常量類(lèi)
- 以Constant為后綴
- eg:UserConstant
- 注意:
范圍型的常量用枚舉類(lèi)定義,而不要直接用整型或字符,這樣可以減少范圍值的有效性檢查
-
eg:
public enum CouponType { // 現(xiàn)金券 @SerializedName("1") CASH, // 抵用券 @SerializedName("2") DEBIT, // 折扣券 @SerializedName("3") DISCOUNT }
- Application類(lèi)
-
variable 變量
- 公開(kāi)常量:
- 定義為靜態(tài)final,名稱(chēng)全部大寫(xiě)。
- eg:
- public static final String KEY_XXX="";
- public static final String VALUE_XXX="";
- 靜態(tài)變量:
- 以s開(kāi)頭
- eg:
- private static int sAge = 0;
- 非靜態(tài)的私有變量、protected的變量:
- 以m開(kāi)頭
- eg:private Intent mItent;
- 以m開(kāi)頭
- View變量:
- 以mView名稱(chēng)/mView縮寫(xiě)為前綴,
- 基本格式:m + 類(lèi)型名稱(chēng)/縮寫(xiě) + 功能
- eg:private Button mBtnCancel;
- 方法參數(shù):
- 以p開(kāi)頭
- eg:private void getData(int pUserId){};
- 以p開(kāi)頭
- 公開(kāi)常量:
-
method 方法
- 布爾型判斷的方法,
- 以is或has為前綴
- eg:isAdmin()
- 以is或has為前綴
- 初始化方法,
- 以init為前綴,
- eg:initView()
- 以init為前綴,
- 彈出信息\提示框
- 以display開(kāi)頭,
- eg:displayError()
- 以display開(kāi)頭,
- 按鈕點(diǎn)擊方法,
- 以to開(kāi)頭,
- eg:toLogin()
- 以to開(kāi)頭,
- 設(shè)置方法,
- 以set開(kāi)頭,
- eg:setData()
- 以set開(kāi)頭,
- 具有返回值的獲取方法,
- 以get開(kāi)頭,
- eg:getData()
- 以get開(kāi)頭,
- 通過(guò)異步加載數(shù)據(jù)的方法,
- 以load開(kāi)頭,
- eg:loadData()
- 以load開(kāi)頭,
- 保存數(shù)據(jù)方法
- 以save為前綴,
- eg:saveData()
- 以save為前綴,
- 對(duì)數(shù)據(jù)重組的方法
- 以reset為前綴,
- eg:resetData()
- 以reset為前綴,
- 清除數(shù)據(jù)的方法
- 以clear\remove為前綴
- eg:
- clearData()
- removeData()
- eg:
- 以clear\remove為前綴
- 繪制的方法
- 以draw為前綴
- eg:drawBipmap()
- 以draw為前綴
- 布爾型判斷的方法,
-
class 類(lèi)
- 注釋
資源文件規(guī)范
-
布局
- 命名規(guī)范
-
layout
- 全部小寫(xiě),采用下劃線命名法
- activity布局
- activity_模塊_功能(描述)
- fragment布局
- fragment_模塊_功能(描述)
- dialog布局
- dlg_功能(描述)
- PopupWindow布局
- Popupwin_功能(描述)
- adapter項(xiàng)布局
- item_adapter名稱(chēng)_功能(描述)
- 包含項(xiàng)
- include_功能(描述)
-
Id
- View名稱(chēng)或View縮寫(xiě)模塊功能(描述)
- eg:
- btn_login_commit
- eg:
- View名稱(chēng)或View縮寫(xiě)模塊功能(描述)
-
layout
- 命名規(guī)范
-
res 資源文件
-
value
- string
- 命名規(guī)范
- 基本格式:模塊str類(lèi)型_功能(描述)
- eg:
- 頁(yè)面標(biāo)題,
- 命名格式為:模塊str_title功能(描述)
- 按鈕文字,
- 命名格式為:模塊str_btn功能(描述)
- 標(biāo)簽文字,
- 命名格式為:模塊str_label標(biāo)簽文字簡(jiǎn)述
- 選項(xiàng)卡文字,
- 命名格式為:模塊str_tab選項(xiàng)卡文字
- 消息框文字,
- 命名格式為:模塊str_toast消息簡(jiǎn)述
- 編輯框的提示文字,
- 命名格式為:模塊str_hint提示信息簡(jiǎn)述
- 描述文字,
- 命名格式為:模塊str_desc文字
- 對(duì)話框的文字,
- 命名格式為:模塊str_dialog文字
- 頁(yè)面標(biāo)題,
- 命名規(guī)范
- color
- 命名規(guī)范
- 基本格式:模塊cl類(lèi)型_功能(描述)
- eg:
- user_cl_txt_功能(描述)
- user_cl_edit_功能(描述)
- user_cl_hint_功能(描述)
- user_cl_bg_功能(描述)
- user_cl_btn_功能(描述)
- 命名規(guī)范
- string
- layout
- 文字大小的單位統(tǒng)一用sp
- View大小的單位統(tǒng)一用dp
- 字符串統(tǒng)一在strings.xml中定義,然后在代碼和布局文件中引用
- 顏色值統(tǒng)一在colors.xml中定義,然后在代碼和布局文件中引用
- drawbale
- 資源類(lèi)型:
- png、jpeg、gif、9-Patch、xml等資源文件
- 命名規(guī)范:
- 基本格式:類(lèi)型_描述
- 圖標(biāo)
- ic_描述
- icon_描述
- 圖片
- img_描述
- 9-Patch
- 9patch_描述
- shape
- shape_描述
- selector
- selector_描述
- sl_描述
- layer-list
- layerlist_描述
- 資源類(lèi)型:
- mipmap
- 資源類(lèi)型:
- 存放啟動(dòng)圖標(biāo)、啟動(dòng)圖
- 命名規(guī)范:
- ic_launcher
- sp_index
- 資源類(lèi)型:
- anim
- 資源類(lèi)型:
- 存放 tween animation 和 frame animation
- 命名規(guī)范:
- 基本格式:類(lèi)型_描述
- 常用描述:
- in
- out
- left
- right
- down
- push
- 常用描述:
- eg:
- tween_anim_描述
- frame_anim_描述
- 基本格式:類(lèi)型_描述
- xml文件里只有
- scale、
- rotate、
- translate、
- alpha、
- set
- 使用方法:
- 加載動(dòng)畫(huà):
- animation = AnimationUtils.loadAnimation(R.anim.xxx)
- 設(shè)置動(dòng)畫(huà):
- mView.setAnimation(animation)
- 開(kāi)啟動(dòng)畫(huà):
- mView.startAnimation()
- 加載動(dòng)畫(huà):
- 資源類(lèi)型:
- animator
- 資源類(lèi)型:
- 存放 property animation
- 命名規(guī)范:
- 基本格式:類(lèi)型_描述
- 常用描述:
- in
- out
- left
- right
- down
- push
- 常用描述:
- eg:
- property_animator_描述
- 基本格式:類(lèi)型_描述
- xml文件里只有
- animator、
- objectAnimator、
- set
- 使用方法:
- 加載動(dòng)畫(huà):
- animation = AnimatorInflater.loadAnimator(R.animator.xxx)
- 設(shè)置動(dòng)畫(huà):
- animation.setTarget(mView)
- 開(kāi)啟動(dòng)畫(huà):
- animation .start()
- 加載動(dòng)畫(huà):
- 資源類(lèi)型:
-
value