如何搭建App的基本框架,这个问题考察了Android的技术选型以及整体架构的能力。
有一定经验的Android开发者,或多或少都有自己的一套基础开发工具集,这些工具包含了开源的第三方库和自己开发的库。
App的整体架构:应用层和基础层
- 应用层用于展示效果,直面用户
基础层用于实现,提供App的公有的东西,避免重复
技术选型的考量点:
选择第三方库一般综合考虑如下几点:提供的特性是否满足项目的需求
- 是否提供简洁的api,方便集成
- 性能不能太差
- 文档比较齐全
- 技术支持
- 大小
方法数,避免64k问题
日志记录能力
Logger基于Android的Log类基础上进行封装,格式化输出,支持json、xml格式信息,但不支持List、Set、Map和数组常见的java集合类的格式化输出
- LogUtils实现Logger缺失的上述特性
- Logger只支持打印到Logcat
- timber实现了Logger缺失的上述特性
最终,选用timber+Logger+LogUtils
JSON解析能力
- Fastjson 性能和包大小
数据库操作能力
- greeDAO 性能和包大小
网络通讯能力
- Okhttp
- Volley 处理缓存、加载、请求
图片缓存和显示能力
- BitmapFun 71kb
- Picasso 120kb
- Glide 475kb
- Fresco 3.4MB
android-Universal-Image-Loader 162kb
根据App对图片显示和缓存需求从低到高来选择