移动开发

Mac上的MKV视频播放神器:MPlayerX全面支持

本文还有配套的精品资源,点击获取 简介:在Mac OS中,由于原生支持的视频格式有限,许多用户在尝试播放MKV等非标准格式时会遇到问题。本文介绍了一款名为MPlayerX的媒体播放器,它能完美支持包括MKV在内的多种视频和音频格式。MPlayerX还提供自定义皮肤、字幕同步、硬件加速等高级功能,使用户能够

iOS网络请求依次执行之信号量

首先说明需求点:依次发起请求op1、op2、op3,要求op1成功后再发起op2,若失败,则后续op2、op3不执行,回调失败结果;同理,若op1成功后,发起op2请求失败,则op3不执行,回调失败结果。 最终参考代码:Demo 先看一段网络常见示例: 网上常见示例 从结果上看,满足请求的顺序执行,但是实际使用后,情况变得不一样了: 实际使用结果 从结果日志上看,op2并未

笔记软件Notion宣布转向Native原生开发,Hybrid混合开发不行了吗?

著名的笔记软件Notion宣布其技术栈实现从Hybrid混合模式转向了Native原生开发,再次引发了关于前端开发应该选择原生iso和android开发,还是应该选择React Native、Ionic、Flutter、PhoneGap等混合开发框架的争论。 我参与过原生App的开发,也尝试过Hybrid混合模式的开发,亲身经历来说总结如下: Hybrid的优势: 1

ThreadLocal的简单理解

[TOC] 一、背景 最近有人问我ThreadLocal是如何做到在每个线程中的值都是隔离的,此处写篇文章来简单记录下。 二、ThreadLocal解决的问题 该数据属于该线程Thread自身,别的线程无法对其影响。(需要注意:需要调用ThreadLocal的remove方法) 不存在线程安全问题。(因为ThreadLocal类型的变量只有自身的线程可以访问,所以这点是成立的。) 比如:

Android的ViewModel正确使用姿势?

看了网上很多对于ViewModel的讲解,对比了官方的使用,自觉有点官方译文科普的意思,即使看很多,仍旧没有醍醐灌顶的感觉,于是,深入源码分析后,便想将对于ViewModel的使用以及定位做一些简单的记录,如与编者有不一样的看法,希望在评论区一起讨论。文章旨在抛砖引玉,并无教学之意。 对于ViewModel的官方介绍: ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据。Vi

Vue如何检测数组变化

原理分析: 在数据初始化时调用initData方法,然后通过new Observer对数据进行监测,然后对数据进行判断,如果是数组并且支持原型链,就会执行protoAugment让目标原型链指向arrayMethods,arrayMethods用来改写数组的原型方法。内部会采用函数劫持的方式,当用户调用这些方法(push,pop,shift,unshift,sort,splice,reverse)

3分钟看懂Android Studio下拉框组件

什么是下拉框? 实现步骤:一、布局文件中添加Spinner组件<LinearLayout xmlns:android="#34; android:layout_width="match_parent" android:lay

数据库在跑但你连不上:MariaDB部署+监控+内网穿透的完整方案

前言数据库进程正常运行,监控面板一片绿灯,但当你真正需要连上去查数据的时候,发现自己根本不在那台机器所在的网络里——这种事估计不少运维和后端都遇到过。典型场景是这样的:周末在家休息,突然收到告警说某张表数据异常,需要连到测试环境数据库排查;或者出差路上甲方临时要确认一个配置变更是否生效。打开电脑&#