簡述Android 開發規范

目錄
[TOC]

開發工具

  • 盡量使用最新版的IDE進行開發
  • 編碼格式統一為UTF-8
  • 文件編輯完后:
    • .java、.xml等文件后一定要格式化
      • 基本格式方面使用 AS 默認模板即可
    • .java文件需刪除多余的import,減少警告出現
    • 進行代碼規范檢查
      • 插件:Alibaba Java Coding Guidelines
    • 代碼Review

包命名規范

  • 包名全部小寫字母,連續的單詞只是簡單地連接起來,不使用下劃線,
  • 一級包名為頂級域名,通常為com,edu,gov,net,org等,
  • 二級包名,可以是公司域名或者個人命名,
  • 三級包名根據應用進行命名,
  • 四級包名為模塊名或層級名。
    • 注意:全部使用小寫字母

編碼規范

  • 架包引入
    • 去除重復包
    • 進行二次封裝
  • 命名
    • 代碼中的命名嚴禁使用拼音與英文混合的方式,更不允許直接使用中文的方式。
    • 正確的英文拼寫和語法可以讓閱讀者易于理解,避免歧義。
    • 注意:
      • 即使純拼音命名方式也要避免采用。但alibaba、taobao、youku、hangzhou等國際通用的名稱,可視同英文。
  • 類編輯規范
    • 注釋
      • 類注釋

          /**
           * @projectName ${PROJECT_NAME}
           * @packageName ${PACKAGE_NAME}
           * @className ${NAME}
           * @date ${DATE}
           * @author coderName
           * @desc 
           */
        
      • 方法注釋

          /**
           * 
           */
        
      • 行內注釋

          //desc
          /*desc*/
        
    • 命名規范
      • class 類
        • Application類
          • 以Application為后綴,
          • eg:BaseApplication
        • activity類,
          • 以Activity為后綴,
          • eg:LoginActivity
        • fragment類,
          • 以Fragment為后綴,
          • eg:TabFragment
        • service類,
          • 以Service為后綴,
          • eg:DownloadService
        • BroadcastReceiver類
          • 以Broadcast為后綴,
          • eg:DownloadBroadcast
        • ContentProvider類
          • 以Provider為后綴,
          • eg:DownloadProvider
        • adapter類,
          • 以Adapter為后綴,
          • eg:UserMsgAdapter
        • 工具類,
          • 以Utils為后綴,
          • eg:StringUtils
        • 管理類,
          • 以Manager為后綴,
          • eg:ThreadPoolManager
        • 接口類,
          • 以I為前綴,
          • eg:IApi
        • 接口實現類,
          • 以Impl為后綴,
          • eg:ApiImpl
        • 基礎類,
          • 以Base為前綴,
          • eg:BaseActivity
        • 實體類,
          • 以Bean為后綴,
          • eg:UserBean
          • 以Entity為后綴,
          • eg:UserEntity
        • 監聽類,
          • 以On為前綴,Listener為后綴
          • eg:OnClickListener
        • 常量類
          • 以Constant為后綴
          • eg:UserConstant
          • 注意:
            • 范圍型的常量用枚舉類定義,而不要直接用整型或字符,這樣可以減少范圍值的有效性檢查

            • eg:

                public enum CouponType {
                    // 現金券
                    @SerializedName("1")
                    CASH,
                
                    // 抵用券
                    @SerializedName("2")
                    DEBIT,
                
                    // 折扣券
                    @SerializedName("3")
                    DISCOUNT
                }
              
      • variable 變量
        • 公開常量:
          • 定義為靜態final,名稱全部大寫。
          • eg:
            • public static final String KEY_XXX="";
            • public static final String VALUE_XXX="";
        • 靜態變量:
          • 以s開頭
          • eg:
            • private static int sAge = 0;
        • 非靜態的私有變量、protected的變量:
          • 以m開頭
            • eg:private Intent mItent;
        • View變量:
          • 以mView名稱/mView縮寫為前綴,
          • 基本格式:m + 類型名稱/縮寫 + 功能
            • eg:private Button mBtnCancel;
        • 方法參數:
          • 以p開頭
            • eg:private void getData(int pUserId){};
      • method 方法
        • 布爾型判斷的方法,
          • 以is或has為前綴
            • eg:isAdmin()
        • 初始化方法,
          • 以init為前綴,
            • eg:initView()
        • 彈出信息\提示框
          • 以display開頭,
            • eg:displayError()
        • 按鈕點擊方法,
          • 以to開頭,
            • eg:toLogin()
        • 設置方法,
          • 以set開頭,
            • eg:setData()
        • 具有返回值的獲取方法,
          • 以get開頭,
            • eg:getData()
        • 通過異步加載數據的方法,
          • 以load開頭,
            • eg:loadData()
        • 保存數據方法
          • 以save為前綴,
            • eg:saveData()
        • 對數據重組的方法
          • 以reset為前綴,
            • eg:resetData()
        • 清除數據的方法
          • 以clear\remove為前綴
            • eg:
              • clearData()
              • removeData()
        • 繪制的方法
          • 以draw為前綴
            • eg:drawBipmap()

資源文件規范

  • 布局

    • 命名規范
      • layout
        • 全部小寫,采用下劃線命名法
        • activity布局
          • activity_模塊_功能(描述)
        • fragment布局
          • fragment_模塊_功能(描述)
        • dialog布局
          • dlg_功能(描述)
        • PopupWindow布局
          • Popupwin_功能(描述)
        • adapter項布局
          • item_adapter名稱_功能(描述)
        • 包含項
          • include_功能(描述)
      • Id
        • View名稱或View縮寫模塊功能(描述)
          • eg:
            • btn_login_commit
  • res 資源文件

    • value
      • string
        • 命名規范
          • 基本格式:模塊str類型_功能(描述)
          • eg:
            • 頁面標題,
              • 命名格式為:模塊str_title功能(描述)
            • 按鈕文字,
              • 命名格式為:模塊str_btn功能(描述)
            • 標簽文字,
              • 命名格式為:模塊str_label標簽文字簡述
            • 選項卡文字,
              • 命名格式為:模塊str_tab選項卡文字
            • 消息框文字,
              • 命名格式為:模塊str_toast消息簡述
            • 編輯框的提示文字,
              • 命名格式為:模塊str_hint提示信息簡述
            • 描述文字,
              • 命名格式為:模塊str_desc文字
            • 對話框的文字,
              • 命名格式為:模塊str_dialog文字
      • color
        • 命名規范
          • 基本格式:模塊cl類型_功能(描述)
          • eg:
            • user_cl_txt_功能(描述)
            • user_cl_edit_功能(描述)
            • user_cl_hint_功能(描述)
            • user_cl_bg_功能(描述)
            • user_cl_btn_功能(描述)
    • layout
      • 文字大小的單位統一用sp
      • View大小的單位統一用dp
      • 字符串統一在strings.xml中定義,然后在代碼和布局文件中引用
      • 顏色值統一在colors.xml中定義,然后在代碼和布局文件中引用
    • drawbale
      • 資源類型:
        • png、jpeg、gif、9-Patch、xml等資源文件
      • 命名規范:
        • 基本格式:類型_描述
        • 圖標
          • ic_描述
          • icon_描述
        • 圖片
          • img_描述
        • 9-Patch
          • 9patch_描述
        • shape
          • shape_描述
        • selector
          • selector_描述
          • sl_描述
        • layer-list
          • layerlist_描述
    • mipmap
      • 資源類型:
        • 存放啟動圖標、啟動圖
        • 命名規范:
          • ic_launcher
          • sp_index
    • anim
      • 資源類型:
        • 存放 tween animation 和 frame animation
      • 命名規范:
        • 基本格式:類型_描述
          • 常用描述:
            • in
            • out
            • left
            • right
            • down
            • push
        • eg:
          • tween_anim_描述
          • frame_anim_描述
      • xml文件里只有
        • scale、
        • rotate、
        • translate、
        • alpha、
        • set
      • 使用方法:
        1. 加載動畫:
          • animation = AnimationUtils.loadAnimation(R.anim.xxx)
        2. 設置動畫:
          • mView.setAnimation(animation)
        3. 開啟動畫:
          • mView.startAnimation()
    • animator
      • 資源類型:
        • 存放 property animation
      • 命名規范:
        • 基本格式:類型_描述
          • 常用描述:
            • in
            • out
            • left
            • right
            • down
            • push
        • eg:
          • property_animator_描述
      • xml文件里只有
        • animator、
        • objectAnimator、
        • set
      • 使用方法:
        1. 加載動畫:
          • animation = AnimatorInflater.loadAnimator(R.animator.xxx)
        2. 設置動畫:
          • animation.setTarget(mView)
        3. 開啟動畫:
          • animation .start()
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容