我的Android开源之旅
文章平均质量分 93
基于Android本身,分析主流开源库实现思路,设计属于自己的Android开源库,做一名有追求的Android架构师。
xuexiangjys
微信公众号:我的Android开源之旅。
专注Android移动开发技术,擅长设计模式,架构设计,移动设备通讯,App快捷开发。
展开
-
RecyclerView性能优化之异步预加载
相信看完以上内容后,你会发现写了这么多,无非就是把中加载布局的操作提前,并放到了子线程中去处理,其本质依然是空间换时间,并将列表数据网络请求到列表刷新这段事务真空的时间窗口有效利用起来。本文的全部源码我都放在了github上, 感兴趣的小伙伴可以下下来研究和学习。原创 2023-06-26 02:15:12 · 843 阅读 · 0 评论 -
浅谈Android主题样式
自定义View、ViewGroup或者SurfaceView:自定义View:主要重写onDraw(绘制)方法。自定义View实现例子自定义ViewGroup:主要重写:onMeasure(测量)、onLayout(布局)这两个方法。自定义ViewGroup实现例子自定义SurfaceView:创建RenderThread,然后调用SurfaceHolder的.lockCanvas方法获取画布,再调用SurfaceHolder的.unlockCanvasAndPost方法将绘制的画布投射到屏幕上。原创 2023-03-11 23:47:16 · 330 阅读 · 0 评论 -
XTask与Kotlin Coroutine的使用对比
背景XTask是我基于RxJava的设计思想,并结合实际项目中使用的经验所创造出来的一个开源项目,其目的就是要代替RxJava在Android中的部分使用场景,提升开发的体验和可维护性。前段时间写过一篇《XTask与RxJava的使用对比》文章,本来只是从对比这两者使用的不同,来让大家更直观全面地了解XTask,然而有些杠精们就开始在下面评论或者私信说“用Kotlin的协程它不香嘛”、“和kotlin的协程相比如何”等。首先我想说的是,协程并没某些人吹得那么神乎其神,说到底它就是个应用框架而已,主要解原创 2022-04-23 15:59:24 · 2017 阅读 · 0 评论 -
XTask与RxJava的使用对比
XTask和RxJava各有各的优势。正如我文章开头所说: XTask并不是用来代替RxJava的。XTask只是作为RxJava在Android任务执行流程上的一种补充。原创 2022-04-10 15:36:16 · 3017 阅读 · 3 评论 -
XTask 一个拓展性极强的Android任务执行框架
背景很早之前接触了RxJava的任务流操作,觉得这种将复杂业务流通过一个个操作符拆解开来,形成一条条条理清晰的function, 让人写起来直呼过瘾.其实这就是责任链模式的一种应用.但是RxJava的功能实在是太强大了, 如果仅仅是使用它来处理这些业务流我觉得还是有些大材小用了.之前也做过一段时间的应用性能优化, 其中当然就包括应用冷启动优化, 中间有涉及过启动器的概念, 当时也查阅了一些现有的开源框架, 也使用过其中一些, 但是总觉得并不是很好用, 用起来不是很顺手.作为一名资深Android开源原创 2022-02-18 02:35:56 · 3635 阅读 · 5 评论 -
如何学习RxJava3?有这个项目就够了
前言最近跳槽到了一家新的公司, 居然发现这家公司的项目大量使用了RxJava3相关的技术, 这让我这个Rx系列轻度使用者有些无所适从.俗话说, 千学不如一看, 千看不如一练. 为了能够快速地熟悉和掌握RxJava3相关的内容, 我参照了官方文档并结合了之前使用的经验, 写了一个小的学习项目RxJava3Sample, 里面包含了文档简介、例子、日志展示和源码等内容。就这样, 我看着文档一遍遍地敲着代码学习, 掌握的速度非常的迅速. 有对RxJava3感兴趣的不妨把项目下下来, 本地跑一跑试一试, 效果原创 2022-01-19 00:49:48 · 570 阅读 · 1 评论 -
XPage系列|是时候抛弃ButterKnife了
前言作为 X-Library系列框架 的灵魂所在,XPage 开源两年以来,一直致力于降低Fragment使用的难度,努力实现一个Activity多Fragment的Android开发模式。前段时间, 在观望了许久之后, 我终于更新了Android Studio的最新版本(北极狐), 发现项目中使用ButterKnife注解id的代码出现了警告,警告信息如下:Resource IDs will be non-final in Android Gradle Plugin version 5.0,原创 2021-08-10 02:32:39 · 2760 阅读 · 3 评论 -
商业级智能家居开源项目分享
前言事情是这个样子的, 今天我和往常一样, 在下班之后瞅了几眼我建的几个开源技术交流QQ群, 试图寻找有价值的建设信息. 因为平时工作太忙, 基本上不会去看这些信息, 而且里面很少能获得一些有价值的建设意见, 所以我也没抱有什么多大期望.但是今天, 我居然在QQ群里发现了一个用XUI做的完整的开源项目, 而且还是近期比较火的智能家居项目, 拥有管理后台、前端、移动端以及硬件端, 完全可以进行商业化的项目![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TwfcV4QV-.原创 2021-07-06 02:33:42 · 3260 阅读 · 1 评论 -
flutter版本更新常见问题大盘点
前言在2020年新冠疫情的时候,我宅在家中无所事事,于是乎我写了一个flutter的版本更新插件: flutter_xupdate, 并且将其发布在了Google建立的Dart插件平台上,一年以来收到的反响还算不错,具体可看下图所示:但与此同时,也收到了很多使用者的疑问.为此,我简单看了一下问题,发现使用者之前可能压根就没有做过Android原生开发,对Android的一些基础知识非常缺乏,就会导致很多问题.这里,为了能够让大家更好地去使用flutter_xupdate实现一键版本更新,我特地为原创 2021-06-22 02:15:47 · 1160 阅读 · 7 评论 -
为了能让你们用上flutter,我准备做几期视频教程
前言又到了一年一度的春节假期,又是拉开人与人之间差距的时刻了!去年因为疫情的原因,我在家自学了近一个月的flutter,然后在github上啪啦啪啦地写了一堆flutter项目,收到相当不错的反响.下面是我那个时期写的flutter项目,感兴趣的可以拿去把玩把玩。flutter完整学习项目FlutterSample: https://github.com/xuexiangjys/FlutterSampleflutter模版项目flutter_template: https://github原创 2021-02-07 00:00:39 · 737 阅读 · 1 评论 -
由一个进度条更新所引发的思考
事情的起因事情是这样子的,我前阵子在Github上开源了一个Android全量版本更新的框架XUpdate, 受到了大家一致的好评。但是随着使用者基数的不断增大,中间也暴露了很多问题,其中问的最多的就是:“为啥我的版本更新进度条不显示或者不更新呢?”出现的问题如果是我遇到了这个问题,我想我最直接的解决方式就是阅读源码或者打断点、打日志去定位问题了。为啥别人都可以,而我却不行呢?然而遗憾的是,我发现很多人出现问题的第一反应就是:这什么破玩意儿,怎么不起作用。然后就开始去百度各种搜,又或者加QQ交流原创 2021-02-03 01:49:18 · 1466 阅读 · 6 评论 -
你想要的Android全量版本更新功能,我这儿都有!
背景前段时间我写了一篇介绍我的一个开源项目XUpdate的博客: 史上最好用的Android全量版本更新库XUpdate使用指南, 收到了大家普遍的认可,但与此同时也有人向我反馈了不少建议,比如说:能否提供一个一键可使用的库?能否支持断点续传下载功能?出于以上的建议, 同时也是为了能够更加完善我的XUpdate生态圈,于是我抽出一点时间,简单地实现了一个XUpdate拓展库 XUpdateAPI, 项目的地址如下:https://github.com/xuexiangjys/XUpdateAP原创 2020-12-25 02:13:15 · 2700 阅读 · 9 评论 -
XPage系列|这次升级后终于是全自动化注册了!
前言作为 X-Library系列框架 的灵魂所在,XPage 开源两年以来,一直致力于降低Fragment使用的难度,努力实现一个Activity多Fragment的Android开发模式。就在前不久,我就整理了XPage开源这几年来的使用情况,写了一篇《史上最方便的Android页面框架XPage使用指南》 ,并且还录了几期视频单独讲解了XPage的使用 ,让越来越多地人看到了XPage使用的便捷性。但就在前几天,在交流群里突然有人问我下面几个问题:1.我如果想在多个module中使用XPag.原创 2021-01-11 01:58:55 · 1198 阅读 · 1 评论 -
手把手教你如何巧用Github的Action功能
概念GitHub Actions 是 GitHub 于2018年10月推出的持续集成服务。那么何谓持续集成呢?持续集成持续集成(Continuous integration),也就是我们经常说的CI。它是一种软件开发实践,可以让团队在持续的基础上收到反馈并进行改进,不必等到开发后期才寻找和修复缺陷,常运用于软件的敏捷开发中。Jenkins就是我们常用的持续集成平台工具。理解了持续集成的概念之后,下面我简单讲一下使用持续集成的好处:提高效率,减少了重复性工作:一些重复性的工作写成脚本交给持续集成原创 2021-01-08 03:09:26 · 8907 阅读 · 2 评论 -
史上最全的开源项目创作指南
前言开源,是这个时代的主旋律。作为一名Android开发工程师,我有理由相信我们是开源的最大受益者,因为那个养活我们的Android其本身就是Google的开源项目。在这样一个开源的时代,就连之前那个最排斥开源的"微软"也不得不积极拥抱开源,大手笔收购github以表自己的开源决心。前段时间我在逛github的时候,偶然间发现,我的github已经拥有12个star过百的开源项目,2个star过千的项目。回首一想,原来我做开源项目已经快3年了,想想这一路走下来真的非常不易。深夜和周末是我做开源项原创 2020-11-24 23:41:02 · 5242 阅读 · 4 评论 -
史上最优美的Android原生UI框架XUI使用指南
项目简介XUI是一个简洁而又优雅的Android原生UI框架,解放你的双手!XUI可以说是我花费心血最多的开源项目了,目前稍微大一点的项目我都会选择引入它。XUI几乎涵盖了目前Android开发所需要的所有组件,可以说有了XUI之后,可以大大提高我们的开发效率,让我们可以将精力很多地放在业务功能和数据处理上。可以说XUI是目前Github上组件最全、文档最详细、案例(200+)数量最多的Android原生UI库。目前XUI在github上已经拥有2.6k的star量, 如果你喜欢的话,欢迎点击s.原创 2020-11-01 23:19:59 · 11989 阅读 · 9 评论 -
史上最好用的Android全量版本更新库XUpdate使用指南
项目简介XUpdate是一个轻量级、高可用性的Android全量版本更新框架。XUpdate是为了解决在不同项目组、不同平台之间进行统一的Android全量版本更新的库。它具有轻量、灵活、低耦合、高可用等特点,可以很方便地定制属于自己的版本更新。设计原由在没有XUpdate之前的版本更新,Android版本更新基本都是靠写各种版本更新工具类来实现版本更新,更可怕的是有时在不同项目组或者平台之间,它们的版本更新完全是不一样的,这样的结果就是会写无数的版本更新工具类,并且每次更换一个项目组或者平台就原创 2020-11-01 00:21:14 · 5666 阅读 · 13 评论 -
史上最实用的Android切片应用库XAOP使用指南
项目简介一个轻量级的AOP(Android)应用框架,囊括了最实用的AOP应用。项目地址: https://github.com/xuexiangjys/XAOP, 喜欢的话,欢迎star支持!设计原由在我们平时开发的过程中,一定会遇到权限申请、线程切换、数据缓存、异常捕获、埋点和方法执行时间统计等问题。这些都是非常常见的问题,实现起来也不是很难,不过就是太麻烦了,还会让程序多出很多重复性、模版化的代码。设计思路让我最初接触到AOP思想的是JakeWharton的hugo,通过阅读它的源码之后,让原创 2020-10-25 23:32:41 · 2230 阅读 · 5 评论 -
史上最方便的Android页面框架XPage使用指南
简介XPage是一个非常方便的fragment页面框架!天下武功,唯快不破,XPage最大的特点就是快,提高开发的效率!XPage设计的初衷是希望能做一个通用的Activity作为壳,Fragment作为页面填充展示,并且能够像Activity那样自由的切换和数据交互。视频讲解 XPage页面框架入门介绍 视频原链接 : https://www.bilibili.com/vid原创 2020-10-14 22:17:54 · 4087 阅读 · 5 评论 -
什么骚操作,用Android能写后台服务?
事情是这样子的, 前段时间在浏览github的时候,偶然间发现了一个有趣的项目AndServer,说是能够用Android写一个可运行的后台服务,并且写法还和当前最流行的SpringBoot很类似,于是我就上手试了一把,觉得非常有趣,于是就参照着文档,写了个服务端和客户端的模版,这里分享给大家,有兴趣的可以把玩把玩,还是很有趣的.AndServer在分享之前,我先来简单地介绍一下这个AndServer项目.AndServer是阿里大佬yanzhenjie的开源项目,项目地址: https://.原创 2020-10-06 03:17:13 · 2900 阅读 · 4 评论 -
快速上手系列--Android应用开发模板
Android应用开发模版Android空壳模版工程,快速搭建(集成了XUI、XUtil、XAOP、XPage、XUpdate、XHttp2、友盟统计和walle多渠道打包)效果预览项目地址https://github.com/xuexiangjys/TemplateAppProject项目集成介绍本项目是项目androidx项目。精选了X系列最实用的几个库,可大大提高开发的效...原创 2020-03-28 01:51:57 · 1311 阅读 · 2 评论 -
react-native-xupdate-new 一键实现react-native应用版本更新
自2018年我开源了XUpdate之后,至今已迭代了14个版本,月下载量达4k+,Github的star量也已经有800+.目前XUpdate的生态已包含Android原生SDK、Flutter插件、版本更新后台服务、版本更新管理系统. 为了能够更加丰富它的生态,我决定再写一个React-Native插件。下面我给出react-native-xupdate-new插件的地址:https://...原创 2020-03-16 22:18:21 · 2010 阅读 · 1 评论 -
极光推送之Android客户端使用指南--基础篇
本文中涉及到的所有代码现已在Github上开源,地址: https://github.com/xuexiangjys/JPushSample前言极光推送是国内最早做第三方消息推送平台的公司,在消息推送界还是相对有影响力的。我最早是在2016年接触到极光消息推送的,那时候公司需要做消息推送业务,但是由于之前没做过消息推送,且自建消息推送平台代价太高,而且稳不稳定谁也不敢打包票,于是就选择了当时较...原创 2020-01-15 19:04:53 · 4640 阅读 · 0 评论 -
X-Library系列Android应用框架详解
X-Library系列详解自2017年初开始,我就致力于Android应用框架的研究,到2018年开始在Github上陆续开源系列作品,再到2019年收获我的第一个star过千的项目,期间我付出了很多,失去了很多,同时也获得了很多。前言为了能够让更多的人了解到我的开源项目,我也是使出了浑身解数,写了不少文章和文档来提高项目的曝光率,不过在这期间我也发现了不少问题:读者的水平参差不齐,以往...原创 2019-10-19 16:24:10 · 2684 阅读 · 2 评论 -
手把手教你使用XUI的正确姿势
俗话说,代码是最好的老师,阅读源码是一个非常好的习惯。使用说明文档再仔细写,也会有遗漏不足的地方,因此我鼓励大家再使用XUI的适合,结合演示Demo的代码进行开发,这样比一点一点翻文档有效的多!由于XUI是一个Android原生UI库,它不像WebUI库那样,可以很方便地在浏览器中直接看到代码和代码实时的运行效果,因此我才详细编写了XUI的演示Demo程序,大家可以下载或者自己运行(建议)X...原创 2019-07-03 01:13:26 · 11491 阅读 · 0 评论 -
XUpdate 整套的Android全量版本更新解决方案
XUpdate是一套基于Android的全量版本更新整体解决方案。他除了提供了Android SDK外,还附带了Spring Boot搭建的后台服务以及Vue.js编写的后台管理界面。为什么选择XUpdate使用简单,只需一行代码即可完成版本更新功能。功能强大,兼容Android6.0、7.0、8.0,支持静默更新和自动更新,支持国际化。扩展性强,可自定义请求API接口、提...原创 2019-04-27 22:17:18 · 4314 阅读 · 3 评论 -
手把手教你使用ProtoBuf,通过gRPC服务在Android上进行网络请求
ProtoBuf-gRPC-Android教你如何使用ProtoBuf,通过gRPC服务在android上进行网络请求。如果你对此感兴趣,那么请点击项目地址,一睹为快把!简介ProtoBufgoogle公司发布的一套开源编码规则,基于二进制流的序列化传输,可以转换成多种编程语言,几乎涵盖了市面上所有的主流编程语言,是目前公认的非常高效的序列化技术。ProtoBuf的Github主页...原创 2019-03-24 18:53:13 · 1786 阅读 · 0 评论 -
XUI 一个简洁而优雅的Android原生UI框架,解放你的双手!
XUI 一个简洁而又优雅的Android原生UI框架,解放你的双手!还不赶紧点击使用说明文档,体验一下吧!涵盖绝大部分的UI组件:TextView、Button、EditText、ImageView、Spinner、Picker、Dialog、PopupWindow、ProgressBar、LoadingView、StateLayout、FlowLayout、Switch、Action...原创 2019-01-16 14:33:26 · 58921 阅读 · 18 评论 -
XTCP 一个便捷的TCP消息包拼装和解析框架
XTCP 一个便捷的TCP消息包拼装和解析框架关于我 特征简单通过@Protocol和@ProtocolField的配置,即可让实体对象拥有自动转化为TCP传输的byte数据和自动byte数据解析。支持byte、short、int、long、byte[]、short[]、int[]、long[]、String等常用基础类型,支持类型的拓展支持大端和小端两种存储方式...原创 2018-12-17 16:28:08 · 3793 阅读 · 0 评论 -
XFloatView 一个简易的悬浮窗实现方案
XFloatView 一个简易的悬浮窗实现方案关于我 特征支持自定义布局的悬浮窗。支持自定义拖动事件、点击事件。支持悬浮窗自动吸附效果。支持初始化悬浮窗的位置。支持悬浮窗翻转吸附。1、演示(请star支持)1.1、Demo演示动画1.2、Demo下载2、如何使用目前支持主流开发工具AndroidStudio的使用,直接配置buil...原创 2018-11-27 15:25:59 · 2081 阅读 · 0 评论 -
手把手教你使用Tinker Platform进行热修复补丁管理
使用Tinker Platform进行热修复补丁管理这是手把手教你使用腾讯的热修复框架-Tinker的姊妹篇,它主要讲述了如何接入Tinker以及Tinker的基本使用,不熟悉的可以点击了解一下。项目地址什么是 TinkerPatch 平台?Tinker 需要使用者有一个后台可以下发和管理补丁包,并且需要处理传输安全等部署工作,TinkerPatch 平台帮你做了这些工作,提供了补丁后...原创 2018-10-26 15:18:36 · 1761 阅读 · 0 评论 -
XIPC 一个Android通用的IPC(进程通信)框架
XIPC 一个Android通用的IPC(进程通信)框架。该项目主要是模仿饿了么开源项目Hermes的设计进行的自我理解改写。关于我 演示(请star支持)apk下载特征支持自定义服务接口实现进程通信,无需定义AIDL接口,所有IPC通信就像调用本地函数一样简单。支持自定义接口服务(服务发现)、获取单例和获取工具类方法。支持进程通信的接口回调。支持...原创 2018-09-24 15:43:29 · 1770 阅读 · 0 评论 -
手把手教你使用腾讯的热修复框架-Tinker
TinkerTest演示如何使用腾讯的热修复框架-Tinker项目地址Tinker热更新演示(请star支持)演示demo下载Tinker简介 Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。相关链接...原创 2018-08-11 15:20:53 · 17462 阅读 · 4 评论 -
XHttp2 一个功能强悍的网络请求库,使用RxJava2 + Retrofit2 + OKHttp进行组装
XHttp2 一个功能强悍的网络请求库,使用RxJava2 + Retrofit2 + OKHttp组合进行封装。关于我 特征支持默认、全局、局部三个层次的配置功能。支持动态配置和自定义底层框架Okhttpclient、Retrofit.加入基础ApiService,减少Api冗余。支持多种方式访问网络GET、POST、PUT、DELETE等请求协议。...原创 2018-08-09 02:30:03 · 7555 阅读 · 4 评论 -
XUpdate 一个轻量级、高可用性的Android版本更新框架
XUpdate 一个轻量级、高可用性的版本更新框架关于我 特点支持post和get两种版本检查方式,支持自定义网络请求。支持设置只在wifi下进行版本更新。支持静默下载、自动版本更新。提供界面友好的版本更新提示弹窗,可自定义其主题样式。支持自定义版本更新检查器、版本更新解析器、版本更新提示器、版本更新下载器、版本更新安装、出错处理。支持MD5文件校验、...原创 2018-07-13 10:08:46 · 18596 阅读 · 26 评论 -
XVideo 一个能自动进行压缩的小视频录制库
XVideo 一个能自动进行压缩的视频录制库关于我 特征支持自定义小视频录制时的视频质量。支持自定义视频录制的界面。支持自定义最大录制时长和最小录制时长。支持自定义属性的视频压缩。演示(请star支持)添加Gradle依赖1.在项目根目录的 build.gradle 的 repositories 添加:allproject...原创 2018-06-03 21:37:39 · 52113 阅读 · 2 评论 -
XRouter 一个轻量级的Android路由框架,基于ARouter上进行改良,优化Fragment的使用,可结合XPage使用
XRouter 一个轻量级的Android路由框架,基于ARouter上进行改良,优化Fragment的使用,可结合XPage使用。关于我 特征 由于是借鉴了ARouter,拥有ARouer所有特征,并在此基础上加入了Fragment的路由。支持直接解析标准URL进行跳转,并自动注入参数到目标页面中支持多模块工程使用支持添加多个拦截器,自定义拦...原创 2018-05-23 01:03:04 · 7411 阅读 · 1 评论 -
XLog 一个简易的日志打印框架
XLog 一个简易的日志打印框架(支持打印策略自定义,默认提供2种策略:logcat打印和磁盘打印)关于我 特点支持自定义日志格式策略IFormatStrategy和打印策略ILogStrategy。提供默认的两种日志打印方式:logcat(PrettyFormatStrategy)和磁盘打印(PrettyFormatStrategy)。兼容androi...原创 2018-05-14 13:18:26 · 2589 阅读 · 0 评论 -
XOrmlite 一个方便实用的OrmLite数据库框架,支持一键集成
XOrmlite 一个方便实用的OrmLite数据库框架,支持一键集成。关于我 特征支持通过@DataBase进行数据库配置。支持自动生成数据库管理仓库DataBaseRepository。支持内部存储和外部存储两种数据库。支持自定义数据库存储位置。支持自定义数据库打开、升级以及降级的接口。支持事务操作、回滚等。提供了常用的数据库操作API。...原创 2018-05-10 23:19:12 · 1859 阅读 · 2 评论 -
XQRCode 一个非常方便实用的二维码扫描、解析、生成库
XQRCode 一个非常方便实用的二维码扫描、解析、生成库关于我 特点支持快速集成条形码、二维码扫描功能。支持自定义扫描界面。支持生成带图标的二维码。支持生成带背景图片的复杂二维码。支持二维码解析功能1、演示(请star支持)2、如何使用目前支持主流开发工具AndroidStudio的使用,直接配置build.gradle,...原创 2018-05-07 01:43:47 · 7147 阅读 · 1 评论