移动开发

Android卸载系统软件 免Root 禁用系统更新

步骤 1,手机打开开发者选项,连接电脑允许adb调试权限; 2,打开终端,命令行执行adb devices 查看设备连接情况; image.png 3,卸载系统应用,这一步前提是你知道系统应用的包名(有多种方法获取,文末有介绍); adb shell pm uninstall --user 0 包名 例如卸载手机系统更新(此为oppo或realme手机系统,如果不想收到系统更

Flutter基础知识

0、Dart是值传递还是引用传递? Dart是值传递。每次调用函数,传递过去的都是对象的内存地址,不是对象的复制。 知识点扩展:Swift的struct是值类型,class是引用类型;意思是:声明一个新的变量指向这个结构体,改变某个属性,原本的结构体属性不会发生变化;而类会随着改变 1、Flutter的核心树 Widget: 1、使用配置和状态,描述view的样子 2、当一个Widget发生改变时

安卓(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