Skip to content

Latest commit

 

History

History
79 lines (56 loc) · 3.05 KB

README_zh.md

File metadata and controls

79 lines (56 loc) · 3.05 KB

##Android UI 及 IO 工具库(基础框架)

     Android APP framework 是一个拖沓冗余的体系,正是因为他的不足,才需要我们去完善他。

##设计理念 ---- 有之以为利,无之以为用。

设计一个具有良好扩展性的基础框架, 最重要的一点是掌握 “有”和“无”的平衡。

  • 无: 代表变化的技术需求, 系统需要提供那些定制能力,可以让你自己去扩展和实现。

  • 有: 代表相对稳定的支撑环境, 为简化需求,我们需要从变化的需求中剥离出稳定的通用逻辑。

    从更高的角度去规划框架结构,以求“无”的最简化和“有”的更稳定。

我在这套类库中, 通过一个通用回调接口, 用来描述“无”的存在, 整体功能规划以“无” 为中心。

##自动化处理 ---- 太上,不知有之。

上善若水,我认为最好的架构,就是,当他帮你做了实实在在的事情,而你不需要关心他的存在。

在这个UI&IO框架的设计中,非常看重的设计目标。

如:

  • 当你适用网络图片的时候,不用关心网络缓存的行为, 不用关心图片内存缓存的影响;
  • 当你编写网络任务时,页面的暂停/恢复/终止时,您无需再为相关的任务调度优化操心;
  • 没有网络的时候,不需要关心离线展示的支持;等等...

##通用回调机制 ---- 有物混成,先天地生

函数,是编程中最常见的处理单元,加上泛型信息,我们可以让函数的表达能力更强。

Java的函数虽然用起来不如一些函数式语言那样简洁,但是,包装在接口下面的函数,还可以更加方便的携带更丰富的信息。

在这套类库中,一个简单通用的可以携带更多信息的回调接口, 将贯穿整个系统。

##网络请求

  • 任务管理

    • 自动根据生命周期调度(终止/暂停/继续)任务。
    • 随时手动终止任务。
  • 网络缓存优化

    • 自动缓存
    • 自动离线支持
  • 双回调机制

    • 快速内容展示
    • 网络数据检查并按需更新

##图片处理

  • 简单的bind接口

  • 自动网络缓存管理

  • 自动计数和内存管理

  • 自动支持动画gif

  • 自定义图像预处理接口

    比如,如果你想画个圆角阴影什么的

##自动模型转换 数据结构和java对象是一一对应的, 但是我们很多老实的程序员天天乐此不疲的手动解析json,手动吧这些json一个个复制到java对象模型中, 这些实在是没有必要。

##存储模型

  • 健值对存储DSL
    • 健值存储接口的属性,可以自动实现读写抄作, 系统通过动态代理自动将其实现。
  • 关系数据库映射DSL
    • 定义一个java类,加上简单的注解,即可描述一个简单的数据存储格式,根据这个类就可以自动创建出一个SQLiteMapping, 自动实现一个简单的关系数据映射DAO。

##状态管理

  • Activity 状态

##其他

  • 网络检测。
  • Toast,Application等等