240 发简信
IP属地:广东
  • 120
    Android init 进程各种 stage 是怎么回事?

    1. 背景 android14-release init 进程的 main 函数的简化版本如下: 2. 各种 stage 说明 这里先给一个结论。如上图所示,各种 stage...

  • 为什么 GCC risc v 的 medlow 只支持低 2G 的代码和全局变量?

    默认情况下面,GCC risc-v 使用的 code model 是 medlow,在这种情况下,编译器生成的代码使用 lui 来构造全局变量的地址。 比如下面这段代码: r...

  • 为什么 xv6-riscv 编译的时候需要 -mcmodel=medany

    xv6-riscv 有这样一行代码: 对应的,Makefile 里有这个: 然后我就不禁要问了,我拿个 main 函数的地址,关这个 cmodel 啥事?网上翻了一圈后,就有...

  • markWord 总共就一个字长,他怎么放得下 JavaThread* 和其他一堆数据?

    字长这里我们指一个指针的 bit 数,在 32 位系统上是 32,64 位系统是 64(而不是 x86 汇编的那个 word,x86 的 word 是 16bit) 查看 j...

  • hotspot 的偏向锁被干掉了?

    简单说,偏向锁 在 jdk15 被设置为 deprecated,17 obsolete,19 则直接移除了;因为对于大部分程序,他并没有很好地起到原先设想的作用。 至于详情,...

  • mac 编译 jdk17

    系统环境:macOS 13.3.1 xcode:14.3;xcode 是必须的,只有 command line tools 搞不了 代码:git@github.com:ope...

  • vfork 这么轻量,能有什么坏心思呢

    起因 这篇文章的起因是某个非常奇怪的 bug,bug 的部分 logcat 日志如下: 已知: log 时间后面的第一个数字是进程号(pid) 第二个数字是打印日志的线程的线...

  • Android ART 虚拟机 - dex 文件格式要旨(下)

    class_def_item、class_data_item dex::TypeIndex 两个字节,所以其后跟着一个 2 bytes 的 padding。这样才是 4 字节...

  • Android ART 虚拟机 - dex 文件格式要旨(上)

    这是个人第一篇写 ART 虚拟机相关的文章,使用的源码是 Android 11(对应 ART 的 android11-release 分支)。决定写这么一些文章,一方面是逼自...

  • ART hook 框架 - YAHFA 源码分析

    一些参考资料 YAHFA 作者写了两篇文章,可以作为参考:YAHFA--ART环境下的Hook框架[http://rk700.github.io/2017/03/30/YAH...

  • Kotlin 协程到底运行在哪个线程里

    与其说协程是一个轻量级线程,我更愿意把它当然一个个待执行/可执行的任务。这样就引申出一个问题——协程是运行在哪个线程上的?这就是本篇文章想要探讨的问题,同时我们也将学习如何让...

  • kotlin 协程上下文那点事

    用线程做类比的话,协程的 context 可以认为是协程的“线程私有变量”,同时这个私有变量是不可变的。也就是说,我们在创建一个协程的时候,他的 context 携带的信息就...

  • Android 源码秘密(1)—— ProcessLifecycleOwner

    尝试过事无巨细一行一行代码分析源码,也试过以感性的方式总结源码;第一种方式总觉得容易把读者绕进去,第二种则有些人看后觉得好像什么也没说。这里我尝试使用第三种方法,回到我们阅读...

  • 120
    Android沉浸式体验适配方案

    什么是沉浸式体验 沉浸式就是要给用户提供完全沉浸的体验,使用户有一种置身于虚拟世界之中的感觉。这种体验在各类游戏中被广泛应用,绝大部分的游戏都会在打开后,使得屏幕被完全被游戏...

  • Java 程序员眼里的 Linux 内核 —— wait_event 源码分析

    看 Linux 的 wait_event 源码时,联想到我们平时经常用得比较多的 wait/notify、double-check 和 volatile,突然意识 wait_...

  • Linux 内核页表的创建

    原文地址 jekton.github.io,未经允许,不得转载。 源码使用 Linux 2.6.24,基于 x86 平台;参考书是《深入理解 LINUX 内核》第三版 内核跟...