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. 一个实用的UIView的类别

    // // FrameAccessor.h // FrameAccessor // // Created by Alex Denisov on 18.03.12. // Copyright (c) 2 ...

  2. mysql字符串的常用函数(截取和拼接)

    #截取字符串(先正序取2个,再倒序取1个)SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('aaa-gg-cc-dd','-',2),'-',-1) #获取子表某个字段的 ...

  3. MYSQL进阶学习笔记三:MySQL流程控制语句!(视频序号:进阶_7-10)

    知识点四:MySQL流程控制语句(7-10) 选择语句: (IF ELSE ELSE IF CASE 分支)IFNULL函数 IF语法: 语法规则: IF search_condition THEN ...

  4. Android ViewDragHelper及移动处理总结

    概述 2013年谷歌i/o大会上介绍了两个新的layout: SlidingPaneLayout和DrawerLayout,现在这俩个类被广泛的运用.我们知道在我们实际的开发中往往会涉及到很多的拖动效 ...

  5. org.apache.hadoop.hbase.NotServingRegionException: Region is not online 错误

    当遇到如下错误的时候 可能以为是regionserver 挂掉或者其他原因导致连接不上regionserver  但后面提示了Hbase 表statistic_login 具体信息 Thu Jan 1 ...

  6. [Selenium] 如何绕过 IE 的安全模式

    自从 IE7 引入 Protected Mode 以来, IE 浏览器的安全性的确得到了一定程度的提高.其原理从本质来讲,在浏览某些需要启用保护模式的页面时,会开启一个新的浏览器会话以完成任务,而此时 ...

  7. [Selenium] Selenium common Actions Examples

    1.sendKeys() 在文本框中输入字符串 WebElement searchBox = driver.findElement(By.name("q")); searchBox ...

  8. kali-linux简单学习

    一. curl --head 返回操作系统的版本 同样的Xprobe2可以和nmap一起返回操作系统的版本 nmap 直接加域名或者ip地址,比较权威判断操作系统版本,或者服务版本,以及开的端口 nm ...

  9. 关于tensorflow中维度的问题

    一直对TF中tensor的reduce操作涉及的axis(reduction_indices)计算一知半解,这里系统总结一下,避免继续走弯路: 1.本质上来说,reduce_xxx都是降维操作,沿某个 ...

  10. View Controller Programming Guide for iOS---(二)---View Controller Basics

    View Controller Basics Apps running on iOS–based devices have a limited amount of screen space for d ...