Model規(guī)范
命名規(guī)范踪蹬,參考阿里巴巴JAVA規(guī)范
Gson采用注解方式,不需要進(jìn)行混淆配置
public field
equals( ) & hashCode( )
Gson自動(dòng)生成后核對(duì)字段類型,尤其是float或double類型被設(shè)置為int類型
不參與運(yùn)算的數(shù)字類型的仅醇,建議聲明為String類型
id命名規(guī)范
ListView, ViewPager, SwipeRefreshLayout等一般頁(yè)面只有一個(gè)的控件,可以直接命名為listView, viewPager, swipeRefreshLayout
TextView, ImageView, Button等常用的,一個(gè)頁(yè)面一般不止一個(gè)溃论。命名規(guī)范為tv_title, tvName, iv_Icon, iv_banner, bt_commit, bt_back。前綴+功能(討論是否以下劃線形式 tv_title, tv_name)
資源文件命名規(guī)范
Xml文件命名規(guī)范(模塊+類型+頁(yè)面+[功能])
所有文件名加模塊統(tǒng)一前綴痘昌。AAPT打包時(shí)候會(huì)合并資源文件钥勋。
xml文件命名:例如 finance_list_item_equ.xml, finance_fragment_equ_detail.xml, finance_activity_account.xml
drawable文件命名:finance_account_
資源圖片命名規(guī)范
一般命名:模塊+頁(yè)面+組件前綴+功能+狀態(tài)
app_main_home_tab_category_default.png
app_main_home_tab_category_selected.png
app_main_home_tab_category.xml
模塊內(nèi)通用圖片命名:模塊+功能+狀態(tài)
base_toolbar_back_default.png
base_toolbar_back_pressed.png
base_toolbar_back.png
SharedPreference文件命名(+模塊前綴)
App模塊下的UserConifg對(duì)應(yīng)的XML文件名 app_user_config.xml
Finance模塊下的開(kāi)關(guān)控制對(duì)應(yīng)的MXL命名文件finance_settings.xml
Db同上(+模塊前綴)
Style命名規(guī)范
規(guī)范同類命名規(guī)范一致,駝峰辆苔,首字母大寫算灸。例如AppTheme, MainActivityTheme
加模塊前綴。例如:TrpayMainActivityTheme BaseToolbarStyle
Color命名規(guī)范
加模塊前綴
KEY
SharedPreference中的key都以SP_KEY_作為前綴,定義的常量名字作為Value
例如:private static final StringSP_KEY_USER_TOKEN= “SP_USER_TOKEN”;
例如:private static final StringSP_KEY_IS_FIRST_LAUNCH= “SP_IS_FIRST_LAUNCH”;
Activity中Intent的KEY都以INTENT_KEY_作為前綴,定義的常量名字作為Value
例如:private static final StringINTENT_KEY_USER_ID= “INTENT_KEY_USER_ID”;
例如:private static final StringINTENT_KEY_ORDER_MODEL= “INTENT_KEY_ORDER_MODEL”;
Fragment中Bundle的KEY都以BUNDLE_KEY_作為前綴
例如:private static final StringBUNDLE_KEY_ORDER_ID= “BUNDLE_KEY_ORDER_ID”;
典型方法
從網(wǎng)絡(luò)請(qǐng)求數(shù)據(jù) reqGet作為前綴驻啤。例如reqGetUserInfo(), reqGetInvestDetail()
向服務(wù)器提交數(shù)據(jù)reqPost菲驴、reqSubmit、reqSet骑冗、reqUpdate等reqPostUserProfile(),reqUpdateUserName()
靜態(tài)量
靜態(tài)變量以s作為前綴赊瞬,例如priviate static OnPermissionCallbacksOnPermissionCallback;
靜態(tài)常量全大小先煎,下劃線分割單詞,例如public static final intINVEST_TYPE_I_CUN = 1;
注釋
頁(yè)面注釋:
Activity巧涧、Fragment及包含復(fù)雜業(yè)務(wù)的View組件需要有截圖注釋點(diǎn)擊查看示例
Model采用Java標(biāo)準(zhǔn)的文檔注釋
Java文件注釋:
創(chuàng)建文件頭注釋模版
Created by YourName on 2017/3/23.
常量
不同作用的常量放在不同的Java文件里面
適合使用枚舉的地方用常量加注解實(shí)現(xiàn)點(diǎn)我查看示例
?其他
TextUtil.isEmpty( )建議進(jìn)行靜態(tài)導(dǎo)包
NullUtil靜態(tài)導(dǎo)包
Java代碼規(guī)范
資源命名規(guī)范
Layout文件
原則:
xml module_what_where_description
例子:
xml mall_activity_order.xml mall_fragment_order.xml mall_dialog_order.xml mall_include_toolbar.xml mall_include_order_header.xml mall_merge_order_content.xml mall_item_goods.xml
Drawable文件
原則
java module_what_where_description 圖標(biāo):ic 背景:bg
例子
account_ic_avatar_default account_bg_goods_list_header
控件ID
原則:
```java
駝峰命名薯蝎,description+控件名縮寫
ListView, ViewPager, SwipeRefreshLayout等一般頁(yè)面只有一個(gè)的控件,可以直接命名為listView, viewPager, swipeRefreshLayout
常用UI控件縮寫表
LinearLayout:layout
RelativeLayout:layout
FrameLayout:layout
TableLayout:layout
Button:btn
ImageButton:btn
TextView:tv
EditText:et
ImageView:iv
```
例子:
xml tvTitle ivAvatar btnCommit tabBottom
Color文件
原則
xml 常見(jiàn)顏色使用colors.xml文件管理 如:white谤绳、black占锯、transparent、colorTheme闷供、colorPrimary烟央、black10、white50 非常見(jiàn)顏色直接寫在布局文件中
例子
xml <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="@dimen/common_toolbar_height" android:background="?attr/colorPrimary"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="#333333""/>
Style文件
原則
java module+what+繼承關(guān)系+where
例子
xml <!--Text Style--> <style name="Mall.TextAppearance" parent="Mall"> <item name="android:textStyle">normal</item> </style> <style name="Mall.TextAppearance.Toolbar.Title"parent="Common.TextAppearance"> <item name="android:textSize">@dimen/common_text_size_large_x</item> <item name="android:textColor">@color/common_toolbar_title_color</item> </style> <style name="Mall.TextAppearance.Toolbar.Menu" parent="Common.TextAppearance"> <item name="android:textSize">@dimen/common_text_size_small</item> <item name="android:textColor">@color/common_toolbar_title_color</item> </style> <!--Activity Style--> <style name="Common.Activity" parent="Theme.AppCompat.Light.NoActionBar" /> <style name="Common.Activity.Base" parent="Common.Activity"> <item name="colorPrimary">@color/common_colorPrimary</item> <item name="colorPrimaryDark">@color/common_colorPrimaryDark</item> <item name="colorAccent">@color/common_colorAccent</item> <item name="android:windowBackground">@null</item> <item name="android:windowSoftInputMode">adjustResize</item> <item name="android:windowAnimationStyle">@style/Common.Animation.Activity.Base</item> <item name="buttonStyle">@style/Widget.AppCompat.Button.Borderless</item> </style> <style name="Common.Activity.Base.FullScreen" parent="Common.Activity.Base"> <item name="android:windowFullscreen">true</item> </style> <style name="Common.Activity.Base.FullScreen.Translucent" parent="Common.Activity.Base.FullScreen"> <item name="android:backgroundDimEnabled">false</item> <item name="android:windowBackground">@color/common_transparent</item> <item name="android:windowIsTranslucent">true</item> <item name="colorPrimaryDark">@color/common_transparent</item> <item name="android:windowAnimationStyle">@null</item> </style>
Dimens歪脏、Integer等文件
原則
java module_what_where_description
例子:
xml <dimen name="common_activity_horizontal_margin">16dp</dimen> <dimen name="common_activity_vertical_margin">16dp</dimen> <dimen name="common_text_size_tiny">10sp</dimen> <dimen name="common_text_size_small">12sp</dimen> <dimen name="common_text_size_normal">14sp</dimen> <dimen name="common_text_size_large">16sp</dimen> <dimen name="common_text_size_large_x">18sp</dimen> <dimen name="common_text_size_large_xx">20sp</dimen> <dimen name="common_toolbar_height">50dp</dimen>
資源文件注意事項(xiàng)
ResourceOptimize
對(duì)UI提供的圖片進(jìn)行壓縮空間的檢測(cè)(tinypng.com)
WebP格式圖片
常見(jiàn)圖片狀態(tài)命名統(tǒng)一:_pressed _default _enable _disable _selected _focused
圖片要根據(jù)UI切圖的屏幕規(guī)格放到對(duì)應(yīng)dpi的drawable文件內(nèi)
shape疑俭、selector等xml資源統(tǒng)一放在drawable(無(wú)dpi后綴)文件夾
Shape類型定義一定要求有背景
啟動(dòng)圖標(biāo)統(tǒng)一防止在對(duì)應(yīng)dpi的mipmap文件內(nèi)
默認(rèn)value文件要包含帶后綴value文件的內(nèi)容,比如婿失,在value-v21文件中聲明的內(nèi)容钞艇,在value中也必須聲明
Manifest內(nèi)Activity要聲明screenOrientation
對(duì)于小圖標(biāo),即使圖片一模一樣但使用的地方毫無(wú)相關(guān)性豪硅,就復(fù)制一份重新命名
XML靈活使用 xmlns:tools=“http://schemas.android.com/tools”
XML避免Empty Body
所有Style文件要有BaseStyle并保持合理的繼承關(guān)系
XML內(nèi)常用的組件統(tǒng)一用Style聲明基礎(chǔ)屬性
所有的基礎(chǔ)主題(如AppTheme)需要聲明TextView的textColor\textSize\hintColor,防止因遺漏導(dǎo)致不同系統(tǒng)出現(xiàn)顯示差異哩照、不符合預(yù)期等