Android編程開發規範 android
原文地址 http://www.jianshu.com/p/9b8aeca9b281 web
一.約定編程
Activity.onCreate(),Fragment.onActivityCreated(),做爲程序入口,不用寫入太多代碼,儘可能保持僅僅調用initXXX()方法,簡單明瞭展現調用過程。如:initData()。initView()。 單個方法體不要過長 代碼不論什麼地方不要拼錯單詞 杜絕整個類代碼格式化 調用方法保持「臨近原則」,被調用的方法,放在調用方法下方 統一調整IDE的Tab縮進爲4個空格 空行的使用,拒絕拖沓無切割,關聯代碼段放一塊並與後面代碼切割 用好TODO標記 記錄想法,記錄功能點,開發過程當中可以利用TODO記錄一下暫時想法或爲了避免打攪思路留下待無缺的說明 刪除無用TODO。開發工具本身主動生成的TODO,或則已經無缺的TODO,必定要刪除。 處理「魔數」等看不懂的神奇數字 代碼中不要出現數字。特別是一些標識不一樣類型的數字。全部意義數字全部抽取到Constant公共類中,避免散佈在各位類中。
二.命名
1. 佈局文件裏的id命名json
規則:使用駝峯命名。前綴+邏輯名稱,類變量名和佈局文件id名稱保持一致,不需要下劃線切割工具
控件前綴規則:oop
TextView/EditText: tv/et Button/RadioButton/ImageButton: btn ImageView: img RelativeLayout/LinearLayout/FrameLayout: layout, ListView: listView WebView: webView CheckBox: chBox 如:TextView @+id/tvTitle 如:EditView @+id/etName 如:Button @+id/btnSearch
2.佈局文件命名佈局
規則: 使用前綴_邏輯名稱命名,單詞全部小寫,單詞間以 下劃線 切割。post
前綴規則:開發工具
Activity相應的佈局使用activity_ 有時候類名過長 可簡寫爲aty Fragment相應的佈局使用fragment_ 簡寫 fgt 如:PublishActivity: activity_publish.xml PublishAty
3.資源文件命名ui
規則: 使用 前綴_用途 命名,單詞全部小寫。單詞間以 下劃線 切割。
drawable: btn_back_selector.xml 控件前綴命名 common_circle_gray.xml 通用資源多處使用common_ chat_image_selector.xml 功能相關業務使用加用途前綴 drawable_hdpi: btn_back_normal.9.png 控件前綴名稱 btn_back_press.9.png 控件前綴名稱 icon_login_lock.png icon_+用途 values/color: pull_refresh_attrs.xml 引入的第三方資源。攜帶資源簡拼的前綴
4.類和接口命名
規則: 使用駝峯規則,首字母必須大寫,使用名詞或名詞詞組。要求簡單易懂,富於描寫敘述,不一樣意出現無心義或錯誤單詞。
如:class BookMarkAdd 正確 如:class AddBookReadPlan 錯誤! 應爲 class BookReadPlanAdd
5.方法命名
規則: 使用駝峯規則。首字母必須小寫,使用動詞。
要求簡單易懂。富於描寫敘述,不一樣意出現無心義或錯誤單詞。
如:public void run(); 如:public String getBookName();
6.變量命名
規則: 使用駝峯規則,首字母必須小寫,使用名詞或名詞詞組。要求簡單易懂,富於描寫敘述,不一樣意出現無心義或錯誤單詞。
成員變量命名,不要在私有變量前加入m字樣 常量命名。全部大寫,單詞間用下劃線隔開
7.其它
空行:空行將邏輯相關代碼段隔開。簡潔清楚。提升可讀性 成員變量之間,依據業務造成分組加空行 方法之間加空行 控制語句 下降條件嵌套,不要超過3層 if推斷使用「衛語句」。下降層級 if(obj != null) { doSomething();} 改動爲: if(obj == null) { return;}doSomething(); if語句必須用{}包含起來,即使是僅僅有一句 方法 拆分臃腫方法,每個方法僅僅做一件事 作同一個邏輯的方法,儘可能靠近放到一塊。方便查看 不要使用 try catch 處理業務邏輯 使用JSON工具類,不要手動解析和拼裝數據 Activity繼承BaseFragmentActivity或SwipeBackActivity,可以使用ButterKnife註解取代findViewById。
三.IDE
Android Studio (越早使用越好) Android SDK 4.4W (API 20 統一開發版本號) JDK 1.8(統一開發版本號)
四.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 volley
UI
PullToRefresh QuickAdapter PagerSlidingTabStrip SystemBarTint 狀態欄以及導航欄設置背景顏色 SwipeBackLayout 左滑返回 PullToZoomView 可以下拉縮放HeaderView AutoLoopViewPager 輪播圖 PhotoView ViewPageIndicator