APP技术规范1_第1页
APP技术规范1_第2页
APP技术规范1_第3页
APP技术规范1_第4页
APP技术规范1_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录 TOC o 1-5 h z HYPERLINK l bookmark2 o Current Document 1概述 2 HYPERLINK l bookmark4 o Current Document 修订目录 2 HYPERLINK l bookmark6 o Current Document 编写目的 2 HYPERLINK l bookmark8 o Current Document 2技术规范 3 HYPERLINK l bookmark10 o Current Document 开发规范 3实施规范 3代码规范 3命名规范 4 HYPERLINK l bookmark12 o

2、 Current Document 架构规范 5项目框架搭建 5安全策略 10日志管理 12终端适配 12 HYPERLINK l bookmark14 o Current Document 质量规范 14 HYPERLINK l bookmark16 o Current Document 版本控制规范 15 HYPERLINK l bookmark18 o Current Document 客户端监控 151概述修订目录版本修订内容修订人修订日期V1.0创建义档张平2017-11-16V1.1修改优化格式排版;补充日志管理、终端适配张平2017-11-20编写目的该文档阅读对象为APPAnd

3、roid开发人员。通过制定技术规范,提高哈 银消费金融团队开发效率、规范开发流程、提高产品质量。本文从项目实施流程规范、编程规范、质量管理规范、线上监控规范等方面论述,涵盖从项目框架搭建到版本控制、 基线管理到上线全流程的行为 约束及技术规范。哈银消费金融公司内部使用2技术规范开发规范实施规范实施规范规定了在APP项目开发过程中如何保证 APW发顺利进行,避 免因需求变更带来开发紊乱、工作延期。具体要求如下:.必须保证需求文档和编码的一致性。 编码以需求文档为基础,必须保证 所有的需求都被编码实现,同时当需求发生变更时必须修改编码。.必须保证设计文档和编码的一致性。当代码的修改已经造成设计更改

4、时, 必须修订设计文档。.在代码已经基线化后,对代码的更改必须通过评审,并保存评审记录。.1.2代码规范.统一使用Android Studio 作为开发工具;.编码格式统一为UTF-8;. java代码中不出现中文,最多注释中可以出现中文,提示文字要提取到string.xml 中;.服务端可以实现的,就不要放在客户端;.引用第三方库要慎重,避免应用大容量的第三方库,导致客户端包非常大;.处理应用全局异常和错误,将错误发送给服务端;.数据一定要校验后使用,例如字符型转数字型,如果转换失败一定要有缺省值;服务端响应数据是否有效判断;哈银消费金融公司内部使用.对于未完成的方法,使用 TODQ以标记,

5、不可直接提交svn或git ;9,若代码存在严重问题或仅用于调试,使用FIXME加以标记;.方法基本上都按照调用的先后顺序在各自区块中排列;.提取公共方法方法,去除重复代码。对于必要的工具类抽取也很重要, 这在以后的项目中是可以重用的;.禁止使用System.out输出,而是使用Log中的方法;如果使用开源 Log库一定要自己做外层封装;13,使用BuildConfig.DEBUG 标记对Log进行封装,只在调试时输出重要 信息,正式版不输出;. catch块不得为空,至少应当将异常信息输出;.程序中不允许出现魔鬼数字,例如 switch中使用数字或缺乏含义的标 识,应定义常量来标识每一项;.

6、注释规范及其他代码规范详见哈银消费金融Android开发规范。2.1.3命名规范1、命名方式采用驼峰式命名;2、包名、类名、方法名、常量名、变量、参数、资源文件、布局等的命名要严格按照哈银消费金融Android开发规范进行。详见哈银消费金融Android开发规范。哈银消费金融公司内部使用2.2架构规范2.2.1项目框架搭建APP客户端HTTPSAPP ServiceAndroid本身就是MVC建议框架搭建时遵循按照职责分层的原则,保证系统的稳定性、可扩展性、可维护性,并为业务扩展、快速迭代奠定基础。哈银消费金融公司内部使用基础框架搭建模块要求分类要求备注组织目录结构按职责定义包名可根据业务场景

7、灵活变动基类封装1、抽象方法提取、公共方法继承、事件总线、注解框架的初始化;2、Activity 栈管理器创建。/、口随点更改基英中方法和结构;生命周期管理1、使用 Activity 栈管理activity,保证在一个生命周期中只存在一个Activity ;2、封装正确的AP现出方式。坚决杜绝Activity 重复创建造成生命周期紊乱;正确使用Activity 启动模式公共方法提取1、一个方法超过两次调用要提取 到工具类中;2、尽量使用接口回调、事件总线、 广播处理跨页而通信,保证代码逻 辑清晰。事件总线 EventBus、Otto使用时f做好注释,便于溯源Adapter 封装列表适配器使用频

8、次高,封装公共BaseAdapter避免大量重复代码此处建议使用开源库:BaseRecycleViewAdapterHelper注解框架控件声明及点击事件使用ButterKnife 注解哈银消费金融公司内部使用基础组件及回调封装1、局频贝间或列表口以抽象成可 复用组件;2、自定义控件、view;3、点击事件监听需要重点封装, 避免重复提交。自定义按钮点击监听事 件,防止按钮连击造成重 复创建贝回或处发多次接 口请求开源库的使用重复发明轮子不是明智的选择,例如成熟的网络框架、图片加载框架、其他成熟开源控件等的使用可以提高系统稳定性、可维护性。但是需要遵循以下要求:不引用未经项目实践过的开源库。引

9、入开源库前需要审阅 module源码,审查是否存在代码漏洞、安全隐患。删除无用的功能,有的开源库涵盖功能项较多,要求根据实际业务需求提取主要功能。做必要的二次封装。例如引用 OkHttp、logger日志框架必须要做应用层封装后使用,便于维护和替换。开源库版本 要统一配置。例如在build.gradle 中统一配置dependence版本,便于团队开发维护。哈银消费金融公司内部使用2.2,1.3网络框架搭建分类要求备注通信协议1、必须支持HTTPST展;2、要求Android必须做后效的证书校验,防止中间人攻击;客户我需要验证https证书是否CA机构颁发、 肩效期、服务端签名信 息、域名校验

10、等网络框架选取1、选择框架要符合业务场景要求;2、支持局并发;3、支持 Https ;4、请求响应快速局效;5、稳定性、可扩展性高;6、不使用含有Google淘汰的方法或类, 例如 httpClient ;7、高容错性。例如输入结果是否做各 个码值情况的判断;/、可用的值是否能 够处理等框架选型要综合权衡代码体积、是否支持上传和下载文件、图片加载效率、缓存机制、安全策略 等方面。封装1、开源框架必须审阅核心代码后使用;2、入口今化,必须做应用层封装, 调用和数据处理都在同一个入口和出 口处理;3、返回结果做好容错处理及回调;4、关键处理要添加注释;5、数据解析要支持多类型数据结构。建议json

11、解析使用 fastJson ;网络框架使用 Retrofit+OkHttp 。哈银消费金融公司内部使用数据管理分类要求备注本地数据库存储规则1、编写条-数据库管理类, 包含增删改查等基础方法封 装;2、数据存储要加密;3、使用ORMI1架要做应用层 封装。1、如果有必要,需要对数据库义件进行加密,例如 SQLCipher;2、开源ORM1架可以选用 GreenDAOSharedPreference 存储规则1、需要对存储内容加密;2、存储键名勿使用魔鬼字符 用,要使用常量一管理。封装 SharedPreference工具类,可以选用 3DES对SP内容加密上传参数做加密传输需要与后台人员协定好

12、加密方式贞间显示敏感信息要脱敏处理例如:6222*3241哈银消费金融公司内部使用2.2.2安全策略从接口安全、账户安全、系统安全三方面加强 APP安全策略 接口安全策略防止中间人攻击前后端网络协议必须采用 Https ,并使用双向认证。Android必须校验后台证书信息的有效性等参数,切记不做处理直接信任所有证书。防止信息泄露客户端本地数据必须加密存储,包括数据库、存文件、SharedPreference等存储方式;敏感信息脱敏显示,例如身份证号、银行卡号。防止恶意调用10哈银消费金融公司内部使用代码添加混淆;APK丁包需做加固,防止反编译、二次打包、恶意篡改。账户安全防止账户盗用登录密码、

13、交易密码做强加密后传输;Token超时用户下线处理一一账户盗用拯救策略。交易安全交易密码输入需要使用Android开发自定义的安全键盘,而不是直接使用手机系统自带输入法键盘;2.2.3系统安全防钓鱼策略白名单检查时间戳检查IP检查防拖库撞库策略前后台密码加密存储;添加登录失败多次后锁定账号功能,防止批量尝试登录。11哈银消费金融公司内部使用2.2.3日志管理分类要求备注本地Log管理1、封装应用层log工具类,便于今管理调试;2、本地只打印 debug日志,release 日志禁止打印;1、建议使用Logger框架;2、使用 BuildConfig.DEBUG判断是否是release版本。错误

14、上报1、Error日志要捕捉并上报到服务端;2、集成友盟等二方监控,定期查看错误日志报表本地Error 日志母次重新启动时上报错误日志2.2.4终端适配分类要求贝面开发1、开发贝闻内容要满足业务需求,要求开发前先核对UI效果图与需求文档是否符合;2、开发页面样式要严格按照 UI标注图进行;适配策略1、要求UI切图至少提供1080*1920和1440*2560两套切图,分别放置到xx-hdpi和xxx-hdpi文件目录下;2、能用.9.png实现效果就/、要使用切图;3、能用shape、selector实现的就/、要使用切图;4、使用权重(weight )规划布局,切勿写死布局宽度、高度;5、间

15、距、控件宽高如果有必要请使用百分比适配;6、其他满足产品需求的适配方案。12适配机型华为、vivo、oppo、小米、三星的主流机型哈银消费金融公司内部使用13哈银消费金融公司内部使用2.3质量规范质量规范是在APP目开发过程中制定的定期对开发人员提交代码进行Code Review 的机制。Review细则如下:分类常规项安全审核项1、代码能够工作么?它有没有实现预期的功能, 逻辑是否正确等;2、是否存在多余的或是重复的代码;3、代码是否尽可能的模块化了;4、是否有可以被替换的全局变量;5、是否有被注释掉的“僵尸”代码;6、循环是否设置了长度和正确的终止条件;7、是否有可以被库函数或公共方法替代

16、的代码;8、是否有可以删除的日志或调试代码。1、所有的数据输入是否都进行了检查(检测正确的类型,长度,格式和范围);2、所有参数是否经过加密传输;3、接收到的输出值是否经过有效校验后使用;4、本地存储是否经过加密;5、错误是否能够被捕获;6、无效的参数是否能够被处理14备注评审标准参考章节2.1、2.2列出的技术规范哈银消费金融公司内部使用文档1、是否有注释并描述了代码意图;2、是否所有方法都有注释;3、对非常规行为和边界情况处理是否有描述;4、数据结构和计量单位是否进行了解释;5、是否有未完成的代码?如果是的话, 是不是应该 移除,或者用合适的标记进行标记比如TODO。版本控制规范团队开发中使用Git或Svn进行项目管理。下面只列举客户端开发人员 团队开发版本控制规范:配置提交策略。使用Android studio 进行提交代码前需要添加忽略文件,例如:.idea 文件、.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论