Android 编码规范
订正内容 | 时间 | 订正人 |
---|---|---|
** | 2020-4-20 | guo******home@163.com |
1.资源文件导入及命名
-
切图资源
-
格式
- 推荐使用
png
(部分特殊除外)
- 推荐使用
-
大小
4kb-30kb
-
命名
-
采用 所在页面+构成功能+构成功能作用域 如:
-
login_phone_icon.png
说明登录页面的手机号输入框的icon图标 -
home_tab_icon.png
首页Tab的Icon, -
mine_head_null.png
我的页面头像没有时 -
project_search_left_icon.png
项目页面搜索框左边ICON
-
-
-
-
文件资源
-
drawable
功能(shape/select/...)+color色值(渐变色的话根据先后顺序依次添加)+radius(上左,上右,下左,下右,全部)+角度-
shape_color_ffffff_radius_all6.xml
shape类型颜色为白色
四个角度均为6 -
shape_color_ffffff_000000_radius_toprit8_topleft2.xml
shape类型颜色为白色黑色渐变 上左圆度8-上右圆角2的文件 -
select_color_f7e00b_fdf7bf_radius_all6.xml
select 类型 颜色为
选中true-> f7e00b 未选中false->fdf7bf 的圆角为6
-
-
values
-
attrs
以所作用的类名命名 -
colors
以c
开头+色值 如:cffffff
白色命名<color name="c008577">#008577</color> <color name="c00574B">#00574B</color>
-
style
以功能命名<style name="ProgressMessage" parent="@android:style/Theme.Dialog"> ...... </style>
-
-
layout
-
activity
activity的页面以 activity开头+页面activity_login.xml
登录页面 -
adapter
同上adapter_appbar.xml
bar -
item
同上item_project.xml
项目列表的item -
view
同上+功能view_index.xml
指示view
-
-
2.第三方及插件引用规范
- 第三方引用版本管理
- jar包的管理
- plugin的管理
3.代码规范
-
java语言编码规范(具体业务逻辑由
kotlin
和dart
处理)- 命名规则(类名:驼峰)(变量名&方法名:小驼峰)
- 类名 :
_(驼峰)_
:MainActivity.java
AppBarAdapter.java
- 数据对象: 以
Bean
结尾 如:UserBean
- 事件对象: 以
Event
结尾 如:OutLoginEvent
- 方法名
(小驼峰)
- 事件名 以
do
开头 如doresum()
dosRestart()
- 变量类型
bool
类型以is
如:isShow()
isSelect()
- 取设方法 (获取值)
fetch
(存值)put
(效验)has
(bool)is
(注意:仅用于bean)get
set
- 事件名 以
- 变量:
- 全局常量:大写+下划线 如:
APP_ID
、WX_SHARE_NAME
、USER_NAME
等... - 全局变量:小驼峰 如:
userName
,isAuth
,userBean
等.. - 局部变量: 同 全局变量
- 全局常量:大写+下划线 如:
- 类名 :
- 命名规则(类名:驼峰)(变量名&方法名:小驼峰)
-
kotlin语言编码规范 (业务逻辑(尤其是UI业务(activity,adapter,view等))处理建议使用 kotlin )
- 命名规则
同java命名规则相同
- 规约
-
在使用类型处理业务时,如根据后台返回用户类型判断用户操作状态时应使用
枚举
类//反例 fun pullUserView(userType:Int){ when(userType){ 1:->{...} 2:->{...} } } //正例 enum class UserTypeEnum(var type: Int, var valu: String) { ZiRanRen(1, "自然人"),//自然人 GeTi(2, "个体/个独")//个体} fun pullUserView(userType:Int){ when(userType){ UserTypeEnum.ZiRanRen.type:->{...} UserTypeEnum.GeTi.type:->{...} } }
- 注释:
/** * 类注释 * 功能:XXX * 参数:XXX * 创建日期:yyyy-MM-dd * 作者:glen */ class A(){ /* * 方法说明 * @参数 说明 * @参数 说明 * @retur 返回说明 */ fun doReSum(view:View){ } }
-
OOP
*类的使用及参数(类的参数构造及方法的参数构造)
/** * xx:XX ?=null 声明可空 避免空指针 */ class A(context:Contxt,list:List<String>?){ var context:Context?=null var list:List<String>?=null init{ /// 赋值 注意************* this.context=context ///要这样书写,保证如果传值为null 不出现 空指针错误 this.list=list?:arraof<String>() } fun postView (list:List<String>,index:Int){ TextView view= context?.findviewById(R.id.tv_name) /// `这里要注意,每次赋值,都要进行默认赋值,不要 !. 要使用 ?.` view.text=list[index]?.name?:"默认值" } }
-
- 命名规则
-
dart语言编码规范
-
文件命名
- 使用
"小写"
+"_"
的方式- 如果是页面 则 以
view
结尾
- 如果是页面 则 以
- 使用
-
类的命名 同上
java
命名- 变量 私有 前加
_ 下划线
如:_userId=null
- 变量 以小驼峰 格式 如:
userId
- 常量 私有 大写 +
下划线
如:_USER_TOKEN
- 常量
USER_TOKEN
- 变量 私有 前加
-
方法 同
java& Kotlin
但是 私有的话 需要前面加"_"
-
-
布局规范
-
布局命名 同上 文件资源 layout 一样
-
组件id设置
- 命名:以组件首字母为首拼,后以功能 如:
tv_name
<TextView android:id="@+id/tv_finsh" ...... /> <ImageView android:id="@+id/iv_head" ...../>
* 布局 嵌套过多的布局 建议使用 * ``` xml <android.support.constraint.ConstraintLayout />
来节省开支,防止UI因嵌套过多带来的卡顿
- 命名:以组件首字母为首拼,后以功能 如:
-
5.宿主(Host)结构规范
activity 基层 `EaseActivity`
布局 使用`vlayout`
工具类 `FinalKit`
`HostApi` 对 `plugin` 提供API服务,不能更改里面的方法,里面的方法插件会对其通过反设调用
-
网络拦截,APP实现
JsonConverter.OnJsonConverterLister
接口 实现网络拦截的回调 -
用户信息全局管理
- App类
getUserDetail
方法获取和更新用户信息
- App类
-
插件信息配置全局管理
- App类管理和更新插件数据
-
用户合法性全局管理
- App类
checkFilter
效验用户合法性 -
outlogin
全局管理用户登录和退出登录
- App类
网友评论