Android开发框架

针对Native App

 

按照开发流程的先后顺序统计:

 

一.   开发模式

 

Demo及小型项目 -> 不推荐开发模式,快速开发

 

大型项目/多人协作/逻辑复杂 -> MVP 或 MVVM

 

MVP代表 : Dagger2 (谷歌推荐使用,编译时依赖注入,解耦,维护)

MVVM代表 : DataBinding(谷歌推荐使用,ViewMode和View双向绑定,数据驱动,低耦合,高复用…)

Introduction : https://www.jianshu.com/p/2fc41a310f79

Sample : https://github.com/googlesamples/android-architecture

 

二.   Base库

许多android项目从0到上线,有一些默认考虑的需求,例如屏幕适配、网络请求等,下面我们逐条讨论,后续可持续补充和更新.

①构建速度

构建速度是快速开发的一个直接影响因素,我们应该提高构建速度,减少非必要耗时

FreeLine : 阿里推荐,秒级编译, https://github.com/alibaba/freeline;首次构建需要下载依赖包,实际使用过程中存在一些问题

 

②布局适配

by鸿洋Android屏幕适配方案,直接填写设计图上的像素尺寸即可完成适配,最大限度解决适配问题。

AndroidAutoLayout : https://github.com/hongyangAndroid/AndroidAutoLayout

By布隆 一种粗暴快速的Android全屏幕适配方案 

https://github.com/Firedamp/Rudeness?spm=a2c4e.11153940.blogcont145419.7.bf241aeeozLsJC

 

③权限申请

RxPermissions  : https://github.com/tbruyelle/RxPermissions  5.7k star

       Easypermissions :  谷歌推荐, https://github.com/googlesamples/easypermissions

5.2k star

 

④网络请求

这个没什么好说的,首选Retrofit、OkhttpUtils或OkGo,三者均基于 Http 协议,封装了 OkHttp的网络请求框架,操作简单,附上项目地址:

Retrofit ; https://github.com/square/retrofit square出品,必属精品 26.5k star

OkHttpUtils : https://github.com/hongyangAndroid/okhttputils by鸿洋大神 6.1k star(已停止维护)

OkGo : https://github.com/jeasonlzy/okhttp-OkGo  使用文档很详细 有文件上传下载操作的首推6.9k star

 

网络请求日志

com.squareup.okhttp3:logging-interceptor:3.5.0

给OkhttpClient添加这个日志拦截器即可

 

⑤异步操作

强烈推荐Rxjava.

Rxjava中的响应式编程是被观察者拿到数据主动传递给观察者,将展示层和数据处理层分离,解耦了各个模块,通过不同线程操控代码运作配合变换过滤等api操作实现数据流传播.

异步、简洁(逻辑、代码读写)。内部支持多线程操作,强大的map和flatmap保证了依赖上一次接口数据进行二次处理时不会发生嵌套,将各个模块分离。
java1.8和第三方框架支持Lambda流式。保证了Rxjava的代码在阅读上更加简洁。
随着程序逻辑的复杂,依然保持简洁。解耦了各个模块操作,单一化,不嵌套。

推荐博客 : https://www.jianshu.com/p/464fa025229e

 

⑥数据解析

JSON解析:最通用的是 Gson ,用起来也很方便,但从效率上来讲 Gson 不是最快的, FastJson 和 Jackson 各有优势(具体分析参见这里:http://www.cnblogs.com/windlaughing/p/3241776.html

 

⑦事件通信

EventBus :  EventBus is a publish/subscribe event bus for Android and Java.    

17.4k star

允许发送粘性事件,fragment与Activity间无缝通信,使用方法简单

 

⑧图片加载

关于图片加载,不推荐那么多,使用Glide,操作简单快速,谷歌推荐. Facebook公司的Fresco虽然在图片数量较大时,性能上表现较优,但使用不如Glide简洁.

glide中文文档 ; https://muyangmin.github.io/glide-docs-cn/

 

⑨数据缓存

文件储存 存储json String文本

数据库存储 greendao sqlbrite dbflow

 

⑩关键操作埋点以及异常信息收集

友盟统计sdk

 

⑪与H5通信

Weex 阿里推荐,后迁移至 Apache 基金会

https://github.com/apache/incubator-weex

 

VasSonic 腾讯推荐,专注于提升H5首屏加载速度

https://github.com/Tencent/VasSonic 7.2k star

推荐JsBridge

https://github.com/lzyzsd/JsBridge  4.3k star

⑫UI框架

状态栏导航栏相关ImmersionBar  https://github.com/gyf-dev/ImmersionBar

多功能列表 https://github.com/CymChad/BaseRecyclerViewAdapterHelper

⑬日志工具

 Simple, pretty and powerful logger for android  https://github.com/orhanobut/logger

to be continue…

三.   组建库

①    第三方登录

qq登录/微信登录/微博登录/手机登录

②    分享

qq分享/微信分享/微博分享/短信分享

③    推送

友盟推送

④    换主题/换肤

Android-skin-support 一款用心去做的Android 换肤框架https://github.com/ximsfei/Android-skin-support 2.5k star

⑤    位置服务

⑥    支付相关

⑦    录音相关

使用AudioRecord和MediaRecorder分别封装一套稳定的录音工具

⑧    播放相关

使用exoplayer封装一套稳定的播放相关工具

to be continue…

原文地址:https://www.cnblogs.com/fuyaozhishang/p/8507186.html