Kotlin/Native
最近 KMP 或者说 KMM 在移动端挺火,我非常好奇它是如何跨端的
看了一下官方文档,只知道是通过 LLVM 把 Kotlin 转为 IR 再转为目标平台二进制。这部分我目前还没去分析,因为 LLVM 相关的知识我实在知之甚少,后面也会去补足
最近 KMP 或者说 KMM 在移动端挺火,我非常好奇它是如何跨端的
看了一下官方文档,只知道是通过 LLVM 把 Kotlin 转为 IR 再转为目标平台二进制。这部分我目前还没去分析,因为 LLVM 相关的知识我实在知之甚少,后面也会去补足
为了公司内部写一篇软文,所以这篇文章重写了一下~~
今天给大家分享一种 arm64 平台下栈回溯的方式 —— fp(frame pointer) 回溯,同时会介绍一些基础概念和实现原理
首先,我们需要知道栈回溯是做什么的?
其实就是用于获取当前 thread 的调用堆栈的
最近不知道为什么,我司又开始缩减包体积了,在这个 app 都 100-200M 的年代,在这个 5G 遥遥领先的年代,不知道卷个啥?
那问题不大,既然有需求,我们照做便是
Android 包体积由多方面构成,这个我之前的文章里也有说过,所以包体积缩减的手段有很多,这个就不一一介绍了
前段时间看了下 Elk(十分简单的 JS VM,其实算是个 parser + interpreter 吧)的代码,学到了一些计算机基础的东西。
比如,我写代码这么久,甚至不知道 double 的内存结构和 7FF 代表什么。比如,因为没有系统学习过编译原理等等,没有 opcode 相关的概念,如何设计 interpreter(又想回去读书了···)。
一直想学习一下如何写一个 VM,但是苦于各种成熟 VM 代码量庞大,阅读困难,无从学起
即使 lua 的古老版本的代码,对于我这种没有任何编译背景和语言设计背景的人来说,很难理解源码在写什么、在处理什么问题
所谓 Android GC/JIT 抑制
,即是将 Android GC(部分)/JIT Task 处理任务的过程(Run 方法) hook,强行 sleep 一段时间。因为 JIT 和 GC 目前均为单线程执行,所以没有并发问题,也刚好阻塞后续任务。
最近遇到了一个有意思的问题,为了让首页更快的展示出来,将首页的请求提前到了 Application onCreate 阶段。但是带来了一个问题,请求的频次大大增加了,且对于后端来说,首页的请求还是比较消耗资源的。
最近帮 RN 业务方查内存泄漏问题,发现了 fbjni 这个库挺有意思的
正好借助 RN 源码例子,讲述一下 fbjni 是如何控制 java 和 c++ 层对象的生命周期的
下面会贴一些 RN 中的源码 和 fbjni 的源码,不用关心 RN 源码中的对象是做什么的,我们这里只关注对象如何被创建和如何被释放的
最近发现线上有一些 used recycled bitmap crash
似乎是问题一直存在,但是近期版本增多了,不过不是我负责,也不好多说什么
其实我觉得主要是造轮子的对于轮子本身理解不够深刻,导致的问题
今天遇到了一个 jni pending exception,好在之前也遇到过,所以我当即就知道肯定是我这行 jni 调用之前就已经出现了 java exception
但是为什么会走到我的代码中?这就是个巧合的事情了