Android项目规范

Model规范

命名规范,参考阿里巴巴JAVA规范

Gson采用注解方式,不需要进行混淆配置

public field

equals( ) & hashCode( )

Gson自动生成后核对字段类型,尤其是float或double类型被设置为int类型

不参与运算的数字类型的,建议声明为String类型

id命名规范

ListView, ViewPager, SwipeRefreshLayout等一般页面只有一个的控件,可以直接命名为listView, viewPager, swipeRefreshLayout

TextView, ImageView, Button等常用的,一个页面一般不止一个。命名规范为tv_title, tvName, iv_Icon, iv_banner, bt_commit, bt_back。前缀+功能(讨论是否以下划线形式 tv_title, tv_name)

资源文件命名规范

Xml文件命名规范(模块+类型+页面+[功能])

所有文件名加模块统一前缀。AAPT打包时候会合并资源文件。

xml文件命名:例如 finance_list_item_equ.xml, finance_fragment_equ_detail.xml, finance_activity_account.xml

drawable文件命名:finance_account_

资源图片命名规范

一般命名:模块+页面+组件前缀+功能+状态

app_main_home_tab_category_default.png

app_main_home_tab_category_selected.png

app_main_home_tab_category.xml

模块内通用图片命名:模块+功能+状态

base_toolbar_back_default.png

base_toolbar_back_pressed.png

base_toolbar_back.png

SharedPreference文件命名(+模块前缀)

App模块下的UserConifg对应的XML文件名 app_user_config.xml

Finance模块下的开关控制对应的MXL命名文件finance_settings.xml

Db同上(+模块前缀)

Style命名规范

规范同类命名规范一致,驼峰,首字母大写。例如AppTheme, MainActivityTheme

加模块前缀。例如:TrpayMainActivityTheme BaseToolbarStyle

Color命名规范

加模块前缀

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”;

典型方法

从网络请求数据 reqGet作为前缀。例如reqGetUserInfo(), reqGetInvestDetail()

向服务器提交数据reqPost、reqSubmit、reqSet、reqUpdate等reqPostUserProfile(),reqUpdateUserName()

静态量

静态变量以s作为前缀,例如priviate static OnPermissionCallbacksOnPermissionCallback;

静态常量全大小,下划线分割单词,例如public static final intINVEST_TYPE_I_CUN = 1;

注释

页面注释:

Activity、Fragment及包含复杂业务的View组件需要有截图注释点击查看示例

Model采用Java标准的文档注释

Java文件注释:

创建文件头注释模版

Created by YourName on 2017/3/23.

常量

不同作用的常量放在不同的Java文件里面

适合使用枚举的地方用常量加注解实现点我查看示例

 其他

TextUtil.isEmpty( )建议进行静态导包

NullUtil静态导包

Java代码规范

阿里巴巴Java规范

Googgle Java Style

资源命名规范

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 图标:ic 背景:bg

例子

account_ic_avatar_default account_bg_goods_list_header

控件ID

原则:

```java

驼峰命名,description+控件名缩写

ListView, ViewPager, SwipeRefreshLayout等一般页面只有一个的控件,可以直接命名为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 常见颜色使用colors.xml文件管理 如:white、black、transparent、colorTheme、colorPrimary、black10、white50 非常见颜色直接写在布局文件中

例子

xml

Style文件

原则

java module+what+继承关系+where

例子

xml

Dimens、Integer等文件

原则

java module_what_where_description

例子:

xml 16dp 16dp 10sp 12sp 14sp 16sp 18sp 20sp 50dp

资源文件注意事项

ResourceOptimize

对UI提供的图片进行压缩空间的检测(tinypng.com)

WebP格式图片

常见图片状态命名统一:_pressed _default _enable _disable _selected _focused

图片要根据UI切图的屏幕规格放到对应dpi的drawable文件内

shape、selector等xml资源统一放在drawable(无dpi后缀)文件夹

Shape类型定义一定要求有背景

启动图标统一防止在对应dpi的mipmap文件内

默认value文件要包含带后缀value文件的内容,比如,在value-v21文件中声明的内容,在value中也必须声明

Manifest内Activity要声明screenOrientation

对于小图标,即使图片一模一样但使用的地方毫无相关性,就复制一份重新命名

XML灵活使用 xmlns:tools=“http://schemas.android.com/tools”

XML避免Empty Body

所有Style文件要有BaseStyle并保持合理的继承关系

XML内常用的组件统一用Style声明基础属性

所有的基础主题(如AppTheme)需要声明TextView的textColor\textSize\hintColor,防止因遗漏导致不同系统出现显示差异、不符合预期等

你可能感兴趣的:(Android项目规范)