在开发中,try-catch、finaliy 的使用可以说是很常见了,那么它们转换成字节码之后又是什么样子呢?发生异常时字节码是如何执行的呢?今天我们就从字节码层面看看 try-catch 和 finaliy 首先我们先…
【Linux】epoll
概述 基础概念 fd: 输入输出(input/output)的对象可以是文件(file), 网络(socket),进程之间的管道(pipe)。在linux系统中,都用文件描述符(fd)来表示。 IO事件: * 可读事件:…
【Linux】IPC概述
概述 Linux 系统中有很多进程,免不了进程间进行通信,即IPC通信,linux 中有6种方式:管道(无名管道pipe和有名管道FIFO)、信号、信号量、消息队列、共享内存、套接字(socket) 管道(无名管道pip…
细品Choreographer
今天我们来品一品Choreographer,这个东西翻译成中文是 编舞师 的意思,为啥要这么叫呢?品完你就知道了,下面是今天的菜单: 开胃菜:初识Choreographer Choreographer的由来——黄油计划 …
Android系统启动流程概览
概述 当手机电源按下时,引导芯片代码会从预定义的地方(固化在ROM)开始执行,加载引导程序BootLoader到RAM,然后执行BootLoader,引导操作系统启动 BootLoader会启动swapper进程(又叫i…
【Linux】fork
概述 在Linux系统中 创建进程有两种方式:一是由操作系统创建,二是由父进程调用函数fork()创建进程(通常为子进程) fork相当于把父进程复制了一份,以32位系统为例,进程的虚拟地址空间是从0到4G的大小,其中0…
SharedPreference为什么进程不安全
前言 相信大家都有听说过SharedPreference是线程安全的,但进程是不安全的,包括google官方也不建议在多进程下使用SharedPreference,那么SharedPreference为什…
SharedPreferences源码浅析
一、实例获取 在开发中,我们调用的是Context.getSharedPreferences(String name, int mode),实际的实现,是在ContextImpl中: @Override …
少侠,用过CountDownLatch吗?
今天在看Android源码的时候,看到了CountDownLatch,第一回见到(可能是我太菜,源码看的少)不知道是干啥的,所以去查了一下。这不查不知道,一查吓一跳啊~原来还有这么方便个玩意儿!回想起来,开…
MAC 上编译Android 8.0源码
一、搭建编译环境 参考https://source.android.com/source/initializing.html#installing-the-mac-jdk 1、创建区分大小写的磁盘映像 在默认安装过程中,…