Android開發有哪些規範?

來源:互聯網
上載者:User

標籤:函數傳回值   超過   顯示   哪些   exce   之間   位置   解析   character   

  • 編碼方式
  • 統一用UTF-8. Android Studio預設已是UTF-8,只要不去改動它就可以了。

    1. 縮排
      統一為4個空格,將Tab size設定為4則可以保證tab鍵按4個空格縮排。另外,不要勾選上Use tab character,可以保證切換到不同tab長度的環境時還能繼續保持統一的4個空格的縮排樣式。

    2. 花括弧

    public void method()
    {
    // Bad
    }
    public void method() {
    // Good
    }

    1. 空格的使用

    if、else、for、switch、while等邏輯關鍵字與後面的語句留一個空格隔開。

    // Good
    if (booleanVariable) {
    // TODO while booleanVariable is true
    } else {
    // TODO else
    }
    // Bad
    if(booleanVariable) {
    // TODO while booleanVariable is true
    }else {
    // TODO else

    運算子兩邊各用一個空格隔開。

    int result = a + b; //Good, = 和 + 兩邊各用一個空格隔開
    int result=a+b; //Bad,=和+兩邊沒用空格隔開

    方法的每個參數之間用一個空格隔開。

    public void method(String param1, String param2); // Good,param1後面的逗號與String之間隔了一個空格
    method(param1, param2); // Good,方法調用時,param1後面的逗號與param2之間隔了一個空格
    method(param1,param2); // Bad,沒有用一個空格隔開

    1. 空行的使用

    將邏輯相關的程式碼片段用空行隔開,以提高可讀性。空行也只空一行,不要空多行。在以下情況需用一個空行:

    • 兩個方法之間
    • 方法內的兩個邏輯段之間
    • 方法內的局部變數和方法的第一條邏輯語句之間
    • 常量和變數之間
    1. 長行

    當一個運算式無法容納在一行內時,可換行顯示,另起的新行用8個空格縮排。

    someMethod(longExpression1, longExpression2, longExpression3,
    longExpression4, longExpression5);

    1. 一行聲明一個變數
      一行聲明一個變數,不要一行聲明多個變數,這樣有利於寫注釋。

    private String param1; // 參數1
    private String param2; // 參數2

    1. 行寬設定為100,設定格式化時自動斷行到行寬位置。

    2. 使用快速鍵進行代碼自動格式化。

    Windows:CTRL+ALT+L
    Mac:OPTION+COMMAND+L

    1. 一個方法最多不要超過40行代碼。

    2. 引用第三方庫要謹慎

    避免應用大容量的第三方庫,導致用戶端包非常大。

    1. 文字大小的單位

    統一用sp,元素大小的單位統一用dp。

    1. 應用中的字串

    統一在strings.xml中定義,然後在代碼和布局檔案中引用。

    1. 顏色值

    統一在colors.xml中定義,然後在代碼和布局檔案中引用。另外,不要在代碼和布局檔案中引用系統的顏色,除了透明。

    1. JSON解析

    Android中調用伺服器端的介面一般返回的是JSON資料,在解析JSON的時候,無論是使用原始的手工解析方式,還是使用javabean的解析方式,解析出來的結果在使用的時候必須都進行判空處理。不允許因為服務端的json出問題,導致app在解析json的時候出現崩潰。

    1. Int類型常量

    函數返回的時候,如果返回的int類型的資料並不是真實的實用的資料值(例如表示寬度、高度、大小等值),僅僅代表函數執行成功、失敗、異常的狀態值,並且這些值是有限的幾個值,必須要將這些值使用靜態常量描述,或者使用枚舉類型,例如:

    int GetJsonString()

    該函數返回-1表示擷取解析JSON資料異常,返回0表示成功,返回1表示網路連接異常,返回2表示JSON內容中的資料部分為空白。那麼在函數內部的代碼裡不要直接使用這些字面值,這些字面值對於程式員來說是毫無意義的,代碼可閱讀性很差,建議做成下面的模式:

    public static final int RESULT_PARSE_JSON_EXCEPTION = -1;
    public static final int RESULT_SUCCESS = 0;
    public static final int RESULT_NETWORK_EXCEPTION = 1;
    public static final int RESULT_NO_DATA = 2;

    使用這些符號常量值代替字面值的好處是,符號常量值是由大寫的英文單片語成,是有意義的,可以協助程式員更好的理解函數傳回值的意義,而且符號常量值對應的具體的賦值在後期也是很方便修改的

    1. 封裝 Log 功能

    Log功能應該封裝成為自動將當前所在類的類名變成log輸出的TAG參數,發布的app最好是能迴圈寫記錄檔到系統儲存中,並且記錄檔應該使用反覆覆蓋的方式重複利用。下面僅僅是一個不完善的例子:

    public class MyLog {
    public static final String TAG = "myapp ";
    public static void v(Object o, String message) {
    Log.v(TAG + o.getClass().getSimpleName(), message);
    }
    }

    使用方法:

    Log.v(TAG + o.getClass().getSimpleName(), message);

    列印結果

    V/myapp MainActivity: Hello

    1. Activity點擊事件
      activity中在一個View.OnClickListener中處理所有的邏輯。

    2. 資料一定要效驗
      例如字元型轉數字型,如果轉換失敗一定要有預設值;
      服務端響應資料是否有效判斷;

    Android開發有哪些規範?

    相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.