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

目錄
[TOC]

開發(fā)工具

  • 盡量使用最新版的IDE進(jìn)行開發(fā)
  • 編碼格式統(tǒng)一為UTF-8
  • 文件編輯完后:
    • .java碌更、.xml等文件后一定要格式化
      • 基本格式方面使用 AS 默認(rèn)模板即可
    • .java文件需刪除多余的import泞坦,減少警告出現(xiàn)
    • 進(jìn)行代碼規(guī)范檢查
      • 插件:Alibaba Java Coding Guidelines
    • 代碼Review

包命名規(guī)范

  • 包名全部小寫字母,連續(xù)的單詞只是簡單地連接起來疏虫,不使用下劃線屏鳍,
  • 一級包名為頂級域名栏饮,通常為com,edu,gov,net,org等吊说,
  • 二級包名论咏,可以是公司域名或者個人命名,
  • 三級包名根據(jù)應(yīng)用進(jìn)行命名颁井,
  • 四級包名為模塊名或?qū)蛹壝?
    • 注意:全部使用小寫字母

編碼規(guī)范

  • 架包引入
    • 去除重復(fù)包
    • 進(jìn)行二次封裝
  • 命名
    • 代碼中的命名嚴(yán)禁使用拼音與英文混合的方式厅贪,更不允許直接使用中文的方式。
    • 正確的英文拼寫和語法可以讓閱讀者易于理解雅宾,避免歧義卦溢。
    • 注意:
      • 即使純拼音命名方式也要避免采用。但alibaba秀又、taobao、youku贬芥、hangzhou等國際通用的名稱,可視同英文吐辙。
  • 類編輯規(guī)范
    • 注釋
      • 類注釋

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

          /**
           * 
           */
        
      • 行內(nèi)注釋

          //desc
          /*desc*/
        
    • 命名規(guī)范
      • 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
        • 接口實現(xiàn)類毒坛,
          • 以Impl為后綴望伦,
          • eg:ApiImpl
        • 基礎(chǔ)類,
          • 以Base為前綴煎殷,
          • eg:BaseActivity
        • 實體類屯伞,
          • 以Bean為后綴,
          • eg:UserBean
          • 以Entity為后綴蝌数,
          • eg:UserEntity
        • 監(jiān)聽類愕掏,
          • 以O(shè)n為前綴,Listener為后綴
          • eg:OnClickListener
        • 常量類
          • 以Constant為后綴
          • eg:UserConstant
          • 注意:
            • 范圍型的常量用枚舉類定義顶伞,而不要直接用整型或字符饵撑,這樣可以減少范圍值的有效性檢查

            • eg:

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

資源文件規(guī)范

  • 布局

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

    • value
      • string
        • 命名規(guī)范
          • 基本格式:模塊str類型_功能(描述)
          • eg:
            • 頁面標(biāo)題分衫,
              • 命名格式為:模塊str_title功能(描述)
            • 按鈕文字场刑,
              • 命名格式為:模塊str_btn功能(描述)
            • 標(biāo)簽文字,
              • 命名格式為:模塊str_label標(biāo)簽文字簡述
            • 選項卡文字蚪战,
              • 命名格式為:模塊str_tab選項卡文字
            • 消息框文字摇邦,
              • 命名格式為:模塊str_toast消息簡述
            • 編輯框的提示文字恤煞,
              • 命名格式為:模塊str_hint提示信息簡述
            • 描述文字,
              • 命名格式為:模塊str_desc文字
            • 對話框的文字施籍,
              • 命名格式為:模塊str_dialog文字
      • color
        • 命名規(guī)范
          • 基本格式:模塊cl類型_功能(描述)
          • 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
      • 資源類型:
        • png丑慎、jpeg喜喂、gif、9-Patch竿裂、xml等資源文件
      • 命名規(guī)范:
        • 基本格式:類型_描述
        • 圖標(biāo)
          • ic_描述
          • icon_描述
        • 圖片
          • img_描述
        • 9-Patch
          • 9patch_描述
        • shape
          • shape_描述
        • selector
          • selector_描述
          • sl_描述
        • layer-list
          • layerlist_描述
    • mipmap
      • 資源類型:
        • 存放啟動圖標(biāo)玉吁、啟動圖
        • 命名規(guī)范:
          • ic_launcher
          • sp_index
    • anim
      • 資源類型:
        • 存放 tween animation 和 frame animation
      • 命名規(guī)范:
        • 基本格式:類型_描述
          • 常用描述:
            • 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. 設(shè)置動畫:
          • mView.setAnimation(animation)
        3. 開啟動畫:
          • mView.startAnimation()
    • animator
      • 資源類型:
        • 存放 property animation
      • 命名規(guī)范:
        • 基本格式:類型_描述
          • 常用描述:
            • in
            • out
            • left
            • right
            • down
            • push
        • eg:
          • property_animator_描述
      • xml文件里只有
        • animator悔常、
        • objectAnimator影斑、
        • set
      • 使用方法:
        1. 加載動畫:
          • animation = AnimatorInflater.loadAnimator(R.animator.xxx)
        2. 設(shè)置動畫:
          • animation.setTarget(mView)
        3. 開啟動畫:
          • animation .start()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市机打,隨后出現(xiàn)的幾起案子矫户,更是在濱河造成了極大的恐慌,老刑警劉巖残邀,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件皆辽,死亡現(xiàn)場離奇詭異,居然都是意外死亡芥挣,警方通過查閱死者的電腦和手機(jī)驱闷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來空免,“玉大人遗嗽,你說我怎么就攤上這事」难眩” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵征字,是天一觀的道長都弹。 經(jīng)常有香客問我,道長匙姜,這世上最難降的妖魔是什么畅厢? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮氮昧,結(jié)果婚禮上框杜,老公的妹妹穿的比我還像新娘浦楣。我一直安慰自己,他們只是感情好咪辱,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布振劳。 她就那樣靜靜地躺著,像睡著了一般油狂。 火紅的嫁衣襯著肌膚如雪历恐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天专筷,我揣著相機(jī)與錄音弱贼,去河邊找鬼。 笑死磷蛹,一個胖子當(dāng)著我的面吹牛吮旅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播味咳,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼庇勃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了莺葫?” 一聲冷哼從身側(cè)響起匪凉,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎捺檬,沒想到半個月后再层,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡堡纬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年聂受,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烤镐。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡无畔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出干签,到底是詐尸還是另有隱情贷揽,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布镜悉,位于F島的核電站祟辟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏侣肄。R本人自食惡果不足惜旧困,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吼具,春花似錦僚纷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锣咒,卻和暖如春侵状,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背毅整。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工趣兄, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人悼嫉。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓艇潭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親戏蔑。 傳聞我的和親對象是個殘疾皇子蹋凝,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容