Android 程式碼規範大全
日誌工具類:`LogUtils`(`Logger` 也可)
列印工具類:`PrinterUtils` | | 資料庫類 | 功能名 + `DBHelper` | 新聞資料庫:`NewsDBHelper` | | 自定義的共享基礎類 | `Base` + 基礎 | `BaseActivity`, `BaseFragment` | | 抽象類 | `Base` / `Abstract` 開頭 | `AbstractLogin` | | 異常類 | `Exception` 結尾 | `LoginException` | | 介面 | `able` / `ible` 結尾 / I 開頭 | `Runnable`, `Accessible` ,`ILoginView` | 測試類的命名以它要測試的類的名稱開始,以 Test 結束。例如:`HashTest` 或 `HashIntegrationTest`。 介面(interface):命名規則與類一樣採用大駝峰命名法,多以 able 或 ible 結尾,如 `interface Runnable`、`interface Accessible`。 > 注意:如果專案採用 MVP,所有 Model、View、Presenter 的介面都以 I 為字首,不加字尾,其他的介面採用上述命名規則。 ## 3.3 方法名 方法名都以 `lowerCamelCase` 風格編寫。 方法名通常是動詞或動詞短語。 | 方法 | 說明 | | :-------------------------- | ---------------------------------------- | | `initXX()` | 初始化相關方法,使用 init 為字首標識,如初始化佈局 `initView()` | | `isXX()`, `checkXX()` | 方法返回值為 boolean 型的請使用 is/check 為字首標識 | | `getXX()` | 返回某個值的方法,使用 get 為字首標識 | | `setXX()` | 設定某個屬性值 | | `handleXX()`, `processXX()` | 對資料進行處理的方法 | | `displayXX()`, `showXX()` | 彈出提示框和提示資訊,使用 display/show 為字首標識 | | `updateXX()` | 更新資料 | | `saveXX()`, `insertXX()` | 儲存或插入資料 | | `resetXX()` | 重置資料 | | `clearXX()` | 清除資料 | | `removeXX()`, `deleteXX()` | 移除資料或者檢視等,如 `removeView()` | | `drawXX()` | 繪製資料或效果相關的,使用 draw 字首標識 | ## 3.4 變數命名 這裡的變數為廣義的變數,包括了常量、區域性變數、全域性變數等,它們的基礎規則是: - 型別需要是名詞 / 名詞短語; - 採用 `lowerCamelCase` 風格; 在具體的變數命名時,會根據該變數的型別不同而附加額外的命名規則: | 型別 | 說明 | 例如 | | :-------------------- | :------------------------ | :--------------------------------------- | | 常量 | 大寫 & 下劃線隔開,Kotlin 一定要 const val | `const val TYPE_NORMAL = 1`
`static final TYPE_NORMAL = 1` | | 臨時變數名 | 整型:`i`、`j`、`k`、`m`、`n` ,字元型一般用 `c`、`d`、`e` | `for(int i = 0;i < len; i++)` | | 其他變數 | `lowerCamelCase` 風格即可,私有變數也不要使用 `m` 開頭 | `private int tmp;` | | Kotlin | 只讀變數使用 `val`,可變變數使用 `var`,儘可能使用 `val` | `var tmp = 0`
`val defaultIndex = 0` | ## 3.5 資源命名 Android 的資源包括: ![](https://upload-images.jianshu.io/upload_images/3994917-03c995a36e14ed45.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 資原始檔命名為全部小寫,採用下劃線命名法。 ### 3.5.1 動畫資原始檔(anim/ 和 animator/) 安卓主要包含屬性動畫和檢視動畫,其檢視動畫包括補間動畫和逐幀動畫。屬性動畫檔案需要放在 `res/animator/` 目錄下,檢視動畫檔案需放在 `res/anim/` 目錄下。命名規則:`{模組名_}邏輯名稱`。 > 說明:`{}` 中的內容為可選,`邏輯名稱` 可由多個單詞加下劃線組成。例如:`refresh_progress.xml`、`market_cart_add.xml`、`market_cart_remove.xml`。 如果是普通的補間動畫或者屬性動畫,可採用:`動畫型別_方向` 的命名方式。 例如: | 名稱 | 說明 | | ------------------- | ------- | | `fade_in` | 淡入 | | `fade_out` | 淡出 | | `push_down_in` | 從下方推入 | | `push_down_out` | 從下方推出 | | `push_left` | 推向左方 | | `slide_in_from_top` | 從頭部滑動進入 | | `zoom_enter` | 變形進入 | | `slide_in` | 滑動進入 | | `shrink_to_middle` | 中間縮小 | ### 3.5.2 顏色資原始檔(color/) color/ 是專門用於存放顏色相關資源的資料夾。命名規則:`型別{_模組名}_邏輯名稱`。 > 說明:`{}` 中的內容為可選。例如:`sel_btn_font.xml`。 顏色資源也可以放於 `res/drawable/` 目錄,引用時則用 `@drawable` 來引用,但不推薦這麼做,最好還是把兩者分開。 ### 3.5.3 圖片資原始檔(drawable/ 和 mipmap/) `res/drawable/` 目錄下放的是點陣圖檔案(.png、.9.png、.jpg、.gif)或編譯為可繪製物件資源子型別的 XML 檔案,而 `res/mipmap/` 目錄下放的是不同密度的啟動圖示,所以 `res/mipmap/` 只用於存放啟動圖示,其餘圖片資原始檔都應該放到 `res/drawable/` 目錄下。 命名規則:`型別{_模組名}_邏輯名稱`、`型別{_模組名}_顏色`。 > 說明:`{}` 中的內容為可選;`型別` 可以是可繪製物件資源型別,也可以是控制元件型別最後可加字尾 `_small` 表示小圖,`_big` 表示大圖。 例如: | 名稱 | 說明 | | ------------------------- | ------------------------ | | `btn_main_about.png` | 主頁關於按鍵 `型別_模組名_邏輯名稱` | | `btn_back.png` | 返回按鍵 `型別_邏輯名稱` | | `divider_maket_white.png` | 商城白色分割線 `型別_模組名_顏色` | | `ic_edit.png` | 編輯圖示 `型別_邏輯名稱` | | `bg_main.png` | 主頁背景 `型別_邏輯名稱` | | `btn_red.png` | 紅色按鍵 `型別_顏色` | | `btn_red_big.png` | 紅色大按鍵 `型別_顏色` | | `ic_avatar_small.png` | 小頭像圖示 `型別_邏輯名稱` | | `bg_input.png` | 輸入框背景 `型別_邏輯名稱` | | `divider_white.png` | 白色分割線 `型別_顏色` | | `bg_main_head.png` | 主頁頭部背景 `型別_模組名_邏輯名稱` | | `def_search_cell.png` | 搜尋頁面預設單元圖片 `型別_模組名_邏輯名稱` | | `ic_more_help.png` | 更多幫助圖示 `型別_邏輯名稱` | | `divider_list_line.png` | 列表分割線 `型別_邏輯名稱` | | `sel_search_ok.xml` | 搜尋介面確認選擇器 `型別_模組名_邏輯名稱` | | `shape_music_ring.xml` | 音樂介面環形形狀 `型別_模組名_邏輯名稱` | 如果有多種形態,如按鈕選擇器:`sel_btn_xx.xml`,採用如下命名: | 名稱 | 說明 | | ----------------------- | ----------------------------- | | `sel_btn_xx` | 作用在 `btn_xx` 上的 `selector` | | `btn_xx_normal` | 預設狀態效果 | | `btn_xx_pressed` | `state_pressed` 點選效果 | | `btn_xx_focused` | `state_focused` 聚焦效果 | | `btn_xx_disabled` | `state_enabled` 不可用效果 | | `btn_xx_checked` | `state_checked` 選中效果 | | `btn_xx_selected` | `state_selected` 選中效果 | | `btn_xx_hovered` | `state_hovered` 懸停效果 | | `btn_xx_checkable` | `state_checkable` 可選效果 | | `btn_xx_activated` | `state_activated` 啟用效果 | | `btn_xx_window_focused` | `state_window_focused` 視窗聚焦效果 | > 注意:使用 Android Studio 的外掛 SelectorChapek 可以快速生成 selector,前提是命名要規範。 ### 3.5.4 佈局資原始檔(layout/) 命名規則:`型別_模組名`、`{模組名_}型別_邏輯名稱`。(也採用 PBF,方便檢視,尤其在大專案中) > 說明:`{}` 中的內容為可選。 例如: | 型別 | 名稱 | 說明 | | ---------------------------| --------------------------- | --------------------------- | | `Activity` | `main_activity.xml` | 主窗體 `模組名_型別` | | `Fragment` | `music_fragment.xml` | 音樂片段 `模組名_型別` | | `Dialog` | `loading_dialog.xml` | 載入對話方塊 `邏輯名稱_型別` | | `PopupWindow` | `info_ppw.xml` | 資訊彈窗(PopupWindow) `邏輯名稱_型別` | | `adapter` 的列表項 | `main_song_item.xml` | 主頁歌曲列表項 `模組名_型別_邏輯名稱` | ### 3.5.5 佈局資源 id 命名 命名規則:`{模組名_}_邏輯名_view 縮寫(功能)`,例如: `main_search_btn`、`back_btn`。此外,採用 Kotlinx 直接獲取佈局檔案的時候,id 命名採用駝峰樣式。 > 說明:`{}` 中的內容為可選。參考 GoogleSamples Demo:https://github.com/android/architecture-samples 例如: | 型別 | 規範 | 命名示例 | | ---------------------------| --------------------------- | --------------------------- | | `TextView` | `xxx_text` | `user_login_text` | | `EditText` | `xxx_edit` | `user_login_edit` | | `ImageView` | `xxx_iv` | `user_login_iv` | | `Button` | `xxx_btn` | `user_login_btn` | | `CheckBox` | `xxx_cb` | `user_login_cb` | | `GridView` | `xxx_gv` | `user_login_gv` | | `ListView` | `xxx_lv` | `user_login_lv` | | `RecyclerView` | `xxx_rv` | `user_login_rv` | | `RadioButton` | `xxx_rb` | `user_login_rb` | | `LinearLayout` | `xxx_ll` | `user_login_ll` | | `RelativeLayout` | `xxx_rl` | `user_login_rl` | | `FrameLayout` | `xxx_fl` | `user_login_fl` | | `GridLayout` | `xxx_gl` | `user_login_gl` | | `ConstraintLayout ` | `xxx_cl` | `user_login_cl` | ### 3.5.6 選單資原始檔(menu/) 選單相關的資原始檔應放在該目錄下。命名規則:`{模組名_}邏輯名稱` > 說明:`{}` 中的內容為可選。例如:`main_drawer.xml`、`navigation.xml`。 ### 3.5.7 colors.xml `
Android 程式碼規範大全
# 前言 雖然我們專案的程式碼時間並不長,也沒經過太多人手,但程式碼的規範性依然堪憂,目前存在較多的比較自由的「程式碼規範」,這非常不利於專案的維護,程式碼可讀性也不夠高, 此外,客戶端和後端的研發模式也完全不同,後端研發基本都是基於 SOA 思想的,通常一個子系統 3 個人一起維護就已經是很充分的人力了,
前端程式碼規範大全
初衷 不管參與專案的人數有多少,確保每一行程式碼都像是同一個人編寫的; 根據實際情況制定良好的程式碼規範; 遵守編碼風格使程式碼更容易維護,對長期專案大有裨益; 實施程式碼規範增加程式碼可讀性,提高協作開發效率; 實施程式碼規範減少低
Android程式碼規範_持續更新
很慶幸,在我初入社會,就和一群大牛工作,並且我這張白紙,在大牛的工作中得到了比較好的薰陶和渲染。並且長此以往,根據學校老師,部落格大神,工作中大牛的程式碼風格,總結出來了自己當前的程式碼習慣和風格。 博主程式碼命名有些比較偏的命名 很可能是中國式英文,一
Android開發規範:程式碼規範(CheckStyle)
文章目錄 checkstyle: plugin checkstyle: gradle checkstyle: 155條規範 開發APP的過程中,每個團隊都會約定自己的程式碼規範。但是往往在實踐過程中,要麼由於開發週
程式碼規範和Android專案中的一些可用工具
這裡主要講一下關於程式碼規範的相關問題,和在Android專案中如何利用一些工具進行規範和檢查。程式碼規範不是一個Android專案特有的問題,所以前部分內容是不單針對Android的。 什麼是程式碼規範? 程式碼規範一般是指在程式設計過程中的一系列規則規範。 一般來說程式碼規
Android Studio自動檢查程式碼規範並提示如何優化的一些外掛
推薦幾個專案可能用到的外掛 1.CheckStyle 首先進入設定頁面進入Plugin頁面,如圖所示 點選Browse repositories進入選擇頁面,輸入checkstyle即可選擇安裝,如圖所示 安裝完成後點選Other Settings中的checkstyle進
Android 命名規範 (提高程式碼可以讀性)
剛接觸android的時候,命名都是按照拼音來,所以有的時候想看懂命名的那個控制元件什麼是什麼用的,就要讀一遍甚至好幾遍才知道,這樣的話,在程式碼的審查和修改過程中就會浪費不少不必要的時間。如果就是我一個人開發,一個人維護的話還好,可是如果一個專案是團隊分工
Java&Android程式碼註釋規範
一、註釋及簡介 1、鄙人寫的一些程式碼中,雖說有註釋,但都是一些不符合規則的註釋,即便拿出來查閱,也要花很一些時間才能搞懂程式的流程。為了良好的程式設計風格,我特意學習了java的文件註釋,也分享給大家,良好的程式設計風格確實很重要,不可忽略··· 2、說一
Android程式碼命名規範
前言 Android程式碼規範內容非常多,但對我們最有用& 最有影響的莫過於 Android程式碼的命名規範 可是,有很多人容易忽略Android程式碼的命名規範,從而導致程式碼的可讀性 & 維護性非常差,最終導致開發效率 & 維護效率降低 目
Android 編碼規範
完整 成員變量 整型 equals 簡潔 數據結構 替代 ive 中間 一、命名規範 1.1包命名 命名規則:一個唯一包名的前綴總是所有小寫ASCII字母而且是一個頂級域名,一般是com,edu,gov,mil,net,org等。 規約:以公司為準。通常是co
Android layout屬性大全
android ont roi http 布局 csdn -name str tail 第一類:屬性值 true或者 false 1:android:layout_alignParentStart緊貼父元素結束位置開始 2:android:layout_alignPar
aNDROID權限大全(很經典)
baidu android list lis com androi hao123 andro 經典 %E5%8F%91%E4%B8%AA%E6%96%B0%E6%89%8B%E6%84%9F%E6%83%B3%E8%AF%B8%E5%90%9B%E5%85%B1%E5%8B
值得你學習的 Android 開發規範(上)
web 數字 文件規範 () base lan 都是 3.5 tsp 前言 AS規範 命名規範 資源文件規範 版本統一規範 第三方庫規範 註釋規範 其他的一些規範 1 前言 為了利於項目維護以及規範開發,促進成員之間Code Revi
淺談Android編碼規範及命名規範
event err class wrap spa for循環 who 全局變量 經典 原文:淺談Android編碼規範及命名規範前言: 目前工作負責兩個醫療APP項目的開發,同時使用LeanCloud進行雲端配合開發,完全單挑。 現大框架已經完成,正在進行細節模
Android開發規範最新詳盡版下載
1、開發規範的必要性 軟體開發需要規範,規範利於前期開發、團隊開發、後期迭代開發,最大限度的提高開發效率,降低開發成本,防範開發風險。Android開發規範一般包括Android 資原始檔命名與使用
Android Studio 外掛大全(轉)
轉自:http://blog.csdn.net/alpha58/article/details/62881144 現在Android的開發者基本上都使用android Studio進行開發(如果你還在使用eclipse那也行,畢竟你樂意怎麼樣都行)。使用好Android
C++程式碼規範和CodeReview
C++程式碼規範和CodeReview 背景 最近手頭上的開發工作基本已經完成主要功能,其後續進行的工作主要在細小功能的調整和完善上,週末在家看書,想到了CodeReview,想把這件事在組內推廣下(其實CodeReview應該是在開發過程中進行的,現在提出,也是希望以後不要步此後
[轉載] Python程式碼規範和命名規範
http://www.imooc.com/article/19184?block_id=tuijian_wz#child_5_1 Python程式碼規範和命名規範 前言 Python 學習之旅,先來看看 Python 的程式碼規範,讓自己先有個意識,而且在往後的學習中慢慢養成習慣
值得細讀!如何系統有效地提升Android程式碼的安全性?
眾所周知,程式碼安全是Android開發工作中的一大核心要素。 11月3日,安卓巴士全球開發者論壇線下系列沙龍第七站在成都順利舉辦。作為中國領先的安卓開發者社群,安卓巴士近年來一直致力於在全國各大城市舉辦線下技術大會,為Android開發者提供最為全面深入的安全技術解讀。網易雲易盾移動安全專家尹彬彬指出,安
程式碼規範工具大比拼---Alibaba Java Coding Guidelines
程式碼規範工具大比拼---Alibaba Java Coding Guidelines &n