深入解析ZBLibrary-Android快速开发框架
阅读前请点击右上角“关注”,每天免费获取Android知识解析及面试解答。Android架构解析,只做职场干货,完全免费分享!
MVP 架构,提供一套开发标准(View, Data, Event)以及模板和工具类并规范代码。封装层级少,简单高效兼容性好。
OKHttp 网络请求、Glide 图片加载、ZXing 二维码、沉浸状态栏、下载安装、自动缓存以及各种 Base、Demo、UI、Util 直接用。
全新的手势,侧滑返回、全局右滑返回都 OUT 啦!
用 BaseView,自定义 View 竟然如此简单;
用 Entry<K, V>,两个变量的 Model/JavaBean 再也不用写了;
用 BaseHttpListActivity,几行代码搞定 HTTP 请求列表 加载和缓存;
还有 100 多个常用 Style,一行搞定 View 属性,一键统一配置UI…
点击右边链接查看如何使用 http://my.oschina.net/u/2437072/blog/665241
[以下 Gif 图看起来比较卡,实际在手机上 App 运行很流畅]
ZBLibraryDemoApp
ZBLibrary_DatePicker.gif
ZBLibrary_PlacePicker (1).gif
ZBLibrary_PlacePicker.gif
APIJSONApp
APIJSON_App_Moment_Comment.gif
APIJSON_App_Moment_Name.gif
APIJSON_App_MomentList_Circle.gif
ZBLibraryDemoApp.apk(ZBLibrary)
APIJSONApp.apk(APIJSON+ZBLibrary)
Glide Google 官方推荐的一个强大易用的图片加载库。
OKHttp 很火很强大的 HTTP/HTTPS 传输框架。ZBLibrary 中的 HttpManager 对它做了封装(支持自签名Https),Demo 中的 HttpRequest 是使用示例。 注:okio.jar 是 OKHttp 的一部分,不能删除。删除后不会在代码中报错,但运行会出错。
FastJson 阿里巴巴的 JSON 封装和解析库。ZBLibrary 中的 JSON 是对 fastjson 的简单封装,防止解析异常。
SmartRefreshLayout 下拉刷新、上拉加载的组件库,已在 BaseHttpRecyclerActivity 等类内置支持。
SystemBarTint 系统栏管理器,我把它用在 ZBLibrary 的 BaseActivity 中实现了状态栏沉浸。
ZXingLib 这是该作者对官方 ZXing 二维码库的精简版。我做了修改,作为 ZBLibrary 的 QRCodeLibrary。
假设你工程中的 Application 为 zblibrary.demo.application.DemoApplication,并且已在 AndroidManifest.xml 中注册
可以用 DemoApplication 继承 BaseApplication
或 在 DemoApplication 的 onCreate 函数 中调用 BaseApplication.init(this);
注册 权限和 Activity 等代码可复制 ZBLibrary 中 AndroidManifest.xml 里的 <uses-permission/>, <activity/> 等相关代码。
可使用 APIAuto 自动化接口管理工具来生成接口相关代码:
- 自动生成封装请求 JSON 的代码
- 自动生成解析结果 JSON 的代码
- 自动生成 Modle/JavaBean
https://github.com/TommyLemon/APIAuto
- 能复制就复制,节约时间避免出错
- 保留原本结构,简单上手容易调试
- 增加必要注释,说明功能和使用方法
- 说明随手可得,不用上网或打开文档
- 命名必须规范,容易查找一看就懂
- 重载尽量转发,减少代码容易修改
- 最先校验参数,任意调用不会崩溃
- 代码模块分区,方便浏览容易查找
- 封装常用代码,方便使用降低耦合
- 回收多余占用,优化内存提高性能
- 分包结构合理,模块清晰浏览方便
- 多用工具和快捷键,增删改查快捷高效
程序员最喜爱的12个Android应用开发框架(二)
在上一篇程序员最喜爱的12个Android应用开发框架(一)中,我们为大家介绍了前6个Android应用开发框架,主要包括了Xamarin、Phonegap、Corona SDK等。接下来,小编将继续为大家介绍余下的6个开发框架,欢迎大家品鉴!
jQuery Mobile是jQuery在手机上和平板设备上的版本。jQuery Mobile不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架来支持全球主流的移动平台。
今天,jQuery驱动着Internet上的大量网站,在浏览器中提供动态用户体验,促使传统桌面应用程序越来越少。现在,主流移动平台上的浏览器功能都赶上了桌面浏览器,因此jQuery团队引入了jQuery Mobile(或 JQM)。JQM 的使命是向所有主流移动浏览器提供一种统一体验,使整个Internet上的内容更加丰富。
Dojo Mobile框架是一套移动终端的Web应用开发框架,是Dojo的一个子项目。Dojo Mobile主要面向手持设备上的Web富客服端应用开发,提供了iPhone和Android两套主题,使得基于iPhone或者Android的Web应用具有手机本地应用的外观和效果,而同时也给了开发者更多的主导权。
Dojo Mobile开发框架有以下几个特点:
- 轻量级。Dojo Mobile框架在压缩之后仅有100k,比同类js框架中体积小,对移动设备来说十分合适。
- 大量使用CSS3实现iPhone和Android本地程序的特效,动画效果流畅。
- 跨浏览器平台。Dojo Mobile同时也支持非webkit内核的手机浏览器,使用Dojo自带的dojo.animateProperty与dojox.gfx模拟特效。
SproutCore是web应用程序的第一个也是最重要的一个Model-View-Controller (MVC)框架。SproutCore不同于Struts或Ruby on Rails,后者是服务器端框架,而SproutCore是一个纯客户端框架,M、V和C都是驻留在客户端的。
SproutCore的目标是在浏览器中提供极佳的桌面效果应用而无需任何浏览器插件。所有这些都不是用什么新技术实现的,而是采用这几年广为应用同时又在不断发展的技术。SproutCore主要采用JavaScript、HTML以及CSS,这样对后端系统没什么限制。同时SproutCore还能与任何后端服务器技术搭配使用。事实上,一旦部署之后,SproutCore应用只包含标准的HTML、JavaScript以及CSS。只需使用Apache就能部署完整的SproutCore应用。
Theappbuilder是一款跨平台的DIY移动应用程序开发套件。目前每天有数以万计的用户使用Theappbuilder来创建和发布应用程序。通过Theappbuilder的数据库、\”拖拽\”功能和在线教程,用户无需具备任何的专业知识和编程能力即可创建自己的应用程序。
Theappbuilder有以下几个特点:
- 高度的可定制性。用户通过Theappbuilder的模板可以轻松地定制应用程序的结构。通过内置的模板和\”拖拽\”功能,用户可以在几分钟内轻松地创建一个应用程序。
- 跨平台发布。用户只需要一次创建就可以把应用程序发布到包括iOS、Android、Windows Phone和HTML5等在内的平台上。
DHTMLX Touch是针对移动和触摸设备的JavaScript框架,DHTMLX Touch基于HTML5来创建移动web应用。它不只是一组UI小工具,而是一个完整的框架,可以针对移动和触摸设备创建跨平台的web应用。它兼容主流的web浏览器,用DHTMLX Touch创建的应用,可以在iPad、iPhone、Android智能手机等上面运行流畅。
MoSync是一款开源的免费移动游戏开发引擎,允许开发者使用C++、HTML或者JavaScript来为iOS、Android、Windows Phone 7、Symbian、Java ME、Windows Mobile和Moblin(BlackBerry支持)平台进行开发。
MoSync IDE允许开发者有超过2400种目标设备,它们的大多数都是Java ME的变种。开发者可以调用任何仿真器,包括本地平台的仿真器,或者MoSync提供的MoSync Reference Environment。
本站文章除注明转载外,均为本站原创或翻译
Android 开发常用框架
- XSnow: 基于RxJava2+Retrofit2精心打造的Android基础框架。包含网络、上传、下载、缓存、事件总线、权限管理、数据库、图片加载,基本都是项目中必用功能,每个模块充分解耦,可自由拓展;
- MVPArms 一个整合了大量主流开源项目高度可配置化的 Android MVP 快速集成框架(包括Mvp、 Dagger2、RxJava、RxAndroid、Rxlifecycle、RxCache、RxPermissions、RxErroHandler、Retrofit、Okhttp、AndroidAutoSize、Gson、Butterknife、AndroidEventBus、Timber、Glide、LeakCanary);
- Android-ZBLibrary Android MVP快速开发框架,做国内 「Demo最全面」「注释最详细」「使用最简单」「代码最严谨」的Android开源UI框架 (包括OKHttp、UIL图片加载、ZXing二维码、沉浸状态栏、下载安装、自动缓存以及各种Base、Demo、UI、Util)【https://github.com/TommyLemon/Android-ZBLibrary】
- MVVMHabit MVVMHabit是以谷歌DataBinding+LiveData+ViewModel框架为基础,整合Okhttp+RxJava+Retrofit+Glide等流行模块,加上各种原生控件自定义的BindingAdapter,让事件与数据源完美绑定的一款容易上瘾的实用性MVVM快速开发框架;
- AndroidFire AndroidFire,一款新闻阅读 App框架,基于 Material Design + MVP + RxJava + Retrofit + Glide,基本涵盖了当前 Android 端开发最常用的主流框架,基于此框架可以快速开发一个app。
- okhttp 功能强大的网络请求框架;
- retrofit 基于OKhttp的网络请求框架,配合Rxjava使用,逻辑非常简洁;
- okhttp-OkGo 基于 Http 协议,封装了 OkHttp 的网络请求框架,比 Retrofit 更简单易用,支持 RxJava,RxJava2,支持自定义缓存,支持批量断点下载管理和批量上传管理功能;
- RxJavaSamples retrofit + rxjava案例;
- RxLifecycle rxjava生命周期管理;
- RxPermissions 运行时权限申请;
- 注解框架 butterknife 编译时注解框架,提供view和点击事件的绑定;
- 注解框架 dagger 不仅可以view绑定,还可以提供对象绑定;
- 事件总线 EventBus Event bus for Android and Java that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality;
- 事件总线 RxBus 用rxjava实现的eventbus;
- butterknife插件android-butterknife-zelezny Android Studio plug-in for generating ButterKnife injections from selected layout XML.(一键生成view的绑定代码);
- 下拉刷新控件 SmartRefreshLayout 正如名字所说,SmartRefreshLayout是一个“聪明”或者“智能”的下拉刷新布局,由于它的“智能”,它不只是支持所有的View,还支持多层嵌套的视图结构。 它继承自ViewGroup 而不是FrameLayout或LinearLayout,提高了性能。 也吸取了现在流行的各种刷新布局的优点,包括谷歌官方的 SwipeRefreshLayout, 其他第三方的 Ultra-Pull-To-Refresh、TwinklingRefreshLayout 。 还集成了各种炫酷的 Header 和 Footer;
- 下拉刷新TwinklingRefreshLayout 支持下拉刷新和上拉加载的RefreshLayout,自带越界回弹效果,支持RecyclerView,AbsListView,ScrollView,WebView;
- 适配器BaseRecyclerViewAdapterHelper 优化Adapter代码(减少百分之70%代码) 添加点击item点击、长按事件、以及item子控件的点击事件 添加加载动画(一行代码轻松切换5种默认动画) 添加头部、尾部、下拉刷新、上拉加载(感觉又回到ListView时代) 设置自定义的加载更多布局、添加分组(随心定义分组头部)、 自定义不同的item类型(简单配置、无需重写额外方法)、设置空布局(比Listview的setEmptyView还要好用!)、添加拖拽item;
- 图片选择器(包括图片、视频、音频的选取和预览)PictureSelector 一款针对android平台下的图片选择器,支持从相册或拍照选择图片或视频、音频,支持动态权限获取、裁剪(单图or多图裁剪)、压缩、主题自定义配置等功能、适配android 6.0+系统的开源图片选择框架;
- 基于WebView的带进度条的webview控件AgentWeb AgentWeb是一个基于Android WebView ,极度容易使用以及功能强大的库,提供了 Android WebView 一系列的问题解决方案 ,并且轻量和极度灵活;
- 图片加载框架 glide 一个强大的图片加载和缓存库;
- 图片压缩Luban 可能是最接近微信朋友圈的图片压缩算法;
- 圆角图片控件CircleImageView ;
- 腾讯出品的webview控件 VasSonic VasSonic是由腾讯VAS团队开发的轻量级和高性能混合框架,旨在加速在Android和iOS平台上工作的网站的第一个屏幕;
- 图片缩放控件 PhotoView 不需要写任何代码就可以实现图片手势缩放,旋转;
- 简洁好看的对话框sweet-alert-dialog;
- VirtualLayout 是一个针对RecyclerView的LayoutManager扩展, 主要提供一整套布局方案和布局间的组件复用的问题;
- QMUI_Android QMUI Android 是腾讯团队开源的,设计目的是用于辅助快速搭建一个具备基本设计还原效果的 Android 项目,同时利用自身提供的丰富控件及兼容处理,让开发者能专注于业务需求而无需耗费精力在基础代码的设计上。不管是新项目的创建,或是已有项目的维护,均可使开发效率和项目质量得到大幅度提升;
- 配合glide改变图片显示形状的库 glide-transformations;
- 视频播放器 GSYVideoPlayer 视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS,支持弹幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,列表全屏动画,视频加载速度,列表小窗口支持拖动,动画效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,列表切换详情页面无缝播放,rtsp、concat、mpeg;
- 加载动画 Android-SpinKit;
- 闪烁加载视图 ShimmerRecyclerView 在加载时显示闪烁图层,加载完成时显示数据;
- 日历控件 CalendarView Android上一个优雅、万能自定义UI、支持周视图、自定义周起始、性能高效的日历控件,支持热插拔实现的UI定制!支持标记、自定义颜色、农历、自定义月视图各种显示模式等。Canvas绘制,速度快、占用内存低,你真的想不到日历居然还可以如此优雅!
- 图表控件MPAndroidChart;
- 图片轮播控件 MZBannerView 仿魅族BannerView,图片轮播控件,支持多种模式切换:普通ViewPager使用,普通Banner使用,仿魅族Banner使用;
- 好看的图片和视频选择器Matisse 知乎开源的图片选择器,简洁大方;
- 自定义layoutmanage LayoutManagerGroup 自定义LayoutManager;
- 时间、地区、三级联动选择器 Android-PickerView;
- 选项选择器 AndroidPicker;
- 通用弹框 XPopup 可以替代Dialog,PopupWindow,PopupMenu,BottomSheet,DrawerLayout,Spinner等组件,自带十几种效果良好的动画, 支持完全的UI和动画自定义!
- PinnedSectionItemDecoration 大粘性标签支持垂直方向的线性、网格、瀑布流布局管理器 小粘性标签支持垂直方向的线性和网格一行只有一列网格布局管理器 支持标签的单击、双击和长按事件 支持标签内部子控件的单击、双击和长按事件 可以绘制线性、网格、瀑布流布局的分隔线,支持自定义分割线样式(PS:垂直瀑布流布局需要Item高度固定,不能随机变化导致Item位置切换;
- SuperTextView 为 View 设置圆角、支持单独控制每一个圆角、为 View 添加边框、为文字增加描边或空心效果、支持最多 2 个 Drawable 展示、可准确控制 Drawable 大小及位置、支持渐变色背景 触摸变色展示图片(包括网络图片)、为图片设置圆角、为图片增加边框、可插入操作的 Adjuster 模块、修改 Drawable 的颜色、修改 Drawable 的旋转角度、支持文字渐变色效果、支持为 Drawable 区域单独设置点击事件、支持 Gif 图展示、支持为 Gif 图添加边框,以及圆角、支持Gif 图暂停/播放、修改帧率、支持提取指定Gif 帧
- 日志框架logger Simple, pretty and powerful logger for android;
- 内存溢出检测leakcanary 用于监测App内存泄漏
- 性能监控AndroidPerformanceMonitor BlockCanary是一个Android平台的一个非侵入式的性能监控组件,应用只需要实现一个抽象类,提供一些该组件需要的上下文环境,就可以在平时使用应用的时候检测主线程上的各种卡慢问题,并通过组件提供的各种信息分析出原因并进行修复;
- 状态栏管理 StatusBarCompat;
- 插件框架 Shadow 复用独立安装App的源码:插件App的源码原本就是可以正常安装运行的。 零反射无Hack实现插件技术:从理论上就已经确定无需对任何系统做兼容开发,更无任何隐藏API调用,和Google限制非公开SDK接口访问的策略完全不冲突。 全动态插件框架:一次性实现完美的插件框架很难,但Shadow将这些实现全部动态化起来,使插件框架的代码成为了插件的一部分。插件的迭代不再受宿主打包了旧版本插件框架所限制。 宿主增量极小:得益于全动态实现,真正合入宿主程序的代码量极小(15KB,160方法数左右)。 Kotlin实现:core.loader,core.transform核心代码完全用Kotlin实现,代码简洁易维护;
- 今日头条屏幕适配方案 AndroidAutoSize 今日头条屏幕适配方案终极版,一个极低成本的 Android 屏幕适配方案;
- 热修复框架 Tinker Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstall apk;
- 组件化路由框架 ARouter 帮助 Android App 进行组件化改造的路由框架;
- 权限管理 AndPermission 动态权限申请
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。