移动开发

Android 架构之 MVI 完全体 | 重新审视 MVVM 之殇,PartialChange & Reducer 来拯救

这是 MVI 架构的第三篇,系列文章目录如下: Android 架构之 MVI 雏形 | 响应式编程 + 单向数据流 + 唯一可信数据源 Android 架构之 MVI 初级体 | Flow 替换 LiveData 重构数据链路 Android 架构之 MVI 完全体 | 重新审视 MVVM 之殇,PartialChange & Reducer 来拯救 Android 架构之 MVI 究

M系Mac原生运行《原神》保姆级教程!手把手教你零门槛畅玩手游!

Apple Silicon芯片的进化正在重塑M系列Mac的跨平台能力。通过开源工具PlayCover,开发者社区成功突破系统限制,让《原神 》等热门手游在M1/M2/M3/M4芯片设备上流畅运行。 本文将提供从软件下载到自动安装的全流程解决方案,助你充分释放Mac设备的娱乐潜能。 下载PlayCover打开浏览器,访问PlayCove

Lifecycle:生命周期感知型组件的基础 —— Jetpack 系列(1)

请点赞,你的点赞对我意义重大,满足下我的虚荣心。 🔥 Hi,我是小彭。本文已收录到 GitHub · Android-NoteBook 中。这里有 Android 进阶成长知识体系,有志同道合的朋友,跟我一起成长。 前言 生命周期是 Activity 的核心特性之一,也是 Android 视图开发无法规避的重要问题。 为了更加健壮地处理生命周期问题,Google 的解决方案是将

对 Android 应用换肤方案的总结

虽然现在已经有很多不错的换肤方案,但是这些方案或多或少都存在自己的问题。在这篇文章中,我将对 Android 现有的一些动态换肤方案进行梳理,对其底层实现原理进行分析,然后对开发一个新的换肤方案的可能性进行总结。 1、通过自定义 style 换肤 1.1 方案的基本原理 这种方案是我之前用得比较多的一种方案。我在使用的时候也做了很多的调整。开源版本可以参考 Colorful 这个库. [图片上传失

MySQL基本查询

目录Create插入替换Retrieve(读取)select(确定列)​where条件(确定行)order by语句limit(分页)Update(更新)Delete(删除)截断表去重表数据聚合统计聚合函数group by句子的使用Create插入 语法: INSE

【Android Studio】如何卸载干净(详细步骤)

Android SDK(软件开发工具包)是Android应用程序开发的重要工具,当你不再需要它、准备重新安装或迁移到其他系统时,完全卸载它是非常重要的步骤。因为一般电脑卸载 Android Studio 时容易落下一堆配置文件没删,卸载不干净导致无用文件占用空间或者影响其他版本软件的安装使用。总之,为什么需要完全卸

ThreadLocal的简单理解

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

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

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

用继承实现粒子类

书名:代码本色:用编程模拟自然系统 作者:Daniel Shiffman 译者:周晗彬 ISBN:978-7-115-36947-5 目录 4.8 用继承实现粒子类   在粒子类上实践继承的用法。 1、简单的Particle类 class Particle { PVector position; PVector velocity; PVector acceleration;