移动开发

Spring的3级缓存和循环引用的理解

此处是我自己的一个理解,防止以后忘记,如若那个地方理解不对,欢迎指出。 一、背景 在我们写代码的过程中一般会使用 @Autowired 来注入另外的一个对象,但有些时候发生了循环依赖,但是我们的代码没有报错,这个是什么原因呢? 二、前置知识 1、考虑循环依赖的类型 此处我们考虑 单例 + @Autowired 的循环依赖,不考虑使用构造器注入或原型作用域的Bean的注入。 2、代理对象何时创建

Fragment版本变化

FragmentContainerView FragmentContainerView继承自FrameLayout, 可以动态添加FrameLayout 支持android:name 和 android: tag属性。 <androidx.fragment.app.FragmentContainerView xmlns:android="

iOS重学之启动优化(三)- Clang插桩

写在前面 在 上一篇文章iOS重学之启动优化(二)- 二进制重排 最后我们提出了一个问题:如何精确获取应用启动时刻的符号调用顺序,本篇文章我们就来详细介绍如何通过Clang插桩来对所有的符号进行100%的Hook。 Clang插桩 LLVM内置了一个简单的代码覆盖率检测(SanitizerCoverage)。它在函数级、基本块级和边缘级插入对用户定义函数的调用,并提供了这些回调的默认实现。在认为启

基于Telegram二次开发 --- MTProtoKit 架构

MTProto 是 Telegram 的核心协议,旨在支持多种传输协议;当前版本的 Telegram-iOS 仅支持 TCP 传输;HTTP 传输已于 2018 年删除;VoIP 模块 libtgvoip 支持 UDP 和 TCP 传输。 MTProtoKit 源码仓库 MTProto 官方文档 Telegram-iOS 在 Network 内置了用于冷启动的种子地址: let seedAdd

手写Android-Handler

Handler机制,是Android系统的消息队列,一般用于处理主线程的页面绘制等消息处理。 前言 Handler除了Java层外,还有Native的部分,但我能力有限,只能仿写一个Java层的Handler,并且支持延时消息。项目地址:MiniHandler 注:由于消息机制需要使用一个while死循环来让线程不能结束,所以直接将MiniHandler在Android主线程中使用会卡住主线程,所

在UIKit中使用SwiftUI(SwiftUI和UIKit混合开发)

在UIKit中使用SwiftUI,需要使用UIHostingController对SwiftUI进行包装,返回的是UIViewController类型。 但是UIHostingController是SwiftUI的类,在OC中是不可以直接使用的,所以我们可以先创建一个Swift管理类,用来返回被包装的SwiftUI的控制器是UIViewController类型,可以直接在OC代码中使用。 如果还不

Android MVP开发模式与Rxjava+Retrofit结合的使用(进阶版)

以前根据参考各路大神的博客,以及自己对mvp的理解,早早就写了这种不成熟的结合模式(旧版),历时半年,他们终于进化了! 一、基础介绍 1、什么是mvp mvp是android开发架构之一,MVP每个字母分别代表Model、View和Presenter。 ①model负责处理网络数据的处理 ②presenter是model和view的桥梁,负责与两端的通信 ③view是视图层 2、为什么有mvp

ggplot2的aes和aes_string

提取umap坐标和metadata信息 reduction_loci <- as.data.frame(Embeddings(pbmc, reduction="umap")) reduction_loci <- cbind(reduction_loci, pbmc[[]]) 常规使用aes的画法: p <-ggplot(reduction_loci, aes(x=UMAP_1,

iOS横竖屏切换

基础概念 UIDeviceOrientation UIDeviceOrientation,表示设备朝向,可以通过[UIDevice currentDevice] orientation]获取,取值有: typedef NS_ENUM(NSInteger, UIDeviceOrientation) { UIDeviceOrientationUnknown, // 未知

Android-推荐一个沉浸式状态栏开源库(ImmersionBar )

图片来源网络,入侵必删 在日常的Android开发中,我们肯定遇到沉浸式的开发需求。在大多数项目当中,都会使用ImmersionBar开源库适配。这篇博客分享一下ImmersionBar相关的知识,希望对看文章的小伙伴有所帮助。 ImmersionBar依赖 mavenCentral版本: // 基础依赖包,必须要依赖 implementation 'com.geyifeng.imme