【转】android技术栈
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技术栈的更多相关文章
- 聊聊真实的 Android TV 开发技术栈
智能电视越来越普及了,华为说四月发布智能电视跳票了,一加也说今后要布局智能电视,在智能电视方向,小米已经算是先驱了.但是还有不少开发把智能电视简单的理解成手机屏幕的放大,其实这两者并不一样. 一.序 ...
- 如何使用Microsoft技术栈
Microsoft技术栈最近有大量的变迁,这使得开发人员和领导者都想知道他们到底应该关注哪些技术.Microsoft自己并不想从官方层面上反对Silverlight这样的技术,相对而言他们更喜欢让这种 ...
- 快速了解Scala技术栈
http://www.infoq.com/cn/articles/scala-technology/ 我无可救药地成为了Scala的超级粉丝.在我使用Scala开发项目以及编写框架后,它就仿佛凝聚成为 ...
- SpringBoot技术栈搭建个人博客【后台开发】
前言:在之前,我们已经完成了项目的基本准备,那么就可以开始后台开发了,突然又想到一个问题,就是准备的时候只是设计了前台的RESTful APIs,但是后台管理我们同样也是需要API的,那么就在这一篇里 ...
- 技术栈(technology stack)
technology stack 技术栈: 产品实现上依赖的软件基础组件, 包括 1. 系统 2. 中间件 3. 数据库 4. 应用软件 5. 开发语言 6. 框架 https://en.wikipe ...
- 基于.Net进行前端开发的技术栈发展路线(二)
前言 上一篇<我的技能树>文章分享了我的技能成长过程,还未完成,今天继续跟大家分享. 01 我的技能树 我的当前的技能树: 其中,标注为黄色旗帜的是基本掌握,标注为红色旗帜的为使用熟练.未 ...
- 重谈react优势——react技术栈回顾
react刚刚推出的时候,讲react优势搜索结果是几十页. 现在,react已经慢慢退火,该用用react技术栈的已经使用上,填过多少坑,加过多少班,血泪控诉也不下千文. 今天,再谈一遍react优 ...
- 基于.Net进行前端开发的技术栈发展路线(一)
前言 今天想讲讲的是我的技术树.我最初是做CS开发的,第一阶段的技术经历是以Powerbuilder来做CS开发,第二阶段开始基于C#做winform开发,眼看前端开发越来越流行,需要更广泛的技术栈势 ...
- 关于Java 软件工程师应该知道或掌握的技术栈
鄙人星云,今天突然想写这么一篇需要持续更新的文章,主要目的用于总结当前最流行的技术和工具,方便自己也方便他人. 更新时间:2018-10-23 09:26:19 码农职业路径图 码农入门职业路径图 J ...
随机推荐
- (linux)MMC 卡驱动分析
最近花时间研究了一下 MMC 卡驱动程序,开始在网上找了很多关于 MMC 卡驱动的分析文章,但大都是在描述各个层,这对于初学者来讲帮助并不大,所以我就打算把自己的理解写下来,希望对大家有用.个人觉得理 ...
- linux下使用无线网卡的命令行方法(wifi,iwconfig)
原文地址:linux下使用无线网卡的命令行方法(wifi,iwconfig) 作者:andyhzw (1)首先关闭开发板的有线网卡 [root@FriendlyARM /]# ifconfig eth ...
- Dedecms(织梦)文章内容页和图片集内容页,调用缩略图的方法
Dedecms(织梦)文章内容页和图片集内容页,调用缩略图的方法,亲测可用! Dedecms(织梦)首页的图片调用,相信大家已经非常的清楚,但是今天我在进行内容页的编写的时候,发现了内容页图片的调用问 ...
- jQuery制作信息提示弹出层插件【推荐】
给大家分享一款非常实用的弹窗提示窗口插件,包含多种模式.带有回执函数值的功能.1. [代码][JavaScript]代码 <script type="text/javascript& ...
- RxJava RxBinding 按钮(Button) 点击(click)
/********************************************************************* * RxJava RxBinding 按钮(Button) ...
- 安装Sublime Text 3插件的方法(转自Rising的博文)
安装Sublime Text 3插件的方法: 朋友们,小站活着不容易,全靠广告费养着了,如果本文对你有帮助.麻烦动下手点下页面的广告吧,谢谢! 直接安装 安装Sublime text 2插件很方便,可 ...
- 【HDU 2089】 不要62
[题目链接] 点击打开链接 [算法] 数位DP 和上一题 : HDU3555很像 [代码] #include<bits/stdc++.h> using namespace std; #de ...
- 后缀自动机SAM BZOJ 2806
终于遇到了一道后缀数组不能过 一定要学SAM的题... (看了半个下午+半个上午) 现在总结一下(是给我自己总结..所以只总结了我觉得重要的 .. 看不太懂的话可以To http://blog.c ...
- unittest参数化parameterized
参考文章: https://www.cnblogs.com/royfans/p/7226360.html https://blog.csdn.net/zha6476003/article/detail ...
- 相对定位relative与绝对定位absolute
relative:相对定位,并没有脱离原来文档流,依然在原来的位置上,可以通过设置left,top,来设置自己的偏移量,但是它依然占据自己原来的位置,偏移的位置会遮盖其他的元素 absolute:绝对 ...