Rust - Futures library

Futures is a library for writing asynchronous code. official website 导入库 futures = { version = "0.3.30", features = ["thread-pool"] } 开始 创建一个线程池 use

阅读全文 →

FakeLocation - 实现一个FakeLocation

原版FakeLocation限制重重,还要钱,接下来我们先讨论Fake Location的实现,如有错误请指出。(这是一篇随手记) FL的实现 将一个二进制so文件拷贝到/dev,然后杀死system_server,system_server会被重新拉起(小概率设备直接趋势重启),在完成注入syst

阅读全文 →

Rust - 强制修改私有变量

有一个场景,你导了一个奇怪的库,其中有一个结构体私有字段你要修改已达到奇怪的目的,但是他是私有的嘛,你不能直接改,怎么办呢? Unsafe大法 源代码 mod pri { pub struct MyPrivateStruct { name: String, a

阅读全文 →

Kotlin - 泛型?还是泛型?

kotlin的泛型有in, out, where 。 概念 其中有3个概念,分别是协变,逆变,不变。 不变 我们这里有一段代码: class Box<T>(val value: T) suspend fun main() { val stringBox: Box<String> = Box

阅读全文 →

安卓 - Fragment生命周期问题

今天写一个安卓程序,发现一个切屏回来就闪退的问题,经过跟踪发现是因为切屏回来 这个第49行代码报错导致的,说的是_binding是null 这?不对吧, 我一进来使用binding的话,我就会初始化啊,

阅读全文 →

ELF - elf64的数据结构

目前,PC平台流行的 可执行文件格式(Executable) 主要包含如下两种,它们都是 COFF(Common File Format) 格式的变种。 Windows下的 PE(Portable Executable) Linux下的 ELF(Executable Linkable Format)

阅读全文 →

Linux - lgetxattr和getxattr有什么区别

在 Linux 中,lgetxattr 和 getxattr 都是用于获取文件的扩展属性(extended attributes)的系统调用函数。两者的主要区别在于它们对符号链接(symbolic links)的处理方式不同。 1. getxattr 描述: getxattr 用于获取指定文件的扩展

阅读全文 →

JVM - 阴间玩意集锦

一个Java空对象占多少字节? 首先我们需要知道java的对象都在堆区(死杠精和我说在什么鸟屎栈什么逃逸分析,你家对象不传出方法是吧?) 对象头(GC状态,类型,布局什么的信息) 由mark word(8字节)和klass pointer(4字节,如果没开指针压缩就是8字节)组成 对象数据(空的)

阅读全文 →