• UID5161
  • 登录2016-09-02
  • 粉丝0
  • 关注0
  • 发帖4
  • 主页
  • 金币40枚
社区居民
xlix20 发布于2016-02-02 16:46
1/2088

Android Next 公共组件库

楼层直达
Android Next 公共组件库

Android Next 公共组件库 http://mcxiaoke.github.io/Android-Next

Android-Next 公共组件库

这个库是我在日常开发过程中积累下来的一些可复用组件,大部分都在我的工作项目和个人项目中有使用。
最新版本:


Gradle集成

    // core 核心库, 格式:jar和aar compile 'com.mcxiaoke.next:core:1.3.+' // task 异步任务库,格式:jar和aar compile 'com.mcxiaoke.next:task:1.3.+' // http HTTP组件, 格式:jar和aar compile 'com.mcxiaoke.next:http:1.3.+' // 异步网络和文件IO组件,替代Volley compile 'com.mcxiaoke.next:ioasync:1.3.+' // 函数操作组件 compile 'com.mcxiaoke.next:functions:1.3.+' // ui UI组件, 格式:aar compile 'com.mcxiaoke.next:ui:1.3.+' // recycler EndlessRecyclerView, 格式:aar compile 'com.mcxiaoke.next:recycler:1.3.+' // extra-abc 依赖support-v7 AppCompat 格式:aar compile 'com.mcxiaoke.next:extras-abc:1.3.+'


使用指南(2016.01.12更新)

使用前请阅读对应模块的文档和示例,如果有不清楚的地方,可以看源码,或者向我提问。


Core

基类和工具类
MultiIntentService, NextMessage, Charsets, StringUtils, AndroidUtils, IOUtils, LogUtils。包含基础Activity和Service,还有一些工具类,功能包括:文件路径处理,Toast显示,屏幕方向,组件启用禁用,获取App签名信息;常用的文件复制/字符串/数组/列表/数据流读写,常用的字符串合并/分割/比较/转换/判断等操作;网络类型和状态获取,代理设置;Package相关的工具类,App是否安装,是否运行,启用和禁用组件等;Bitmap缩放,旋转,圆角,阴影,裁剪等;加密算法相关的工具方法,支持MD5/SHA1/SHA256/AES/HEX等。


TaskQueue

异步任务队列
TaskQueue, Async, TaskBuilder, TaskFuture, TaskCallback
包含异步任务执行模块相关的类,详细的使用见后面的说明
  • TaskQueue 对外接口,支持单例使用
  • TaskFuture 表示单个异步任务对象
  • TaskBuilder 对外接口,链式调用
  • TaskCallback 任务回调接口
HttpQueue

同步和异步HTTP请求


同步接口

NextClient, NextRequest, NextResponse, ProgressListener, RequestInterceptor。包含一个经过简单封装的HTTP操作模块,用于简化常用的网络请求操作
包含一个经过简单封装的HTTP操作模块,简化常用的网络请求操作
  • NextClient 网络组件的核心类,封装全局的配置参数
  • NextParams HTTP参数封装和处理
  • NextRequest HTTP 请求封装
  • NextResponse HTTP 响应数据结构
  • ProgressListener HTTP请求数据传输进度回调接口
异步接口

主要是结合 http模块和task模块,提供方便的异步网络操作,本模块主要的方法都是异步执行,通过回调接口反馈结果,内部使用 TaskQeue 执行异步任务管理,使用 NextClient 发送和解析HTTP网络请求,通过回调接口返回数据,网络请求在异步线程执行,回调方法在主线程调用,可用于替代Google的Volley库,能极大的减轻应用开发中异步请求数据然后主线程更新UI这一过程的工作量。
  • **HttpAsync* 异步HTTP操作辅助类,支持直接的异步HEAD/GET/DELETE/POST/PUT请求
  • HttpQueue 异步HTTP任务队列,支持添加和取消HTTP异步任务,支持多种形式的Callback和Transformer
  • HttpJob HTTP任务对象,封装了Request/Callback/Transformer等
  • HttpJobBuilder 生成HttpJob对象的Builder
  • HttpCallback 异步HTTP请求回调接口,调用者可以获知HTTP请求的结果是成功还是失败,获取数据和异常对象
  • HttpTransformer 异步HTTP请求数据类型转换接口,支持Response/String/Gson/File等类型,支持自定义数据类型
  • ResponseProcessor 异步HTTP请求返回数据的处理器,支持多个Processor

Function

函数式操作符
函数模块对外只有一个接口类: com.mcxiaoke.next.func.Fn,主要包含常见的函数式数据操作符:map/flatMap/reduce/concat/filter/all/any 等


Cache

磁盘和内存缓存
包含磁盘缓存 DiscCache 和内存缓存 MemoryCache,内部封装了HashMap和LruCache两种类型的缓存,可根据需要选用。


RecyclerView

无限加载列表
封装 RecyclerView ,用于支持滚动到底部时自动加载数据和显示正在加载,主要有这几个类:
  • EndlessRecyclerView 支持滚动到列表底部自动加载更多的RecyclerView
  • RecyclerArrayAdapter 适用于RecyclerView的ArrayAdapter,接口同ArrayAdapter
  • HeaderFooterRecyclerAdapter 支持添加Header和Footer的RecyclerView.Adapter
  • HeaderFooterRecyclerArrayAdapter 支持添加Header和Footer的ArrayAdapter


UI Widgets

常用UI控件
一些常用的UI控件,可简化日常开发,包括 AlertDialogFragment, ProgressDialogFragment, AspectRatioImageView, ArrayAdapterCompat等。


ShareProvider

高级分享组件
封装的一个 ActionProvider ,比系统自带的 SharedActionProvider 提供大得多的灵活度,可自定义出现在列表里的项目,主要包括 AdvancedShareActionProvider 和 ShareTarget 两个类。


更新记录

  • 1.3.0 2016.01.12http: 合并原来的ioasync模块,增加异步HTTP队列相关的类:HttpQueue/HttpAsync/HttpJob/HttpProcessor/HttpTransformer/HttpCallback等,调整日志记录,更新文档
  • task: 调整创建TaskQueue的方式,支持设置最大并发线程数,调试信息中增加当前线程的名字
1.2.1 2015.12.28
  • http: 调整NextClient的参数处理方式,调整NextRequest的初始化,增加配置接口
  • task: 调整TaskQueue的接口,增加创建队列的工厂方法,支持并发和顺序两种模式
1.2.0 2015.08.24
  • func: 新增函数式操作符模块,通过Fn类支持常用的 map/reduce/filter/zip/all/any/concat 函数,更方便的操作数据序列
  • ioasync: 新增异步IO模块,能有效的简化App中请求数据更新UI这一通用逻辑
  • 补充文档,给几个模块的文档添加了详细的API说明和示例
1.1.13 2015.08.05
  • task: 增加Async类,添加最简单的异步执行方法 Async.run(task)
1.1.12 2015.08.04
  • http: 微调NextRequest,默认Multipart类型改为"multipart/form-data"
1.1.11 2015.07.13
  • http: 添加OkClientInterceptor,支持对内部的OkClient进行定制
1.1.10 2015.07.09
  • recycler: 重写EndlessRecyclerAdapter,修复与HeaderFooterRecyclerAdapter的兼容问题
1.1.9 2015.07.08
  • extras: 更新extras里的AdvancedShareActionProvider,与ui同步
1.1.8 2015.07.07
  • http: 紧急修复部分情况下URL参数没有添加的问题,添加对应的测试
1.1.7 2015.07.07
  • http: 修复一些细节问题,添加几个类的单元测试
1.1.6 2015.07.03
  • http: 完善NextClient和NextRequest,增加实用方法,减少重复代码
1.1.5 2015.07.02
  • http: 模块内部使用OkHttp处理Http请求,简化并重构NextRequest和NextClient接口
1.1.4 2015.07.01
  • http: 修复Client默认参数没有添加到HTTP请求中的问题
1.1.3 2015.07.01
  • recycler: 修复当数据较少不足一屏时的事件处理
1.1.2 2015.06.24
  • recycler: 添加设置Footer字体大小和颜色方法
  • 后续版本只有aar发布到Maven Central,不再发布jar文件
1.1.1 2015.06.19
  • task: 重构,减少不必要的接口,增加TaskFuture,清理代码
  • docs: 修改和完善task模块的文档和示例
1.1.0 2015.06.18
  • task: 完全重构TaskQueue组件,单独部署
  • core: 移除未使用的类,移除task相关的类
  • samples: 添加新的Task使用示例
  • docs: 移动所有文档到docs子目录
1.0.9 2015.06.16
  • core: 优化TaskQueue,调整接口,添加新的辅助类Task,支持链式调用
  • core: 重构MemoryCache,精简结构,缓存对象支持设置过期时间
  • core: 添加一些工具类,如PackageUtils和TrafficUtils
  • recycler: 增加EndlessRecyclerView,支持底部自动加载更多
  • 细节调整,更新示例和说明文档
1.0.8 2015.05.18
  • ui: 移除所有的ic_launcher.png,修复appt报错问题
1.0.7 2015.03.24
  • core: 优化TaskQueue,去掉对support-v4的依赖
  • core: 微调LogUtils,其它细节调整
  • ui: 微调EndlessListView,新增ListViewExtend
1.0.6 2015.03.20
  • 细节调整
1.0.5 2014.12.22
  • 补充完整的文档
1.0.4 2014.09.15
  • 发布到github

其它问题

发现任何问题可以提issue



关于作者

联系方式


开源项目



License


Copyright 2013 - 2015 Xiaoke Zhang

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

0人打赏
  • UID12
  • 登录2016-06-14
  • 粉丝112
  • 关注50
  • 发帖1415
  • 主页
  • 金币8548枚
社区居民
最爱沙发
忠实会员
喜欢达人
原创写手
极分享 发布于2016-02-02 17:10
沙发F
很好的分享,
您需要登录后才可以回帖
发表回复
极贡献
技术问答
专题荟萃
程序人生
视觉设计
Android开发
iOS开发
编程语言
前端开发
后端开发
服务器架构
软件测试
运维方案
创业路上



最热文章墙

  • 77206/375   【精品推荐】200多种Android动画效果的强悍框架,太全了,不看这个,再有动画的问题,不理你了^@^

  • 44148/191   情人节福利,程序员表白的正确姿势:改几行代码就变成自己的表白了

  • 43781/0   Python爬虫:常用浏览器的useragent

  • 40305/259   【精品推荐】Android版产品级的音乐播放器源码,功能太强大了,最好的产品原型有木有?

  • 38019/145   省时省力的Android组件群来了,非常棒的原型参考

  • 29313/142   2016抢红包软件及源码

  • 28998/2   超全!整理常用的iOS第三方资源

  • 28881/71   原创表白APP,以程序员的姿势备战新年后的7夕,持续完善中!

  • 23636/159   Android版类似UC浏览器:非常赞,产品级的源码

  • 22604/30   麻省理工的一帮疯子,真的实现了随意操控万物!(绝对黑科技)

  • 22302/25   Android工程师面试题大全

  • 22165/27   2016程序员跳槽全攻略

  • 21754/9   GitHub上排名前50的iOS项目:总有一款你用得着

  • 20714/20   码魂:程序员的牛B漫画

  • 18804/10   2016年最全的Android面试考题+答案 精编版

  • 18673/85   Android小而全的博客源码:非常适合全面掌握开发技巧

  • 18544/73   【持续更新中】Android福利贴(二):资料源码大放送

  • 18543/42   一个绚丽的loading动效分析与实现!

  • 18540/3   吐槽那些程序员的搞笑牛逼注释

  • 17473/1   iOS 动画总结

  • 17322/45   惊艳的App引导页:背景图片切换加各个页面动画效果

  • 17131/81   仿京东商城客户端Android最新版,不错的原型和学习资料

  • 16961/104   Android带弹幕的视频播放器源码,来自大名鼎鼎的Bilibili弹幕网站

  • 16864/23   个人收集的Android 各类功能源代码

  • 16352/5   新一代Android渠道打包工具:1000个渠道包只需要5秒

  • 16262/21   Android福利第三波【Android电子书】

  • 16251/10   女程序员的梦,众网友的神回复

  • 16129/53   基于瀑布流的美女图片浏览App,有注释的源代码

  • 16113/17   用JavaScript 来开发iOS和Android 原生应用:React Native开源框架中文版来啦

  • 16024/81   【精品推荐】类似360安全卫士安Android源码:非常赞的产品原型

  • 15944/11   年会上现场review代码是怎么样的体验!

  • 15783/0   iOS中文版资源库,非常全

  • 15765/23   珍藏多年的素材,灵感搜寻网站

  • 15071/18   65条最常用正则表达式,你要的都在这里了

  • 14587/15   基于Android支付宝支付设计和开发方案

  • 14007/17   什么是真正的黑客:收获12200+Stars,人气远超微软开源VS

  • 13996/11   有木有这样一张酷图帮你集齐所有git命令超实用

  • 13671/46   在线音乐播放器完整版(商用级的源码):非常赞,可听免费高品质专辑

  • 13490/0   GitHub iOS 库和框架Top100 

  • 13389/7   用程序员的姿势抢过年的火车票

  • 13348/7   一张图搞定iOS学习路线,非常全面

  • 13229/61   【技巧一】搭配Android Studio,如何实现App远程真机debug?

  • 12963/10   成为Java顶尖程序员 ,看这11本书就够了

  • 12885/10   微信支付终于成功了(安卓,iOS),在此分享

  • 12808/18   一张图搞定Android学习路线,非常全面

  • 12555/29   【持续更新中】Android福利贴(一):资料源码

  • 12497/3   基于Node.js的强大爬虫,能直接发布抓取的文章哦

  • 12203/4   46 个非常有用的 PHP 代码片段

  • 11759/3   即时通信第三方库

  • 11269/8   流媒体视频直播方案

  • 11186/18   八个最优秀的Android Studio插件

  • 11066/9   B站建开源工作组:APP想支持炫酷弹幕的看过来

  • 10896/9   烧了5亿美金,这家神秘的公司即将颠覆人类未来!

  • 10802/2   【精品推荐】高质量PHP代码的50个实用技巧:非常值得收藏

  • 10712/10   中国黑客的隐秘江湖:攻守对立,顶尖高手月入千万美元

  • 10069/6   开箱即用!Android四款系统架构工具

  • 9889/10   十大技巧快速提升Android应用开发性能

  • 9807/3   10款GitHub上最火爆的国产开源项目——可以媲美西半球

  • 9708/1   Android性能优化视频,文档以及工具

  • 9666/3   一张图看清Linux 内核运行原理

  • 返回顶部