Android程式碼規範參考指南

codeceo發表於2015-07-25

程式碼規範對於一個軟體專案來說非常重要,當然Android專案也不例外,一個優秀的Android專案不僅需要嚴謹的業務邏輯和架構設計,更需要一套統一優雅的程式碼規範標準,才可以讓整個專案團隊更加高效。

包命名規範

包(packages):採用反域名命名規則,全部使用小寫字母。一級包名為com,二級包名為xxx(可以是公司域名或者個人命名),三級包名根據應用進行命名,四級包名為模組名或層級名。

包名 說明
com.xxx.應用名稱縮寫.activities 頁面用到的Activity類(activities層級使用者介面)
com.xxx.應用名稱縮寫.fragment 頁面用到的Fragment類
com.xxx.應用名稱縮寫.base 頁面中每個Activity類共享的可以寫成一個BaseActivity類(基礎共享的類)
com.xxx.應用名稱縮寫.adapter 頁面用到的Adapter類(介面卡的類)
com.xxx.應用名稱縮寫.utils 此包中包含:公共工具方法類(包含日期、網路、儲存、日誌等工具類)
com.xxx.應用名稱縮寫.bean

(model/domain均可,個人喜好)

實體類
com.xxx.應用名稱縮寫.db 資料庫操作
com.xxx.應用名稱縮寫.view(或者.ui) 自定義的View類等
com.xxx.應用名稱縮寫.service Service服務
com.xxx.應用名稱縮寫.broadcast Broadcast服務

類命名規範

類(classes):名詞,採用大駝峰命名法,儘量避免縮寫,除非該縮寫是眾所周知的,比如HTML,URL,如果類名稱包含單詞縮寫,則單詞縮寫的每個字母均應大寫。

描述 例如
Application類 Application為字尾標識 XXXApplication
Activity類 Activity為字尾標識 閃屏頁面類

SplashActivity

解析類 Handler為字尾標識
公共方法類 Utils或Manager為字尾標識 執行緒池管理類:ThreadPoolManager

日誌工具類:LogUtils

資料庫類 以DBHelper字尾標識 MySQLiteDBHelper
Service類 以Service為字尾標識 播放服務:PlayService
BroadcastReceiver類 以Broadcast為字尾標識 時間通知:

TimeBroadcast

ContentProvider類 以Provider為字尾標識 單詞內容提供者:DictProvider
直接寫的共享基礎類 以Base為字首 BaseActivity,

BaseFragment

變數命名規範

變數(variables)採用小駝峰命名法。類中控制元件名稱必須與xml佈局id保持一致。

公開的常量:定義為靜態final,名稱全部大寫。eg: public staticfinal String ACTION_MAIN=”android.intent.action.MAIN”;

靜態變數:名稱以s開頭 eg:private static long sInstanceCount = 0;

非靜態的私有變數、protected的變數:以m開頭,eg:private Intent mItent;

介面命名規範

介面(interface):命名規則與類一樣採用大駝峰命名法,多以able或ible結尾,eg:interface Runable; interface Accessible;

方法命名規範

方法(methods):動詞或動名詞,採用小駝峰命名法,eg:onCreate(),run();

方法 說明
initXX() 初始化相關方法,使用init為字首標識,如初始化佈局initView()
isXX() checkXX()方法返回值為boolean型的請使用is或check為字首標識
getXX() 返回某個值的方法,使用get為字首標識
processXX() 對資料進行處理的方法,儘量使用process為字首標識
displayXX() 彈出提示框和提示資訊,使用display為字首標識
saveXX() 與儲存資料相關的,使用save為字首標識
resetXX() 對資料重組的,使用reset字首標識
clearXX() 清除資料相關的
removeXX() 清除資料相關的
drawXXX() 繪製資料或效果相關的,使用draw字首標識

佈局檔案命名規範

全部小寫,採用下劃線命名法

1).contentview命名, Activity預設佈局,以去掉字尾的Activity類進行命名。不加字尾:

功能模組.xml

eg:main.xml、more.xml、settings.xml

或者:activity_功能模組.xml

eg:activity_main.xml、activity_more.xml

2).Dialog命名:dialog_描述.xml

eg:dlg_hint.xml

3).PopupWindow命名:ppw_描述.xml

eg:ppw_info.xml

4). 列表項命名listitem_描述.xml

eg:listitem_city.xml

5).包含項:include_模組.xml

eg:include_head.xml、include_bottom.xml

6).adapter的子佈局:功能模組_item.xml

eg:main_item.xml、

資源id命名規範

命名模式為:view縮寫_模組名稱_view的邏輯名稱

view的縮寫詳情如下:

控制元件

縮寫

LayoutView

lv

RelativeView

rv

TextView

tv

Button

btn

ImageButton

imgBtn

ImageView

iv

CheckBox

cb

RadioButton

rb

analogClock

anaClk

DigtalClock

dgtClk

DatePicker

dtPk

EditText

edtTxt

TimePicker

tmPk

toggleButton

tglBtn

ProgressBar

proBar

SeekBar

skBar

AutoCompleteTextView

autoTxt

ZoomControls

zmCtl

VideoView

vdoVi

WdbView

webVi

RantingBar

ratBar

Tab

tab

Spinner

spn

Chronometer

cmt

ScollView

sclVi

TextSwitch

txtSwt

ImageSwitch

imgSwt

listView

lVi 或則lv

ExpandableList

epdLt

MapView

mapVi

動畫檔案命名

動畫檔案(anim資料夾下):全部小寫,採用下劃線命名法,加字首區分。

//前面為動畫的型別,後面為方向

動畫命名例子 規範寫法 備註
fade_in 淡入
fade_out 淡出
push_down_in 從下方推入
push_down_out 從下方推出
push_left 推像左方
slide_in_from_top 從頭部滑動進入
zoom_enter 變形進入
slide_in 滑動進入
shrink_to_middle 中間縮小

圖片資原始檔命名

命名 說明
bg_xxx 這種圖片一般那些比較大的圖片,比如作為某個Activity的背景等
btn_xxx 按鈕,一般用於按鈕,而且這種按鈕沒有其他狀態
ic_xxx 圖示,一般用於單個圖示,比如啟動圖片ic_launcher
bg_描述_狀態1[_狀態2] 用於控制元件上的不同狀態
btn_描述_狀態1[_狀態2] 用於按鈕上的不同狀態
chx_描述_狀態1[_狀態2] 選擇框,一般有2態和4態

一些常見的單詞縮寫

名稱 縮寫

icon

ic (主要用在app的圖示)

color

cl(主要用於顏色值)

divider

di(主要用於分隔線,不僅包括Listview中的divider,還包括普通佈局中的線)

selector

sl(主要用於某一view多種狀態,不僅包括Listview中的selector,還包括按鈕的selector)

average

avg

background

Bg(主要用於佈局和子佈局的背景)

buffer

buf

control

ctrl

delete

del

document

doc

error

err

escape

esc

increment

inc

infomation

info

initial

init

image

img

Internationalization

I18N

length

len

library

lib

message

msg

password-

pwd

position

pos

server

srv

string

str

temp

tmp

window

wnd(win)

相關文章