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.xmlshape类型颜色为白色
四个角度均为6 -
shape_color_ffffff_000000_radius_toprit8_topleft2.xml
shape类型颜色为白色黑色渐变 上左圆度8-上右圆角2的文件 -
select_color_f7e00b_fdf7bf_radius_all6.xmlselect 类型 颜色为
选中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-
activityactivity的页面以 activity开头+页面activity_login.xml
登录页面 -
adapter同上adapter_appbar.xmlbar -
item同上item_project.xml项目列表的item -
view同上+功能view_index.xml指示view
-
-
2.第三方及插件引用规范
- 第三方引用版本管理
- jar包的管理
- plugin的管理
3.代码规范
-
java语言编码规范(具体业务逻辑由
kotlin和dart处理)- 命名规则(类名:驼峰)(变量名&方法名:小驼峰)
- 类名 :
_(驼峰)_:MainActivity.javaAppBarAdapter.java - 数据对象: 以
Bean结尾 如:UserBean - 事件对象: 以
Event结尾 如:OutLoginEvent - 方法名
(小驼峰)- 事件名 以
do开头 如doresum()dosRestart() - 变量类型
bool类型以is如:isShow()isSelect() - 取设方法 (获取值)
fetch(存值)put(效验)has(bool)is(注意:仅用于bean)getset
- 事件名 以
- 变量:
- 全局常量:大写+下划线 如:
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类










网友评论