【转】android技术栈

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 
还在摸索中,熟悉度低。架构

相关文章
相关标签/搜索