移动开发

android hilt 坑位

之前和现在使用 之前 buildscript { ... dependencies { ... classpath 'com.google.dagger:hilt-android-gradle-plugin:2.28-alpha' } } ... apply plugin: 'kotlin-kapt' apply plugin: 'dagg

iOS底层原理笔记 - Runtime结构

Runtime结构 OC是一门动态性比较强的语言,跟C、C++语言有着很大不同 OC的动态性是由Runtime API来支撑的 Runtime API提供的接口基本都是C语言的,源码由C/C++/汇编语言编写 要想学习runtime,首先要了解它底层的一些常用数据结构,比如isa指针 在arm64之前,isa就是一个普通的指针,存储着Class、Meta-Class对象的内存地址 在arm64

Apple M2 macOS Flutter环境搭建记录

1.安装 Rosetta 2 环境 sudo softwareupdate --install-rosetta --agree-to-license 2.下载Flutter SDK flutter_macos_arm64_3.7.7-stable.zip 当然你也可以在这个文档中找到最新的安装包SDK,下载arm64版本即可。 当然,你也可以使用克隆的方式下载SDK。具体,根据个人喜好。 3.添

44 道 JS 难题,做对一半就是高手

1. parseInt 遇上 map ["1", "2", "3"].map(parseInt) // A. ["1", "2", "3"] // B. [1, 2, 3] // C. [0, 1, 2] // D. other 答案是D。实际上返回的结果是 [1, NaN, NaN] ,因为 parseInt 函数只需要两个参数 parseInt(value, radix) ,而 map 的

Mac 清理缓存,提高内存空间

步骤 1.打开【访达】 2.菜单栏第五个功能【前往】,点击【个人】 3.【command + shift + J】显示所有文件,打开【资源库】 4.删除【Containers】和【Caches】文件 Containers 文件夹:用于存储每个应用程序的沙盒数据,确保应用程序之间的数据隔离。删除这些文件可能导致应用无法正常工

RecyclerView缓存复用原理

RecyclerView缓存复用机制 来到RecyclerView的Adapter代码中: @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(c

iOS使用Aspects做简单热修复原理

我们都知道苹果对 Hotfix 抓得比较严,强大好用的 JSPatch 也成为了过去式。但即使测试地再细致,也难保线上 App 不出问题,小问题还能忍忍,大问题就得重新走发布流程,然后等待审核通过,等待用户升级,周期长且麻烦。如果有一种方式相对比较安全,不需要 JSPatch 那么完善,但也足够应付一般场景,使用起来还比较轻量就好了,这也是本文要探讨的主题。 要达到这个目的,Native 层只要透