Android 开发常用框架
xsobi 2024-12-07 18:06 1 浏览
快速开发框架
- 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 动态权限申请
常见框架总览
框架名称 | 主要用途 |
1.Retrofit | 网络 |
2.okhttp | 网络 |
3.Butter Knife | 代码模板 |
4.MPAndroidChart | 图表 |
5.glide | 图片 |
6.leakcanary | 内存 |
7.Android-Universal-Image-Loader | 图片 |
8.EventBus | 事件消息 |
9.zxing | 条码扫描 |
10.picasso | 图片 |
11.lottie-android | 动画 |
12.fresco | 图片 |
13.RxAndroid | 异步 |
14.SlidingMenu | 菜单 |
15.PhotoView | 图片 |
16.material-dialogs | UI |
17.droid-async-http | 网络 |
18.androidannotations | 注解 |
19.fastjson | json |
20.Material-Animations | 动画 |
21.tinker | 热修复 |
22.ViewPagerIndicator | UI |
23.Android-CleanArchitecture | 架构 |
24.Android-PullToRefresh | 刷新 |
25.flexbox-layout | UI |
26.AndroidSwipeLayout | UI |
27.realm-java | 数据库 |
28.greenDAO | 数据 |
29.stetho | 调试 |
30.BaseRecyclerViewAdapterHelper | UI |
31.AndroidViewAnimations | 动画 |
32.MaterialDrawer | 菜单 |
33.Android-ObservableScrollView | UI |
34.CircleImageView | 图片 |
35.logger | 调试 |
36.agera | 异步 |
37.BottmBar | 菜单 |
38.Calligraphy | 字体 |
39.AndroidSlidingUpPanel | UI |
40.AppIntro | UI |
41.recyclerview-animators | 动画 |
42.dagger | 依赖注入 |
43.Android-Bootstarp | UI |
44.RxBinding | 响应式 |
45.ListViewAnimations | 动画 |
46.UItimateRecyclerView | UI |
47.uCrop | 图片 |
48.RxJava-Android-Samples | 用例 |
49.AndroidAutoLayout | 适配 |
50.EffectiveAndroidUI | 性能 |
51.Luban | 图片 |
52.DroidPlugin | 插件化 |
53.otto | 响应式 |
54.u2020 | 用例 |
55.buck | 构建 |
56.PermissionsDispatcher | 权限 |
57.android-gif-drawable | GIF |
58.Apktool | 反编译 |
59.dynamic-load-apk | 插件化 |
60.atlas | 插件化 |
61.volley | 网络 |
62.androidmvp | 用例 |
63.SwipeBackLayout | 手势 |
64.FlycoTabLayout | UI |
65.android-testing | 测试 |
66.FileDownloader | 下载 |
67.JieCaoVideoPlayer | 多媒体 |
68.glide-transformations | 图片 |
69.android-gpuimage | 图片 |
70.RxPermissions | 权限 |
71.freeline | 编译 |
72.RxLifecycle | 生命周期 |
73.classyshark | 反编译 |
74.acra | 崩溃日志 |
75.DiskLruCache | 文件 |
76.dexposed | 热修复 |
77.Litho | 性能 |
78.mosby | MVP |
79.AndResGuard | 混淆 |
80.StatusBarUtil | 状态栏 |
81.robolectric | 测试 |
82.Fragmentation | 嵌套 |
83.Small | 插件化 |
84.JsBridge | hybrid |
85.richeditor-android | UI |
86.Transitions-Everywhere | 动画 |
87.android-viewbadger | 勋章 |
88.AndroidWiFiADB | 调试 |
89.emojicon | 表情包 |
90.packer-ng-plugin | 多渠道 |
91.android-priority-jobqueue | 多线程 |
92.Android-Debug-Database | 调试 |
93.conceal | 加密 |
94.ARouter | 页面路由 |
95.MagicaSakura | 多主题 |
96.CustomActivityOnCrash | 崩溃 |
97.XhsEmoticonsKeyboard | 键盘 |
相关推荐
- 【互联网那些事】高效开发Android App的10个建议
-
假如要GooglePlay上做一个最失败的案例,那最好的秘诀就是界面奇慢无比、耗电、耗内存。接下来就会得到用户的消极评论,最后名声也就臭了。即使你的应用设计精良、创意无限也没用。 耗电或者内存...
- 手机APP开发方式有哪些? 手机app的开发模式有哪三种?
-
微信小程序开发定制_软件开发_APP开发_网站制作-优软软件开发...
- Android开发入门(一):Android系统简介
-
Android系统是Google公司在2008年推出的一款智能移动设备操作系统,通过不断地版本迭代,目前已经推出到Android11版本了。Android系统广泛应用在手机、平板、电视等各种电子设...
- 物联网app开发流程 物联网app开发工具
-
现在随着科技的发展,很多产品都想用一个手机app去显示他的参数数据或者通过手机app去控制它。但是很多人不知道他的流程。今天我就来说下物联网app开发流程。首先需要把物联网app开发流程分2个步骤,一...
- Android开发进阶 | 如何学习 Android Framework?
-
大部分有“如何学习Framework源码”这个疑问的,应该大都是应用层开发。应用层是被Framework层调用执行的,知道自己的代码是怎么被调用的,才能理解程序的本质,理解本质有助于解决遇到的...
- 快速实现APP混合开发(Hybrid App开发)攻略
-
前言:...
- 三个阶段带你了解一款app开发的完整流程
-
第一个阶段需求阶段:1.需求讨论--开发类型、开发平台、具体的产品功能需求、项目预计完成时间、预算2.需求评估--确认合作后评估具体的预算3.界面设计--设计部门进行产品界面设计,形成效果图...
- Android 开发中文引导-应用小部件
-
应用小部件是可以嵌入其它应用(例如主屏幕)并收到定期更新的微型应用视图。这些视图在用户界面中被叫做小部件,并可以用应用小部件提供者发布。可以容纳其他应用部件的应用组件叫做应用部件的宿主(1)。下面的截...
- 手机软件开发从零开始【Android第2篇Hello】
-
Hello,朋友们我们又见面了。上一篇我们讲到了《Android开发环境搭建【Android基础第1篇】》,错过的朋友可以点击文章末尾的“阅读原文”查看。另外需要下载JDK和ADT-bundle工具的...
- 「全栈工程师之梦的开始--安卓开发(二)」开发安卓app
-
在配置好jdk开发环境、安装好开发工具Androidstudio后,我们就可以开始开发安卓app了。首先,我们需要先了解下android的术语。...
- 二、Android界面开发 android 开发
-
学习目标了解Android常用布局了解Android常用控件...
- 如何开发一款APP既快捷也简便 开发一款app的步骤
-
具体较为简单的步骤可以选择用androidstudio开发app1、打开软件,在菜单中选择file-》newproject打开创建向导。2、配置项目,确定各个名称和存放项目的存放路径;Applic...
- 安卓开发中的“Android高手”,需要具备哪些技术?
-
前言成为一名安卓开发者很容易,但是要成为一名“Android高手”却不那么容易;...
- 移动开发(一):使用.NET MAUI开发第一个安卓APP
-
对于工作多年的C#程序员来说,近来想尝试开发一款安卓APP,考虑了很久最终选择使用.NETMAUI这个微软官方的框架来尝试体验开发安卓APP,毕竟是使用VisualStudio开发工具,使用起来也...
- 微软推出PowerApps:零基础开发Win10/iOS/安卓企业应用
-
IT之家讯微软今天面向企业宣布了全新的应用开发解决方案PowerApps,让Windows(包括Win10)、iOS以及安卓应用的开发和分发变得更加简单。PowerApps的用户界面与Office办...
- 一周热门
- 最近发表
- 标签列表
-
- grid 设置 (58)
- 移位运算 (48)
- not specified (45)
- patch补丁 (31)
- 导航栏 (58)
- context xml (46)
- scroll (43)
- element style (30)
- dedecms模版 (53)
- vs打不开 (29)
- nmap (30)
- c 视频教程下载 (33)
- paddleocr (28)
- listview排序 (33)
- firebug 使用 (31)
- transactionmanager (30)
- characterencodingfilter (33)
- getmonth (34)
- commandtimeout (30)
- hibernate教程 (31)
- label换行 (33)
- curlpost (31)
- android studio 3 0 (34)
- android开发视频 (30)
- android应用开发 (31)