魅族内核团队

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

指尖上的科技:智能手机触摸屏技术与功耗优化

1. 概述触摸屏作为现代交互设备中重要的输入方式之一,已广泛应用于手机、平板电脑、电脑显示器等设备中。本文档将从基础知识出发,介绍触摸屏的工作原理,包括传感器感知、信号转换、数据处理和触摸事件传递等关键步骤。接着,将介绍触摸屏的分类,包括电容式触摸屏、电阻式触摸屏等不同技术的特点和应用场景。随后,将探讨触摸屏的工作模式:Actvie/Idle/Sleep Mode,也包括单点触控、多点触控、......

性能打磨手记:记一段 Futex 机制的内核优化之旅

1. futex简介Futex 是Fast Userspace muTexes的缩写,由 Linux 2.5.7开始引入。传统的SYSTEM V IPC机制需要系统调用进入内核态去操作某个内核对象,由内核来仲裁同步,事实上大部分情况下并没有资源竞争,此种情况下仍然进入内核态会显得很浪费,系统开销增加进而造成性能折扣,由此引入futex的概念。 futex是一种用户态和内核态混合机制,需要两个......

手机温控中枢:高通 Thermal Engine 框架分析

1. 前言在当前移动处理芯片性能过剩的时代,用户对手机的温度要求越来越高,更加苛刻的标准,最好永不发热。在这种背景下,温控领域的工作变得日益重要,众多大厂都在不断魔改和优化他们的温控技术。今天我们也带大家看看温控技术的其中一部分:Thermal Engine。下面,我们将基于 GitHub 上的源代码,对 Thermal Engine 的工作原理进行深入剖析。 Thermal Engine是......

从硬件到软件,Linux 时间子系统全栈解析

Linux 时间子系统为构建分时多任务操作系统提供了基础设施,使得系统能够准确地管理和处理与时间相关的任务,为任务调度、资源管理、驱动开发和应用程序开发等等都提供了强大的支撑。魅族博客之前也介绍过时间相关的文章:《Linux Time》、《Linux Tick 和 Tickless》、《CPUIDLE 之低功耗定时器》,温故而知新,我们再来一篇从入门到放弃。 1. 整体软件架构linux时间......

焕新存储技术:UFS 4.0 FBO 底层逻辑剖析

FBO (File Based Optimization) 是 UFS 4.0 标准中新引入的功能,用于优化 UFS 长久使用后由于文件碎片导致的读写性能下降问题。了解 FBO 之前我们先了解下 UFS 的一些基本概念及文件碎片问题。 一、FBO 诞生的原因UFS (Universal Flash Storage) 通用闪存存储器以良好的性能被广泛用在手机、平板等设备上。UFS 协议由 JE......
UFS

浅析高通 mvp 进程优先调度

一、前言众所周知,原生 Linux 内核大部分进程是采用完全公平调度CFS(Completely Fair Scheduler),服务于 PC 机/服务器/Android设备/嵌入式设备等等。然而 Android 设备要求前台应用具有交互和UI的高响应性和高流畅性。原来不区分前后台应用的 CFS 机制似乎没有专门为交互设备考虑到这点,以至于国内大厂纷纷魔改内核调度策略,如 vip 线程、不公......

eBPF初体验:Android设备网络优化实践

1. 概述1.1 eBPF是什么先看看官方原文释惑 eBPF is a revolutionary technology with origins in the Linux kernel that can run sandboxed programs in a privileged context such as the operating system kernel. It is use......

Android Input 调试与优化

Android input系统负责处理与管理用户输入, 是用户交互体验的中枢,涉及从上到下各个领域。当遇到一些复杂的 Input 相关性能问题时,如何进行精准的 Debug 定位呢?本篇旨在介绍android Input的工作流程及debug手段,并借助perfetto工具,分享一些 Android Input Debug 与优化的实践和相应的优化方案。 一. Android input 常......

人脸解锁带来的安卓系统崩溃之谜!

问题背景用户反馈开启人脸解锁后,偶现密码解锁、指纹解锁、人脸解锁均无法使用,系统卡死随后出现安卓重启。 问题分析SWT之初步释疑查看android SWT(Software Watchdog Timeout)日志,发现android.ui线程卡死。1Subject: Blocked in handler on ui thread (android.ui) 查看android.ui堆栈,可以看......

显示框架之app与SurfaceFlinger通信

显示框架之app与SurfaceFlinger通信SurfaceFlinger是android显示的核心进程,在整个显示框架中起到一个承上启下的作用,“承上”指的是与app进程间的通信,“启下”指的是与Composer进程的通信。Surfaceflinger本身不进行绘制,是app数据上屏的中枢通路,先来看下SurfaceFlinger在整个显示流程中的位置。 从显示流程图看可知,Surf......