1.Android 面试知识点记录——Rxjava与协程
2.flowable会签的源码减签操作的注意事项
3.springboot+vue+elementui+flowable+èªå®ä¹è¡¨å
4.Flowable 介绍
5.bpmn-js 交流群附属资料(文档及开源库)
Android 面试知识点记录——Rxjava与协程
作者:浪人笔记
RxJava协程与操作符
在RxJava中,map操作符实现简单,改造它在原有Observable的源码基础上添加MapObservable观察者,将变换函数作为参数传递。改造MapObservable的源码onNext方法接收元素,传递给变换函数进行变换,改造hdfs put 源码结果作为新元素发射。源码
而flatMap操作符实现相对复杂。改造它在原有Observable上添加FlatMapObservable观察者,源码并将变换函数作为参数传递。改造FlatMapObservable的源码onNext方法接收元素,传递给变换函数得到新Observable,改造注册到FlatMapSubscriber中等待下一次数据。源码lol血液源码数据处理完成后,改造调用FlatMapSubscriber的源码onComplete方法,合并所有得到的Observable成新Observable发射。
RxJava1.0与2.0区别
RxJava2.0在异常处理、背压支持、线程调度和性能等方面改进和提升。
背压概念与解决方案
背压是指数据产生速度大于消费速度,导致内存溢出等问题。RxJava1.x没有背压支持,使用onBackpressureBuffer、onBackpressureDrop缓解,而RxJava2.0引入Flowable支持背压,iapp圆弧源码提供更多背压控制策略。
Flowable类型支持背压,通过onBackpressureBuffer、onBackpressureDrop、onBackpressureLatest等方法处理背压问题。Flowable方式类似Observable,使用时需指定背压策略。
subscribeOn与observeOn
subscribeOn只影响第一次指定的线程,后续操作不影响。subscribeOn理解为管道入口,observeOn理解为出口,数据处理后出口策略可变。抽奖源码算法
RxJava数据流回主线程
使用observeOn(AndroidSchedulers.mainThread()),内部实现为Handler(Looper.getMainLooper())。
协程、进程、线程、协程区别
Kotlin协程基于挂起函数实现,不依赖操作系统和编译器,实现协程效果。
处理回调地狱与协程
协程通过挂起函数减少回调嵌套,提高代码可读性。使用withContext指定协程执行上下文,避免主线程阻塞。召唤悟空源码
开发中选择调度器
通常选择主线程、IO密集型和CPU密集型调度器,对应Kotlin协程中的上下文。
Android核心知识点记录
包含性能优化、车载技术、Framework底层原理、音视频开发、Jetpack全家桶、Kotlin、Gradle、OkHttp源码解析、Flutter等主题,涵盖Android开发者必备知识。
Android面试题集锦
整理多年面试题集,包括Android基础知识、性能优化、音视频、Jetpack全家桶、Kotlin、Gradle、OkHttp源码解析等内容,为开发者提供面试准备。
Android音视频面试题集
聚焦于Android音视频开发的关键问题,帮助开发者深入理解音视频技术。
flowable会签的减签操作的注意事项
通过实验,针对deleteMultiInstanceExecution方法进行研究。源码描述中指出,主要关注第二个参数executionIsCompleted的作用,即标记是否执行完成。实际操作中,此方法对流程流转的明显作用并不显著。
以UserTask和SubProcess为测试对象,结果发现,无论在串行或并行流程中,删除最后一个元素时,设置参数为true或false,均会遇到"Could not execute inner activity behavior of multi instance behavior"的错误。
在并行流程中,无论设置参数为true还是false,流程都能够执行,但并未推进。
springboot+vue+elementui+flowable+èªå®ä¹è¡¨å
æºç
springbootï¼ /post/...
2. MiyueFE - bpmn.js 中文进阶专栏
需要了解部分源码,文章稍微枯燥,内容丰富
juejin.cn/column/...
3. 选型建议(logicflow,bpmn-js)
具有少量个人倾向
juejin.cn/post/...
4. 运维咖啡吧
稍微基础,有部分API说明
blog.ops-coffee.cn/bpmn
5. YuJianghao(GitHub)
刚刚开始的源码解析
yujianghao.github.io/bp...
6. 官方论坛(英文,支持 GitHub 登录和订阅)
forum.bpmn.io/
二、bpmn-js 改造开源案例
仅编辑器部分
1. 官方案例
github.com/bpmn-io/bpmn...
demo.bpmn.io/s/start
2. MiyueFE
两个开源版本,有细节不够完美,但已经有多个团队和公司基于此项目进行二次开发,例如若依、橙单等
(Vue2 + js):github.com/miyuesc/bpmn...
(Vue3 + ts):github.com/moon-studio/...
三、仿钉钉风格流程编辑器开源案例
1. 蔡晓峰(Vue3 完整版):支持侧边栏配置与流程编辑
钉钉风格,配置较丰富,可结合后端项目进行 json 通信与 xml 转换
gitee.com/cai_xiao_feng...
2. 蔡晓峰(仿钉钉JSON转XML,Java端)
gitee.com/cai_xiao_feng...
3. MiyueFE(Vue3 基础示例):最基础的流程配置
没有实现侧边栏,需要自己实现;通过链表结构实现顺序固定
miyuesc.github.io/usefu...
四、admin system 系统开源案例
包含完整的后台管理系统模板
1. 蒜蓉辣椒酱(Vue3 + ts + flowable)
gitee.com/L1yp/van
2. cto-kevin(Vue3 + ts + camunda)
gitee.com/ctokevin/vue-...
3. 芋道源码(若依Pro)(Vue3/2 + ts/js + flowable)
gitee.com/zhijiantianya...
五、bpmn-js 开源工具仓库
1. 自动布局(官方,不支持泳道等)
github.com/bpmn-io/bpmn...
2. 自动布局(开发者修复案例,不支持泳道等)
github.com/marstamm/bpm...
3. 适配缩放的自定义配置网格背景(MiyueFE)
github.com/miyuesc/diag...
4. 支持官方 camunda 与 zeebe 引擎的属性面板汉化(MiyueFE)
GitHub - miyuesc/bpmn-js-in-zh: Chinese internationalization resources for bpmn-js
5. 更美观的上下文菜单(MiyueFE)
github.com/miyuesc/diag...
六、闭源项目
1. MiyueFE (Vue3 + ts) 多个自定义功能实现
实现了垂直泳道、多种自定义、activiti、flowable、camunda 三种流程引擎的属性配置;好东西,就是没开源。。。
vue-bpmn-process-designer.vercel.app
七、其他相关项目
1. didi/logic-flow - 专注于业务自定义的流程图编辑框架
github.com/didi/LogicFl...
2. didi/epage - 一款基于schema的可视化页面配置工具
github.com/didi/epage
3. FormMaking - 基于Vue的可视化表单设计器
github.com/GavinZhulei/...