移动开发

Block源码解析

block源码 源码 如图所示一个正常block底层被编译成了 __main_block_impl_0结构体,该结构体里包括 _block_impl里面存储的是block的调用信息,__main_block_desc_0表示的是block内存描述。 剩下的属性即为block里引用到的属性 typedef void (^Block)(void); Block block; {

【Android】Room数据库的基本使用

【Android】Room数据库的基本使用 一、什么是Room 1.1 Room简介Room是Android Jetpack组件库中的一部分,对SQLite进行了封装,简化了对SQLite数据库的操作,让开发者使用面向对象的方式(通过Java/Kotlin)来操作SQLite数据库,从而避免了编写大量繁琐的SQL

【Android】Android Studio打包APK、精简APK大小与规范处理详解

目录引言一、应用打包1.1 导出APK安装包1.2 制作App图标 1.3 给APK瘦身  1.3.1 去除冗余功能 1.3.2 精简无用资源 1.3.3 压缩图片大小 二、规范处理 2.1 版本设置2.2 发布模式 结语引言Android Studio中运行程序默认都是debug版本,而想要在别人手机上安装应用,就需要把App打包成APK文件(relea

axios之cancelToken原理及使用

在真实项目中,当路由已经跳转,而上一页的请求还在pending状态,如果数据量小还好,数据量大时,跳到新页面,旧的请求依旧没有停止,这将会十分损耗性能,这时我们应该先取消掉之前还没有获得相应的请求,再跳转页面。 在真实项目中,当路由已经跳转,而上一页的请求还在pending状态,如果数据量小还好,数据量大时,跳到新页面,旧的请求依旧没有停止,这将会十分损耗性能,这时我们应该先取消掉之前还没有获

Flutter 三方库 todo 的鸿蒙化适配指南 - 掌控任务管理资产、精密待办治理实战、鸿蒙级精密工程专家

欢迎加入开源鸿蒙跨平台社区:#Flutter 三方库 todo 的鸿蒙化适配指南 - 掌控任务管理资产、精密待办治理实战、鸿蒙级精密工程专家在鸿蒙跨平台应用执行高级任务管理与多维待办逻辑资产指控(如构建一个支持全场景秒级交互的鸿蒙大型全量任务中枢、处理海量 Task Registry Payloads 的语义认领或是实现一个具备极致指控能力的资产管理后台工程审计中心&#

iOS 三种画板实现方式

UIBezierPath,Quartz2D,OpenGLES 1. UIBezierPath 1 UIBezierPath 使用UIBezierPath可以创建基于矢量的路径,此类是Core Graphics框架关于路径的封装。使用此类可以定义简单的形状,如椭圆、矩形或者有多个直线和曲线段组成的形状等。 UIBezierPath是CGPathRef数据类型的封装。如果是基于矢量形状的路

js 箭头函数和普通函数的区别和this指向看这篇就够了

this指向问题是个老问题了,网上的教程很多都是相互copy的,让萌新一脸蒙,这里简单总结下,保证一次性搞懂。 首先,这里有个问题是js分严格模式和非严格模式,严格模式和非严格模式下this指向稍微有点区别,主要就是全局作用域中普通函数中的this指向问题,严格模式下是指向undefined的,非严格模式下是指向window。 image.png 现在一般用的都是严格模式,比如vu

macOS Tahoe 26 界面乱象:圆角不统一引发的视觉危机与适配指南

macOS Tahoe 26界面乱象:圆角不统一引发的视觉危机与适配指南在操作系统迭代的进程中,细节往往是决定用户体验优劣的关键。2025年推出的macOS Tahoe 26,本应凭借全新的设计理念为用户带来更优质的使用感受,然而,其在窗口圆角设计上的混乱表现,却让众多追求视觉一致性的细节控陷入了困扰。本文将深入