Commit 69135abb authored by 王雷's avatar 王雷

新增文档文件

parent cf292a35
### Android工具配置
1. Android Studio尽量保持最新
2. 删除无用import
3. 编辑完代码需要格式化
### Android命名规范
> 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式
1. 包名
包名全部小写,不允许出现"中文"、"大写字母"或者"下划线",按"功能名称"命名,哪块要添加新功能,只需要改动某一package下的东西(ps 订单管理就只取创建一个orderManager包名,剩下的逻辑全写在里面)
2. 类名
类名都以 UpperCamelCase 风格编写。
> 大驼峰命名法 ,首字母及后面的每个词的首字母都大写
>
> Ps: PersonActivity
| 类 | 描述 | 举例 |
| ------------------- | --------------------------------- | -------------------------------- |
| Activity类 | 功能名加 + Activity | |
| Fragment类 | 功能名 + Fragment | 主页类 HomeFragment |
| Service类 | 功能名+Service | 时间服务 TimeService |
| BroadcastReceiver类 | 功能名 + Receiver | 推送接收 JPushReceiver |
| ContentProvider类 | 功能名 + Provider | ShareProvider |
| 自定义 View | 功能名 + View/ViewGroup(组件名称) | 如继承已有控件 ps ShapeButton, |
| Dialog对话框 | 功能名+Dialog | LoginDialog |
| Adapter 类 | 功能名 + Adapter | OrderDetailAdapter |
| 工具方法类 | 功能名 + Utils 或 Manager | 打印工具类:PrinterUtils |
| 自定义的共享基础类 | Base + 基础 | Base + 基础 |
| 抽象类 | Base / Abstract 开头+功能名 | AbstractLogin |
| 异常类 | Exception 结尾 | GsonParseExecption |
| 接口类 | able / ible 结尾 / I 开头 | Runnable, Accessible,ILoginView |
3. 方法
> - 方法名都以 `lowerCamelCase` (小驼峰命名法) 风格编写
>
> | 用途 | 说明 | 举例 |
> | ------------------------------------ | ---------------------------- | ------------------------------- |
> | 初始化相关方法,使用 init 为前缀标识 | 初始化相关操作以init作为前缀 | initView,initData |
> | 返回boolean的方法 | 以is/check作为前缀 | isPhoneNumber |
> | 返回某个值的方法 | 使用get作为前缀 | getName() |
> | 设置属性 | 使用set作为前缀 | setName() |
> | 处理相关的操作 | 使用handle/precess作为前缀, | handleMessage,processTouchEvent |
> | 弹出提示框和提示信息 | 使用 display/show 为前缀标识 | displayXX()`, `showXX() |
> | 更新数据 | updateXX() | - |
> | 保存或插入数据 | saveXX()`, `insertXX() | - |
> | 重置数据 | resetXX() | |
> | 清除数据 | clearXX() | |
> | 移除数据或者视图 | removeXX()`, `deleteXX() | |
> | 绘制数据或效果相关的 | drawXX() | |
>
> - 方法参数的命名
>
> - 方法参数 要把常用的参数放在前面 ,可为null的参数放在后面
>
> ```kotlin
> class MyView(private mContext:Context,callback:Callback?=null)
>
> ```
>
> - 方法的调用
>
> - 多参数的方法调用要确保每个,后面进行换行
>
> ```java
> loadPicture(context,
> "https://blankj.com/images/avatar.jpg",
> ivAvatar,
> "Avatar of the user",
> clickListener);
> ```
>
>
4. 变量命令
- 禁止使用中文或者中文拼音进行命名
> tuikuanAmount dianpuId
- 使用驼峰命名风格 (单词控制在三个以内)
- 局部变量或者公开的成员变量要以作用来命名
```java
public String name;
public TextView nameView;
public FrameLayout nameLayout;
```
- 非公开的成员变量要以小写m开头
```java
private String mName;
private TextView mNameView;
private FrameLayout mNameLayout;
```
- 布尔值命名规范,无论是局部变量还是成员变量,都不要带“is"
```java
// 不规范写法示例
private boolean mIsDebug;
boolean isDebug;
// 规范写法示例
private boolean mDebug;
boolean debug;
```
- 静态变量用小写s开头
```java
static Handler sHandler;
```
- 常量则需要用大写,并且用下划线代替驼峰,例如:
```java
static final String REQUEST_INSTALL_PACKAGES;
```
5. 资源命名
1. 动画命名(anim/ 和 animator/)
> 属性动画文件需要放在 `res/animator/` 目录下,视图动画文件需放在 `res/anim/` 目录下
- 命名规则
> 用 {模块名_}逻辑名称 ps: refresh_progress.xml`、`market_cart_add.xml`、`market_cart_remove.xml
2. 颜色命令(color/)
> 暂时以 color_颜色 ps color_fff
3. 图片资源命名(drawable/ 和 mipmap/)
> - 如果是业务模块下的资源,以 **模块 + 类型**命名
>
> ```xml
> share_link_ic.png(复制链接)
>
> share_moment_ic.png(分享到朋友圈)
>
> share_qq_ic.png(分享到 QQ 好友)
>
> share_qzone_ic.png(分享到 QQ 空间)
>
> share_wechat_ic.png(分享到微信好友)
> ```
>
> - 如果和业务模块不相干的资源,以 **作用 + 类型** 来命名
>
> ```xml
> button_rect_selector.xml(通用直角按钮样式)
>
> button_round_selector.xml(通用圆角按钮样式)
> ```
>
> 后缀命名
>
> | 名称 | 类型 |
> | -------- | ------ |
> | Ic | 图标 |
> | bg | 背景 |
> | Selector | 选择器 |
>
>
4. 布局命名
- 以 **模块 + 类型** 来命名,例如:
```xml
home_activity.xml
setting_fragment.xml
menu_item.xml
address_dialog.xml
```
5. 布局id命名
- 应该以 **控件的缩写 + 模块名 + 作用** 来命名,例如
```xml
@+id/R.id.rg_login_type
@+id/R.id.et_login_phone
@+id/R.id.et_login_sms
@+id/R.id.et_login_password
@+id/R.id.btn_login_commit
```
- View 和 Layout 控件缩写表,这里列举最常见的几个
| 名称 | 缩写 |
| -------------- | ---- |
| TextView | tv |
| EditText | et |
| Button | btn |
| ImageView | iv |
| ImageButton | ib |
| ListView | lv |
| RecyclerView | rv |
| RadioButton | rb |
| RadioGroup | rg |
| ProgressBar | pb |
| CheckBox | cb |
| TableLayout | tl |
| ScrollView | sv |
| LinearLayout | ll |
| RelativeLayout | rl |
| FrameLayout | fl |
6. strings.xml命名
- **模块 + 功能** 来命名,例如:
```xml
<!-- 主界面 -->
<string name="home_nav_index">首页</string>
<string name="home_nav_found">发现</string>
<string name="home_nav_message">消息</string>
<string name="home_nav_me">我的</string>
<string name="home_exit_hint">再按一次退出</string>
<!-- 登录界面 -->
<string name="login_register">注册</string>
<string name="login_phone_hint">请输入手机号</string>
<string name="login_password_hint">请输入密码</string>
<string name="login_forget">忘记密码?</string>
<string name="login_text">登录</string>
<string name="login_other">其他登录方式</string>
<!-- 注册界面 -->
<string name="register_title">注册</string>
<string name="register_hint">手机号仅用于登录和保护账号安全</string>
<string name="register_login">登录</string>
<string name="register_password_hint1">设置密码</string>
<string name="register_password_hint2">再次输入密码</string>
<string name="register_password_input_error">两次密码输入不一致,请重新输入</string>
<!-- 设置界面 -->
<string name="setting_title">设置</string>
<string name="setting_language_switchover">语言切换</string>
<string name="setting_language_simple">简体中文</string>
<string name="setting_language_complex">繁体中文</string>
```
7. styles.xml命名
- 如果只是主题相关的样式,以 **Theme** 命名结尾,控件样式则以 **Style** 命名结尾,命名要求尽量简洁,并且需要有代码注释,示例如下:
```xml
<!-- 应用主题样式 -->
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
.....
</style>
<!-- 全屏主题样式 -->
<style name="FullScreenTheme" parent="AppTheme">
.....
</style>
<!-- 闪屏页主题样式 -->
<style name="SplashTheme" parent="FullScreenTheme">
.....
</style>
<!-- 默认圆角按钮样式 -->
<style name="ButtonStyle" parent="Widget.AppCompat.Button.Borderless">
.....
</style>
<!-- 不带圆角按钮样式 -->
<style name="RectButtonStyle" parent="ButtonStyle">
.....
</style>
<!-- 默认文本框样式 -->
<style name="EditTextStyle">
.....
</style>
<!-- 验证码按钮样式 -->
<style name="CountdownViewStyle">
.....
</style>
```
### Android注释命名
1. 类注释
> 类注释规范:需要表示出作者,时间,描述,文档地址等
2. 方法注释
> 需要标明 方法作用,参数含义,文档地址等
3. 变量注释
> 如果变量名写的已经很明显了,可以不需要写注释,反之则需要注明用处
4. 注释必须遵守的规范
1. 通过方法名就可以知道的命名不需要
2. 最新发布不应该出现 Todo注释
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment