Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
Widget
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Android Widget
Widget
Commits
69135abb
Commit
69135abb
authored
May 27, 2021
by
王雷
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增文档文件
parent
cf292a35
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
321 additions
and
0 deletions
+321
-0
Android代码规范.md
document/Android代码规范.md
+321
-0
No files found.
document/Android代码规范.md
0 → 100644
View file @
69135abb
### 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注释
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment