簡(jiǎn)述Android 開(kāi)發(fā)規(guī)范

目錄
[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

包命名規(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
                }
              
      • 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;
        • 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){};
      • method 方法
        • 布爾型判斷的方法,
          • 以is或has為前綴
            • eg:isAdmin()
        • 初始化方法,
          • 以init為前綴,
            • eg:initView()
        • 彈出信息\提示框
          • 以display開(kāi)頭,
            • eg:displayError()
        • 按鈕點(diǎn)擊方法,
          • 以to開(kāi)頭,
            • eg:toLogin()
        • 設(shè)置方法,
          • 以set開(kāi)頭,
            • eg:setData()
        • 具有返回值的獲取方法,
          • 以get開(kāi)頭,
            • eg:getData()
        • 通過(guò)異步加載數(shù)據(jù)的方法,
          • 以load開(kāi)頭,
            • eg:loadData()
        • 保存數(shù)據(jù)方法
          • 以save為前綴,
            • eg:saveData()
        • 對(duì)數(shù)據(jù)重組的方法
          • 以reset為前綴,
            • eg:resetData()
        • 清除數(shù)據(jù)的方法
          • 以clear\remove為前綴
            • eg:
              • clearData()
              • removeData()
        • 繪制的方法
          • 以draw為前綴
            • eg:drawBipmap()

資源文件規(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
  • 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文字
      • color
        • 命名規(guī)范
          • 基本格式:模塊cl類(lèi)型_功能(描述)
          • eg:
            • user_cl_txt_功能(描述)
            • user_cl_edit_功能(描述)
            • user_cl_hint_功能(描述)
            • user_cl_bg_功能(描述)
            • user_cl_btn_功能(描述)
    • 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_描述
    • mipmap
      • 資源類(lèi)型:
        • 存放啟動(dòng)圖標(biāo)、啟動(dòng)圖
        • 命名規(guī)范:
          • ic_launcher
          • sp_index
    • anim
      • 資源類(lèi)型:
        • 存放 tween animation 和 frame animation
      • 命名規(guī)范:
        • 基本格式:類(lèi)型_描述
          • 常用描述:
            • in
            • out
            • left
            • right
            • down
            • push
        • eg:
          • tween_anim_描述
          • frame_anim_描述
      • xml文件里只有
        • scale、
        • rotate、
        • translate、
        • alpha、
        • set
      • 使用方法:
        1. 加載動(dòng)畫(huà):
          • animation = AnimationUtils.loadAnimation(R.anim.xxx)
        2. 設(shè)置動(dòng)畫(huà):
          • mView.setAnimation(animation)
        3. 開(kāi)啟動(dòng)畫(huà):
          • mView.startAnimation()
    • animator
      • 資源類(lèi)型:
        • 存放 property animation
      • 命名規(guī)范:
        • 基本格式:類(lèi)型_描述
          • 常用描述:
            • in
            • out
            • left
            • right
            • down
            • push
        • eg:
          • property_animator_描述
      • xml文件里只有
        • animator、
        • objectAnimator、
        • set
      • 使用方法:
        1. 加載動(dòng)畫(huà):
          • animation = AnimatorInflater.loadAnimator(R.animator.xxx)
        2. 設(shè)置動(dòng)畫(huà):
          • animation.setTarget(mView)
        3. 開(kāi)啟動(dòng)畫(huà):
          • animation .start()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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