移动开发

安卓(Android 12) 动态权限申请

本篇将会封装一个工具,解决安卓权限申请的问题 最终效果: 授权的情况 agree.gif 对应的日志 image.png 不授权的情况 refect.gif 对应的日志 image.png 步骤一 在安卓工程目录下 app ---> src ---> main ---> AndroidManifest.xml ,在

iOS离屏渲染

界面渲染 UIView继承自UIResponder,可以处理系统传递过来的事件,如:UIApplication、UIViewController、UIView,以及所有从UIView派生出来的UIKit类。每个UIView内部都有一个CALayer提供内容的绘制和显示,并且作为内部RootLayer的代理视图。 下图为CALayer的结构图: CALayer.png RunLoop有

React18新特性介绍&&升级指南

react历次版本迭代主要想解决的是两类导致网页卡顿的问题,分别是cpu密集型任务和io密集型任务导致的卡顿问题,react18提出的并发特性(Concurrent Rendering)就是为了解决上述问题。 Concurrent Rendering 什么是concurrent 简单体验一下 concurrent不算是个新鲜概念,react很早之前就开始为其铺路,早在v16/v17就引入了fib

uniapp人脸识别解决方案

APP端: 因为APP端无法使用uni的camera组件,最开始考虑使用内嵌webview的方式,通过原生dom调用video渲染画面然后通过canvas截图。但是此方案兼容性在ios几乎为0,如果app只考虑安卓端的话可以采用此方案。后面又想用live-pusher组件来实现,但是发现快照api好像需要真实流地址才能截取图像。因为种种原因,也是安卓ios双端兼容性不佳。最终决定采用5+api实现

【Android 架构之 MVI 雏形】响应式编程 + 单向数据流 + 唯一可信数据源

这是 MVI 架构的第一篇,系列文章目录如下: 【Android 架构之 MVI 雏形】响应式编程 + 单向数据流 + 唯一可信数据源 关于Android 架构 的MVI 初级体 【Android 架构之 MVI 完全体】 就MVVM 来说关于PartialChange & Reducer [Android 架构之 MVI究极体]数据区分状态和事件,解决粘性数据 引子 MVI 是Mod

ActivityThread 中一些常用的知识点记录

ActivityThread: 它管理 应用程序进程 中主线程的执行,调度和执行Activity,广播, 以及ActivityManager 请求的其他操作。 简单的说,可以通过这个类,获取到当前应用的一些信息 TIPS: (1).可以使用以下的开源代码网站查看源码

22. 多态

Java三大特性有封装、继承、多态。 前面我们已经学过了封装和继承,今天学习多态,如需前面内容的可自行查看。 1、多态的引入 多态是继封装、继承之后,面向对象的第三大特性 生活中,比如交通工具的种类可以分为飞机、汽车、轮船 再比如交通工具的运行方式飞机运行方式是飞在天上、汽车是在马路上开、轮船是在海上行驶 可见,同一行为,通过不同的事物,可以体现出来的不同的形态 多态,描述的就是这样的状态。 2、

Swift 5.7 新特性

Swift 5.7 内置于 Xcode 14,重点增加了如下几个与实际开发相关的新特性。 简化的if let/guard let语法 let name: String? = "zhangsan" print(name) // Optional("zhangsan") // Swift5.7之前 // if let if let name = name { print(name) // z

野指针检测

什么是野指针 维基百科里给的定义: 当所指向的对象被释放或者收回,但是对该指针没有作任何的修改,以至于该指针仍旧指向已经回收的内存地址,此情况下该指针便称迷途指针(即通常说的野指针)。 若操作系统将这部分已经释放的内存重新分配给另外一个进程,而原来的程序重新引用现在的迷途指针,则将产生无法预料的后果。 因为此时迷途指针所指向的内存现在包含的已经完全是不同的数据。 野指针分类: 引用腾讯bugly团

模拟引力

书名:代码本色:用编程模拟自然系统 作者:Daniel Shiffman 译者:周晗彬 ISBN:978-7-115-36947-5 目录 2.9 引力 4、在Sketch中模拟引力 在示例代码2-1中,我们创建了一个简单的Mover对象,这个对象拥有位置、速度、加速度和applyForce()函数。 我们要继续用这个Mover类模拟引力,在Sketch中创建两个对象: 一个Mover对象;