魅族内核团队

一个有内涵的技术分享平台

zram 简介

zram 技术的由来zramzram_tech(也称为 zRAM,先前称为 compcache)是 Linux 内核的一项功能,可提供虚拟内存压缩。zram 通过在 RAM 内的压缩块设备上分页,直到必须使用硬盘上的交换空间,以避免在磁盘上进行分页,从而提高性能。由于 zram 可以用内存替代硬盘为系统提供交换空间的功能,zram 可以在需要交换 / 分页时让 Linux 更好利用 RAM ......

Android Sensor Framework 概览

1. OverviewAndroid Sensor Framework 的整体架构如图 1 所示: Android Sensor Framework 可以分为 3 大部分,各个部分的主要功能如下: SDK 这一部分主要功能是为 Application 提供 Java API 接口,以便 Application 可以开启所需的 Sensor 并获取数据。 Framework 这一......

SLAB 分配器和 kmalloc

为什么要有 SLAB一般来说,一个新东西的产生总是为了解决某一个现有的问题的。那么,slab 是为了解决什么问题呢?我们知道,在 Linux 内核中的内存管理是使用伙伴系统 (Buddy System),但是这个系统有一个问题就是,它的最小单位是页,即 PAGE_SIZE ,在 x86 架构中这个常数一般是 4k 。但是很多情况下我们要分配的单元大小是远远小于 4k 的,如果使用伙伴系统的话......

Android 5.1 上的 MTK GPS

本文主要介绍手机上几种常见的定位技术,以及 Android 5.1 上的 MTK GPS。 几种常见的定位技术介绍纯 GPS 定位数据直接来源于卫星,即搜星,然后下载卫星数据。通过卫星的位置(从卫星上接收),卫星到接收机的距离来测算接收机的位置 在无辅助信息的条件下用 GPS 定位,需捕获到至少四颗卫星(因为卫星和接收机都有时间差,4 个未知数需 4 个方程才能解) 蜂窝基站 / WIFI定......

WrapFS 简介

初识 WrapFSWrapFS 是一种堆栈式文件系统,堆栈式文件系统的一个基本功能就是把操作和参数转换成底层文件系统的操作和参数。这就意味着我们会在 WrapFS 层上创建一个文件对象后会在底层文件对应着创建一个对象,要说明的是,WrapFS 层的这个文件对象只保存在内存里面,断电后会消失,真正文件里面的数据保存在底层文件系统里面。 WrapFS 的意义从 WrapFS 的发明者有这样的回......

基于调度器的 CPU 调频机制

最近由于 Linaro 和 ARM 主导的 EAS(Energy Aware Scheduler) 日渐完善,属于 EAS 一部分的基于调度器的调频技术也获得了很多关注。本文主要介绍基于调度器的 CPU 调频策略的原理,以及当前上游社区在这一方面最新的进展。 传统 CPU 调频策略传统 CPU 调频模块主要分为 3 块:CPUFreq 核心模块、CPUFreq 驱动和 CPUFreq Gov......