[干貨]Android編程開發(fā)規(guī)范

約定

  • Activity.onCreate(),F(xiàn)ragment.onActivityCreated(),作為程序入口,不用寫入太多代碼,盡量保持只調(diào)用initXXX()方法,簡單明了展示調(diào)用過程。如:initData(),initView()。
  • 單個方法體不要過長
  • 代碼任何地方不要拼錯單詞
  • 杜絕整個類代碼格式化
  • 調(diào)用方法保持“臨近原則”,被調(diào)用的方法,放在調(diào)用方法下方
  • 統(tǒng)一調(diào)整IDE的Tab縮進(jìn)為4個空格
  • 空行的使用,拒絕拖沓無分割,關(guān)聯(lián)代碼段放一塊并與后面代碼分割
  • 用好TODO標(biāo)記
    • 記錄想法,記錄功能點,開發(fā)過程中可以利用TODO記錄一下臨時想法或為了不打擾思路留下待完善的說明
    • 刪除無用TODO,開發(fā)工具自動生成的TODO,或則已經(jīng)完善的TODO,一定要刪除。
  • 處理“魔數(shù)”等看不懂的神秘數(shù)字
    • 代碼中不要出現(xiàn)數(shù)字,特別是一些標(biāo)識不同類型的數(shù)字。
    • 所有意義數(shù)字全部抽取到Constant公共類中,避免散布在各位類中。

命名

1. 布局文件中的id命名

規(guī)則:使用駝峰命名,前綴+邏輯名稱,類變量名和布局文件id名稱保持一致,不需要下劃線分割

控件前綴規(guī)則:

  • TextView/EditText: text
  • Button/RadioButton/ImageButton: btn
  • ImageView: img
  • RelativeLayout/LinearLayout/FrameLayout: layout,
  • ListView: listView
  • WebView: webView
  • CheckBox: chBox
  • 如:TextView @+id/textTitle
  • 如:EditView @+id/textName
  • 如:Button @+id/btnSearch

2. 布局文件命名

規(guī)則: 使用前綴_邏輯名稱命名,單詞全部小寫,單詞間以 下劃線 分割。

前綴規(guī)則:

  • Activity對應(yīng)的布局使用activity_

  • Fragment對應(yīng)的布局使用fragment_

  • 如:PublishActivity: activity_publish.xml

3. 資源文件命名

規(guī)則: 使用 前綴_用途 命名,單詞全部小寫,單詞間以 下劃線 分割。

  • drawable:

    • btn_back_selector.xml 控件前綴命名
    • common_circle_gray.xml 通用資源多處使用common_
    • chat_image_selector.xml 功能相關(guān)業(yè)務(wù)使用加用途前綴
  • drawable_hdpi:

    • btn_back_normal.9.png 控件前綴名稱
    • btn_back_press.9.png 控件前綴名稱
    • icon_login_lock.png icon_+用途
  • values/color:

    • pull_refresh_attrs.xml 引入的第三方資源,攜帶資源簡拼的前綴

4. 類和接口命名

規(guī)則: 使用駝峰規(guī)則,首字母必須大寫,使用名詞或名詞詞組。要求簡單易懂,富于描述,不允許出現(xiàn)無意義或錯誤單詞。

  • 如:class BookMarkAdd 正確
  • 如:class AddBookReadPlan 錯誤! 應(yīng)為 class BookReadPlanAdd

5. 方法的命名

規(guī)則: 使用駝峰規(guī)則,首字母必須小寫,使用動詞。要求簡單易懂,富于描述,不允許出現(xiàn)無意義或錯誤單詞。

  • 如:public void run();
  • 如:public String getBookName();

6. 變量命名

規(guī)則: 使用駝峰規(guī)則,首字母必須小寫,使用名詞或名詞詞組。要求簡單易懂,富于描述,不允許出現(xiàn)無意義或錯誤單詞。

  • 成員變量命名,不要在私有變量前添加m字樣
  • 常量命名,全部大寫,單詞間用下劃線隔開

其他

  • 空行:空行將邏輯相關(guān)代碼段隔開,簡潔清楚,提高可讀性
    • 成員變量之間,根據(jù)業(yè)務(wù)形成分組加空行
    • 方法之間加空行
  • 控制語句
    • 減少條件嵌套,不要超過3層
    • if判斷使用“衛(wèi)語句”,減少層級
      if(obj != null) { doSomething(); }
      修改為:
      if(obj == null) { return; } doSomething();
    • if語句必須用{}包括起來,即便是只有一句
  • 方法
    • 拆分臃腫方法,每個方法只作一件事
    • 做同一個邏輯的方法,盡量靠近放到一塊,方便查看
    • 不要使用 try catch 處理業(yè)務(wù)邏輯
    • 使用JSON工具類,不要手動解析和拼裝數(shù)據(jù)
  • Activity繼承BaseFragmentActivity或SwipeBackActivity,可以使用ButterKnife注解代替findViewById。

IDE

  • Android Studio (越早使用越好)
  • Android SDK 4.4W (API 20 統(tǒng)一開發(fā)版本)
  • JDK 1.8(統(tǒng)一開發(fā)版本)

Libraries

** Base **

  • fastjson-android-1.2.4.jar
  • okhttp-2.2.0.jar
  • okio-1.2.0.jar
  • picasso-2.5.0.jar
  • butterknife:7.0.1
  • ormlite-android:4.48

** UI **

  • PullToRefresh
  • QuickAdapter
  • PagerSlidingTabStrip
  • SystemBarTint 狀態(tài)欄以及導(dǎo)航欄設(shè)置背景顏色
  • SwipeBackLayout 左滑返回
  • PullToZoomView 可以下拉縮放HeaderView
  • AutoLoopViewPager 輪播圖
  • PhotoView
  • ViewPageIndicator

最后打一個廣告

純凈日報 https://github.com/laucherish/PureZhihuD
一個采用 RxJava + Retrofit + OkHttp 框架實現(xiàn)的開源軟件

純凈日報界面
最美的風(fēng)景在路上
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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