移动开发

iOS底层原理笔记 - Runtime结构

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

android hilt 坑位

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

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 的

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 层只要透

【Android】基于udp通信的智能家居移动应用开发

每文一诗  💪🏼        男儿不展风云志,空负天生八尺躯 ——《警世通言·卷四十》        译文:作为一个有学识有理想的男子,如果不施展自己的志向,成就一番事业,就枉费生为一个人。背景        本次移动应用的开发主要目的是为智能家居开发一个运行在手机的客户端,同时也