无感而发

对于我的朋友们,我总是问什么说什么

以前,我遇到过两个同事,他们的口吻十分相似。他们会问我一些敏感的问题或者技术核心的问题,我基本都是倾囊相授。然而,身份互换以后,我基本得到不任何有用的信息。这两个同事让我开始对别人有所保留(但是几乎也没啥保留···),但是那些无关紧要的、不敏感的东西,似乎也无所谓

KCP 开发

最近,一直在搞 kmp(Kotlin Multiplatform),这个框架出发点倒还可以,可以实现一码多端

但是,路漫漫其修远兮,感觉就是在用 kotlin 写 c

各种提效工具比较落后,文档比较稀少,需要自己去研究(国内大厂:研究 + 魔改 = 自研 = 世界领先)

Android Studio Plugin 开发

背景

最近,在搞 kmp 工程化的一些东西,因为官方不支持 ohos,所以其对应的 android studio plugin 也不支持 ohos

比如:创建一个 module 等等,都不会自动携带 ohos 目录

看了 kuikly 提供了一个 project 模板,但是没有提供 new module 的模板,所以,开始研究有关 new module 的插件开发

Kotlin Native OHOS ASAN 适配

本文主要介绍如何让 kotlin/native 在适配了鸿蒙平台后,开启 asan 功能(kotlin 版本基于 2.0.21)

ASAN 简介

ASAN(Address Sanitizer)是针对 C/C++ 的快速内存错误检测工具,在运行时检测 C/C++ 代码中的多种内存错误

KSP For OHOS NAPI

kotlin/native 适配鸿蒙,除了编译器方面的修改之外,还有比较重要的一部分就是 napi 代码的自动生成了

kotlin/native 和 napi 的关系:

kotlin/native 实际产物就是对应平台二进制,在 ohos 上就是 linux elf
ohos 上层应用使用 arkts 开发,想调用 so 中的方法,有一层类似 jni 的机制,其实就是 nodejs 的 napi 机制
所以,想从 arkts 调用 kotlin/native 的代码,其实就是要自己写一层 napi

Kotlin Native 梳理

最近在 kotlin/native 上适配鸿蒙,感觉坑很多。而且 kotlin/native 相当于用 kotlin 写 c/c++,出现内存问题,一样挠头

其次,kotlin/native 因为要适配 iOS 的 platform,和 xcode 绑定的也很死,同时自己又和 llvm 绑定的很死,编译的时候有各种问题,比如 kotlin 1.9.x 没法和 xcode16 一起使用···

2024提前总结

为什么选这个奇怪的时间写下这篇文章呢?因为我终于确定了一个 offer 了!(当然后续可能也有幺蛾子,比如小米 offer call 以后,又说没有 hc,雷总···你们招人也太奇怪了···)。然后,这段时间的经历实在让我脑壳子嗡嗡的,又做了一次人生的错误决定来到传说中的宇宙条,不过人生的魔抗叠厚了不少···

ASM 和 JVM 关联知识

背景

最近做日志治理(其实也没啥治理的),发现日志存活时间很短,因为各个业务方的日志汇总在一个实例里,有任何无用日志频繁打印,都会把日志覆盖掉

那其实,治理的办法也很简单:

LearnJVM 有趣的发现

为了兑现自己立下的 flag 🤣,这两天刚好假期前,继续实现 JVM

打算定个小目标:每个月更新一次 LearnJVM 这个项目

第五章的指令好多好多,所以还在不断地 copy & paste

实现的途中发现了 ICONST_X 指令很有意思,如下图: