最美应用-从Android研发工程师的角度 の 最美时光
@author ASCE1885的 Github 简书 微博 CSDN
本文由于潜在的商业目的,不开放全文转载许可,谢谢!
7. 现代的 I/O 操作函数库 okio
okio 作为 java.io 和 java.nio 的补充,是由 square 公司开发的一个函数库,使得开发者可以更方便的访问,存储和处理数据。一开始是作为 okhttp 的一个组件存在的,当然我们也可以单独使用它。
8. 类型安全的 REST 客户端 Retrofit
Retrofit 是将 REST API 转换成 Java 接口的一个开源函数库,它要求服务器 API 接口遵循 REST 规范。它基于注解使得代码变得很简洁,Retrofit 默认情况下使用 GSON 作为 JSON 解析器,使用 OkHttp 实现网络请求,三者通常配合使用,当然我们也可以将这两者替换成其他解析函数库。
参考文档:
Retrofit 官方文档
快速 Android 开发系列网络篇之 Retrofit
Retrofit – Java(Android) 的REST 接口封装类库
再谈 RESTAPI 最佳实践
使用 Android API 最佳实践
深入剖析 Android 网络开发库-part1: OkHttp, Volley and Gson
9. 下拉刷新组件 Android-PullToRefresh
Android 平台上广泛使用的下拉刷新组件,Github 上 star 五千多,目前不再维护。支持的下拉刷新控件有:
- ListView
- ExpandableListView
- GridView
- WebView
- ScrollView
- HorizontalScrollView
- ViewPager
10. 图片异步加载缓存函数库 Android-Universal-Image-Loader
这个函数库简称 UIL,是一个功能强大灵活且高度可自定义的用于加载,缓存和显示图片的开源函数库,它提供一系列配置选项,并能很好的控制图片加载和缓存的过程。
主要特性有:
- 同步或者异步的多线程图片加载
- 高度可自定义:线程池,下载器,解码器,内存和磁盘缓存,图片显示选项等等
- 每张图片的显示支持多种自定义选项:默认存根图片,缓存切换,解码选项,Bitmap 处理和显示等
- 图片可缓存在内存或者磁盘(设备的文件系统或者 SD 卡)上
- 可实时监听图片加载流程,包括下载进度。
参考文档:
Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
Android 开源框架Universal-Image-Loader完全解析
Android Universal Image Loader 源码分析
使用的第三方SDK
1. 小米推送(MiPush)
小米推送(MiPush)是小米公司为开发者提供的消息推送服务,通过在云端和客户端之间建立一条稳定、可靠的长连接,为开发者提供向客户端应用推送实时消息的服务,帮助开发者有效地拉动用户活跃。
2. 友盟统计分析 SDK
友盟统计分析平台是国内最大的移动应用统计分析平台。我们帮助移动应用开发商统计和分析流量来源、内容使用、用户属性和行为数据,以便开发商利用数据进行产品、运营、推广策略的决策。
3. 友盟用户反馈 SDK
友盟用户反馈 SDK 两行代码实现开发者和用户轻松高效沟通。收集用户建议,了解用户需求,解决用户问题,全在应用之内。
4. 新浪微博 SDK
微博 Android 平台 SDK 为第三方应用提供了简单易用的微博 API 调用服务,使第三方客户端无需了解复杂的验证机制即可进行授权登陆,并提供微博分享功能,可直接通过微博官方客户端分享微博。
分析与总结
最美时光 APP 用到的底层函数库基本上遵循《Android开发者必知的5个开源库》这篇文章介绍的函数库进行搭建。技术选型中规中矩,都是一些成熟稳定且常见的函数库,避免了开发人员流动造成的代码熟悉成本,团队新成员能够较快上手,而且也避免了开源库隐藏的 bug 可能造成的版本 delay,因为越是成熟的开源库社区越成熟,bug 也越少,就算出现新的 bug,也能很快得到解决。
对于规模较小的团队,我们建议技术选型时尽量选择成熟的框架,特别是对初创公司。当公司和团队发展到一定阶段后,可以适时的引入新技术或者新框架,激活团队成员的技术敏感度。在大公司中,一般存在基础架构组这样一个团队,他们服务于全公司各个产品线,为其提供基础能力建设。当然对于团队成员整体技术水平都很高的团队来说,就算是初创公司,也有很多抛弃成熟稳定的技术或框架,转而选择新崛起的技术或者框架,因为往往新技术或框架相比成熟的技术或者框架而言更优,虽然可能存在更多的隐藏 bug。说到底,技术选型是公司规模和团队素质的一个综合选择。
欢迎关注我的微信公众号 ASCE1885,专注与原创或者分享 Android,iOS,ReactNative,Web 前端移动开发领域高质量文章,主要包括业界最新动态,前沿技术趋势,开源函数库与工具等。