架构框架

框架架构

框架架构主要是为了以下几点:
1 模块化
2 分层
3 解耦
4 降低代码重合度

客户端整体架构



1 独立于App的通用层 (时长,崩溃,网络第三方库)
2 通用业务层(通用基础组件,特殊UIImageView封装)
3 中间层(用于解耦)
4 业务A、业务B、业务C
意义:单独拿出一个业务,都可以形成一个App

业务之间解耦的通信方式?

1 openUrl
2 依赖注入(通过遵循协议)

复杂页面架构

View: 控件初始化,设置数据,交互事件代理
ViewController: 视图创建组合、协调逻辑、事件回调处理
ViewModel:业务逻辑层、数据增删改查封装者、线程安全处理
Engine : 增删改查、网络请求、数据解析、本地处理逻辑

图片缓存

图片缓存框架设计


图片读写流程


计算机组成原理中,多级缓存设计思想,提高查找效率

内存设计问题
1存储size :10kb以下50张,100kb以下20张,100kb以上10张
2 淘汰策略 :队列先进先出方式淘汰。LRU算法-最近最久未使用算法(如30分钟之内是否使用过)。1定时检查 2 每次进行读写、前后台切换。(注意开销2优先 )

磁盘设计问题
1 存储方式
2 大小限制(100M)
3 淘汰策略(超过7天)

网络设计需要考虑问题?
1 图片最大并发量
2 请求超时策略
3 请求优先级

图片解码?
对不同格式的图片,解码采用什么方式来做?
应用策略模式对不同图片进行解码
在哪个阶段进行图片解码?
磁盘读取之后, 网络请求返回后。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 突然打开简书,提起笔来不知道写什么。做了Android一年半了,算是一个小小的总结杂谈吧。 过了这么久,A...
    Thresh0ld阅读 696评论 3 12
  • 1、架构 架构指一个软件系统的结构。一个软件系统或者系统中的某一个模块,都会涉及到架构,架构清晰表示软件结构良好。...
    IvanHung阅读 1,753评论 0 2
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,142评论 25 708
  • 1.30日 日精进:敬畏—进入—体验—交给—持续 1,缺啥补啥,怕啥练啥; 2,一切为我所用,所用为团队家; 3,...
    京心达毕玉娜阅读 163评论 0 0
  • 按一定语法写好规则,bison则可以自动识别语法,网上关于Yacc的资料很多,但是几个关键点讲的不够清晰,这里按自...
    sinyer阅读 2,540评论 0 0