《Android 高级进阶》 --> APP 整体框架

一、APP 的整体架构

从较高的层次来讲,APP的整体架构可以分为两层,即应用层和基础框架层,

  1. 应用层:专注与行业领域的实现,eg:金融、支付、地图导航、社交等,他直接面对的是用户,是用户对产品的第一层感知。
  2. 基础框架层:专注与技术领域的实现,提供API公有的特性,避免重复制造轮子,是用户对产品的第二感知,eg:性能、稳定性等。

一个理想的APP应该是具有清晰的层次划分,同一层模块间进行解耦,模块内部符合面向对象设计的六大原则,最后应该在功能、性能、稳定性等方面达到综合最优,下面将进行对APP架构的图解

这里写图片描述

可以看出,上图将基础框架层分成几个部分了:组件层、基础层、跨平台层

1.1、 基础层的分解

1.1.1 技术选型的考量点

在基础层中,我们可以看到大多数是可以通过第三方SDK或者开源的函数库去完成的,我们在对函数库或者第三方SDK 的选择上应该考虑什么呢?

  • 特性:提供的特性是否满足项目的需求
  • 可用性: 是否提供了简便的API
  • 性能
  • 文档
  • 技术支持
  • 大小
  • 方法数

    1.1.2 日志记录能力

    日志的记录一定要有良好的设计技巧或者换一句通俗的话说就是要在能用的时候使用,不使用的时候将它关掉,在我们的开发中经常会有这样的场景,我们程序调试的过程会用到打印日志来测试代码的流通性,加入我们使用Android 自带的Log去测试,那等到我们的项目很大的时候我们没办法一个个删除测试的Log信息,这个肯定是不行的,我们会不知不觉中将信息暴露给别人,所以我们要使用自己封装的日志打印或者Logger 这种开源的工具,logger具有很多有点,比如它支持日志中源码的跳转,JSON、XML的格式化输出,但是不能打印set\list\map等的格式化输出,这时候可以参考LogUtils ,它具有上述特性缺失的弥补。 timber 也是一款开源的框架,它可以让开发者将日志打印到控制台、打印到文件等等,所以开发中最好使用三者的结合 timber + Logger + LogUtils

    1.1.3 JSON 解析能力

    一般情况下,如果程序没有特定的需求,一般使用的都是json串,交换数据,Android自身是有解析JSON 的类,但是它的过程是很缓慢的,当然心在开源的实现就有一下几种

  • gson

  • jackson
  • fastJson
  • LoganSquare

1.1.4 数据库的操作能力

在这里比较好的greenADAO

1.1.5 网络通信的能力

当然这个大家因该非常熟悉了,比如OkHttp\Volley\Retrofit\xUtils等等 ,这个具体看需求确定

1.1.6 图片缓存和显示能力

这个开源的库已经有很多了,Picasso、Glide、Fresco 等,具体遇到,看需求吧

发布了53 篇原创文章 · 获赞 20 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_32648731/article/details/77676319