android技术栈
开发工具
Android studioandroid
开发语言
Java数据库
自动化构建
gradle缓存
app技术组织架构
基础层
基础框架层专一于技术领域实现,提供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. 插件框架
其余小插件依赖库例如:图表、轮播图、侧滑、图片缩放等。markdown
须要优化的地方
事件总线:近期引入RxJava,一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库。网络
应用层
目前主要开发架构:MVC + MVP 混合模式,简单业务MVC分层,复杂业务MVP分层。
1.MVC
主要架构选型,优势:快速开发,熟悉度高。缺点:页面与业务逻辑耦合度高。
2.MVP
次要架构选型,优势:分层明确,耦合度低,有利于复杂业务开发。缺点:简单页面有过分设计之嫌,反而会浪费时间。
3.MVVM
还在摸索中,熟悉度低。架构