Android & Java 書寫簡潔規範的代碼

寫出簡潔規範的代碼對於開發者而言很是重要,它體現了開發者本身的專業性和技術水平,並且可以贏得別人的讚揚。對團隊來講,團隊成員遵循統一的代碼規範,可以更好地維護代碼庫的穩定和諧。
《Android高級進階讀書筆記》java

Android是基於Java語言進行開發的,所以說到編碼規範,首先須要遵循Java的編碼規範。android

- 1 Java編碼規範

1.1 源代碼文件的定義express

源代碼文件以文件內容中的最頂層的Java類命名,並且大小寫敏感,文件擴展名爲 .java,同時,文件的編碼格式統一爲UTF-8。apache

1.2 源代碼文件的結構bash

一個完整的源代碼文件由四部分組成app

  • 版權信息或者許可證,例如Android RxJava的版權聲明以下:
/**
 - Copyright (c) 2016-present, RxJava Contributors.
 -  - Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
 - compliance with the License. You may obtain a copy of the License at
 -  - http://www.apache.org/licenses/LICENSE-2.0
 -  - Unless required by applicable law or agreed to in writing, software distributed under the License is
 - distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See
 - the License for the specific language governing permissions and limitations under the License.
 */複製代碼
  • Java文件所在package的聲明
  • Java類須要使用到的依賴的引入import語句,通常不建議使用通配符,例如 import android.annotation.*,而應該引入具體的類,例如import android.annotation.SdkConstant; 。同時import語句要按照類型進行分組,不一樣的組以空行分隔,通常使用的IDE的格式化功能會自動幫咱們分好組。
  • Java頂級類的定義,有且只有一個,但能夠存在內部類定義。每一個類中的成員須要按照某種邏輯進行排序,維護者也須要按照相同的邏輯去添加新的成員,而不是僅僅將新的成員放到最後面,同時,多個重載方法應該按順序排放在一塊兒,中間不要插入其餘方法。

1.3 遵循的格式less

格式主要涉及代碼的排版問題,須要重點關注的主要包括:ide

  • 多使用花括號:例如if,else,for,do,while等語句要和花括號一塊兒使用,即便只有一條語句或者是空的,也要加上花括號,下面的寫法是錯誤的,並且可能會在後面的代碼維護中引入bug。
if(isLogin)
    login();
else
    toLogin();複製代碼

正確的寫法要加上花括號:工具

if(isLogin){
    login();
}else{
    toLogin();
}複製代碼
  • 列字符個數的限制:根據團隊內部使用的顯示器以及IDE具體問題具體分析,最終目的是保證代碼良好的可閱讀性,通常常見的是約定一行80個或者100個字符,超過的部分IDE自動換行。
  • 空白的使用:不要把全部代碼都寫在一塊兒,須要按照邏輯進行分組,垂直方向的空白原則主要有:a) 方法體內,語句的邏輯分組之間使用空行;b)類裏面連續的成員(字段、構造方法、普通方法、嵌套內部類、靜態初始化代碼塊等)之間加上空行。固然,也沒有必要加上多個空行,一行就夠了。
  • switch語句:switch語句除了要注意縮進,空白的使用以外,若是連續兩個case之間明確不須要加break語句時,建議加上// fall through註釋,方便代碼維護者的理解,同時必定要加上default語句,一個符合規範的switch語句以下。
switch (input) {
            case 1 :
            case 2 : 
                doOneTwo();
                // fall through
            case 3 :
               doOneTwoThree();
                break;
            default:
                dobigNumber();
        }複製代碼
  • 修飾符的順序:類和成員的修飾符若是純在多個的話,須要按照Java語言規範中的定義排序,語句以下:
public protected private abstract static final transient volatile synchronized native strictfp複製代碼

1.4 命名約定佈局

類的命名遵循大駝峯命名法UpperCamelCase,而方法名和變量名的命名遵循小駝峯命名法lowerCamelCase。常量名使用大寫字母表示,單詞之間如下劃線分隔,例如static final int CONNECTION_TIMEOUT = 10000

1.5 Javadoc

標準的Javadoc常見的標記和含義以下:

/**
 * Javadoc常見的標記
 * 
 * @param 方法參數的說明
 * @return 對方法返回值的說明
 * @throws 方法拋出異常的藐視
 * @version 模塊的版本號
 * @author 模塊的做者
 * @see  參考方向
 * @deprecated 標記是否過期
 */複製代碼

2 Android 命名規範

2.1 佈局文件的命名

佈局文件的命名規則使用「前綴_邏輯名」的方式,單詞所有小寫

  • Activity的佈局文件 : activity_xxx;
  • Fragment的佈局文件:fragment_xxx;
  • 自定義控件的佈局文件:view_xxx;
  • 對話框的佈局文件:dialog_xxx;
  • 列表項的佈局文件:item_xxx;

不過對於龐大項目的開發。近百個activity開頭的layout列表仍是會眼瞎。因此那種狀況會在前面加上模塊名。

2.2 資源文件的命名

資源文件的命名規則使用「 前綴模塊名邏輯名稱 」的方式,單詞所有小寫

  • 按鈕的命名以btn做爲前綴,例如 btn_login.png,當按鈕存在多種形態時,須要加上按鈕的形態,例如 btn_login_normal.png,btn_login_pressed.png等
  • 圖標的命名以ic做爲前綴,例如 ic_share.png
  • 背景圖片的命名以bg做爲前綴,例如 bg_main.png
  • 分割線的命名以divider做爲前綴,例如 divider_gray.png

2.3 類的命名

類的命名遵循Java的類命名規範,也就是使用大駝峯命名法,同時須要根據類的具體用途引入Android相關的命名規則,

  • Activity類須要以Activity做爲後綴,例如MainActivity
  • Fragment類須要以Fragment做爲後綴,例如HomeFragment
  • Service類須要以Service做爲後綴,例如DownloadService
  • BroadcastReceiver類須要以Receiver做爲後綴,例如PushReceiver
  • ContentProvider類須要以Provider做爲後綴,例如ContactProvider
  • 工具類須要以Util做爲後綴,例如NetworkUtil
  • 自定義的公共基礎類以Base開頭,例如BaseActivity
  • 單元測試的類以Test做爲後綴,例如HashTest

2.4變量命名

以m開頭。例mAdapter使用時按一個m全都出來了

2.5方法命名

與其寫好名字不如寫好註釋。

3. CheckStyle的使用

CheckStyle是一個針對Java語言的代碼規範檢查工具,默認狀況下,它遵循Google的Java編碼規範和Sun的代碼規範,同事它又是高度可配置的,不一樣的團隊能夠根據自身的狀況對檢查規範進行裁剪或者新增。

這裏寫圖片描述
這裏寫圖片描述

安裝完成後重啓Android Studio

而後配置checkstyle.

這裏寫圖片描述
這裏寫圖片描述

這裏你也可使用自帶的Sun 和Google。

歡迎指正錯誤和留言

csdn 地址:blog.csdn.net/sinat_36668…

相關文章
相關標籤/搜索