zoukankan      html  css  js  c++  java
  • 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…

  • 相关阅读:
    hdu5289 RMQ+二分
    poj1459 最大流Dinic
    poj2391 最大流+拆点
    poj1087&&hdu1526 最大流
    NOI2004 郁闷的出纳员
    Treap入门(转自NOCOW)
    poj 2892
    vijos 1512
    对拍程序
    poj 3264
  • 原文地址:https://www.cnblogs.com/fuyaozhishang/p/8507186.html
Copyright © 2011-2022 走看看