2017年04月24日 16:19:40

阅读数:2004

android技术栈

开发工具

Android studio

开发语言

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. 插件框架 
其他小插件依赖库例如:图表、轮播图、侧滑、图片缩放等。

需要优化的地方

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

应用层

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

【转】android技术栈的更多相关文章

  1. 聊聊真实的 Android TV 开发技术栈

    智能电视越来越普及了,华为说四月发布智能电视跳票了,一加也说今后要布局智能电视,在智能电视方向,小米已经算是先驱了.但是还有不少开发把智能电视简单的理解成手机屏幕的放大,其实这两者并不一样. 一.序 ...

  2. 如何使用Microsoft技术栈

    Microsoft技术栈最近有大量的变迁,这使得开发人员和领导者都想知道他们到底应该关注哪些技术.Microsoft自己并不想从官方层面上反对Silverlight这样的技术,相对而言他们更喜欢让这种 ...

  3. 快速了解Scala技术栈

    http://www.infoq.com/cn/articles/scala-technology/ 我无可救药地成为了Scala的超级粉丝.在我使用Scala开发项目以及编写框架后,它就仿佛凝聚成为 ...

  4. SpringBoot技术栈搭建个人博客【后台开发】

    前言:在之前,我们已经完成了项目的基本准备,那么就可以开始后台开发了,突然又想到一个问题,就是准备的时候只是设计了前台的RESTful APIs,但是后台管理我们同样也是需要API的,那么就在这一篇里 ...

  5. 技术栈(technology stack)

    technology stack 技术栈: 产品实现上依赖的软件基础组件, 包括 1. 系统 2. 中间件 3. 数据库 4. 应用软件 5. 开发语言 6. 框架 https://en.wikipe ...

  6. 基于.Net进行前端开发的技术栈发展路线(二)

    前言 上一篇<我的技能树>文章分享了我的技能成长过程,还未完成,今天继续跟大家分享. 01 我的技能树 我的当前的技能树: 其中,标注为黄色旗帜的是基本掌握,标注为红色旗帜的为使用熟练.未 ...

  7. 重谈react优势——react技术栈回顾

    react刚刚推出的时候,讲react优势搜索结果是几十页. 现在,react已经慢慢退火,该用用react技术栈的已经使用上,填过多少坑,加过多少班,血泪控诉也不下千文. 今天,再谈一遍react优 ...

  8. 基于.Net进行前端开发的技术栈发展路线(一)

    前言 今天想讲讲的是我的技术树.我最初是做CS开发的,第一阶段的技术经历是以Powerbuilder来做CS开发,第二阶段开始基于C#做winform开发,眼看前端开发越来越流行,需要更广泛的技术栈势 ...

  9. 关于Java 软件工程师应该知道或掌握的技术栈

    鄙人星云,今天突然想写这么一篇需要持续更新的文章,主要目的用于总结当前最流行的技术和工具,方便自己也方便他人. 更新时间:2018-10-23 09:26:19 码农职业路径图 码农入门职业路径图 J ...

随机推荐

  1. redis08----集群

    集群的作用: .主从备份,防止主机宕机 .读写分离,主服务器写,从服务器内容跟着主服务器,主服务器变他就变,读就从从服务器读.减轻主服务器的负担. .任务分离,比如消耗cpu和内存的操作,交给从服务器 ...

  2. JVM对象存活判断方法

    一.GC主要针对什么区域 1. 程序计数器.虚拟机栈.本地方法栈,3个部分随线程而生死.每个栈桢分配多少内存基本上是在类结构确定下来时就已确定,大体上可认为是 编译期可知. 2. 而 堆 和 方法区 ...

  3. Delphi语言最好的JSON代码库 mORMot学习笔记1(无数评论)

    mORMot没有控件安装,直接添加到lib路径,工程中直接添加syncommons,syndb等到uses里 --------------------------------------------- ...

  4. JS/TS 的 import 和 export 用法小结

    ES6 export 和 export default的区别 昨天帮一个网友解决一个typescript的问题,看了一下,归根结底还是对js的import和export用法的不熟悉.让我想起来当年学这 ...

  5. YTU 2422: C语言习题 n个数逆序

    2422: C语言习题 n个数逆序 时间限制: 1 Sec  内存限制: 128 MB 提交: 150  解决: 96 题目描述 将n(n<20)个数按输入时顺序的逆序排列,用函数实现. 输入 ...

  6. HashSe、LinkedHashSet、TreeSet(java基础知识十七)

    1.HashSet存储字符串并遍历 * 特点:无序.无索引.无重复 HashSet存储字符串并遍历 HashSet<String> hs = new HashSet<>(); ...

  7. 【Selenium】显示、隐式等待

    显示等待 WebDriverWait 超时抛出TimeOutException,默认500毫秒 public class WaitToReturnElement { /* * 设置超时时间为5秒,返回 ...

  8. hdu 4300 Clairewd’s message(kmp/扩展kmp)

    题意:真难懂.. 给出26个英文字母的加密表,明文中的'a'会转为加密表中的第一个字母,'b'转为第二个,...依次类推. 然后第二行是一个字符串(str1),形式是密文+明文,其中密文一定完整,而明 ...

  9. Backbone.js之model篇(一)

    Backbone.js之model篇(一) Backbone 是一个前端 JS 代码 MVC 框架,它不可取代 Jquery,不可取代现有的 template 库.而是和这些结合起来构建复杂的 web ...

  10. Laravel配置nginx环境

    前言: 之前坑的!一直在尝试配置,但都失败了,只能用着apache,但是最近想整合swoole到laravel,无奈当前测试服务器是nginx,我只能再尝试在nginx上搭laravel环境 方法如下 ...