【转】android技术栈

时间:2021-02-08 15:32:24
2017年04月24日 16:19:40
阅读数:2004

android技术栈

开发工具

Android studio

开发语言

Java

自动化构建

gradle

app技术组织架构

【转】android技术栈

基础层

基础框架层专注于技术领域实现,提供app公有特性,避免重复制造*。注重性能和稳定性。需要不断稳固提高健壮性。 
1. 网络通信 
网络通信底层选型的是成熟框架okhttp,上层则是自有封装库,针对原生框架进行了请求和回调上的封装。 
2. 数据库操作 
少于5张表的单表CRUD工作一般用原生DB搞定,较复杂数据存储业务选用greenDAO框架。是一个轻量级且快速的ORM框架。 
3. JSON解析 
选用Google公司的gson框架,可以将JSON字符串反序列化为对应的Java对象。 
4. 日志记录 
集成腾讯Bugly工具,提供异常上报、运营统计以及版本升级功能。 
5. 适配器 
针对RecycleView封装的列表适配器框架,实现上拉加载、下拉刷新、头部尾部view和分类type等功能。稳定无bug。 
6. 屏幕适配 
选用AutoLayout百分比适配框架,可以自适应适配90%屏幕分辨率。 
7. 依赖注入 
选用jakewharton的ButterKnife注解框架,同时集成生成器插件可自动生成view对象。 
8. 图片缓存 
选用Google推荐的Glide图片框架,轻便灵活。

需要优化的地方

网络框架上层考虑选用Rrtrofit框架,是将REST API转换为Java接口的一个开源函数库,基于注解使代码变得更简洁,需要服务器遵循REST规范。

组件层

组件层会针对行业领域的实现、业务类型的实现进行不同的选型,下面列举的是最常用的可固定选型的基础组件。 
1. 支付功能 
目前支持支付宝和微信,有成熟的对接方案。 
2. 社交分享 
目前支持微信好友、微信朋友圈、QQ分享及短信分享。 
3. 视频服务 
基于保利威视开源视频库进行的再封装和重构,可以实现视频上传、视频下载、视频播放的功能。 
4. 即时通讯 
目前选用环信即时通讯技术,包括两个库,一个底层通讯库、一个UI库。 
5. 推送服务 
目前选用极光推送。 
6. 图片压缩 
自封装图片压缩工具类,主要实现Bitmap图像压缩和图片文件压缩。 
7. 视频压缩 
基于FFmpeg开源库自编写的视频压缩工具类,实现百分比进度、多比率调节、视频截取第一帧等功能。 
8. 插件框架 
其他小插件依赖库例如:图表、轮播图、侧滑、图片缩放等。

需要优化的地方

事件总线:近期引入RxJava,一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库。

应用层

目前主要开发架构:MVC + MVP 混合模式,简单业务MVC分层,复杂业务MVP分层。 
1.MVC 
主要架构选型,优点:快速开发,熟悉度高。缺点:页面与业务逻辑耦合度高。 
2.MVP 
次要架构选型,优点:分层明确,耦合度低,有利于复杂业务开发。缺点:简单页面有过度设计之嫌,反而会浪费时间。 
3.MVVM 
还在摸索中,熟悉度低。