
framework
文章平均质量分 82
图王大胜
工程师一枚,专注 学习力系统
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android Framework AMS(17)APP 异常Crash处理流程解读
APP Crash处理进程启动到UncaughtHandler处理方法,UncaughtHandler方法异常处理AMS的binderDied讣告流程说明:本章节主要解读APP Crash处理。关注思维导图中左上侧部分即可。我们本章节主要是对Android的APP Crash处理有一个基本的了解。原创 2024-11-14 22:59:31 · 1486 阅读 · 0 评论 -
Android Framework AMS(16)进程管理
说明:本章节主要解读AMS 进程方面的知识。关注思维导图中左上侧部分即可。我们先来了解下Linux的进程管理,基于此,我们再谈Android的进程管理体系。最后了解AMS中2个关键的进程管理API:updateLruProcessLocked 和 updateOomAdjLocked。原创 2024-11-13 23:44:01 · 1770 阅读 · 0 评论 -
Android Framework AMS(15)ContentProvider分析-2(getContentResolver及ContentResolver.query流程解读)
说明:本章节主要解读ContentProvider组件的基本知识。关注思维导图中左上侧部分即可。有了前面activity组件分析、service组件分析、广播组件分析、ContentProvider组件的基本流程分析、基于此,接下来我们来分析上一章节提到的第2个流程。ContentProvider的注册,开即启动后解析和处理ContentProvider组件。getContentResolver,然后执行对应ContentProvider.query方法。本章,我们详细分析第二个流程。原创 2024-11-12 23:20:19 · 1337 阅读 · 0 评论 -
Android Framework AMS(14)ContentProvider分析-1(CP组件应用及开机启动注册流程解读)
说明:本章节主要解读ContentProvider组件的基本知识。关注思维导图中左上侧部分即可。ContentProvider的注册,开即启动后解析和处理ContentProvider组件。getContentResolver,然后执行对应ContentProvider.query方法。本章,我们先对ContentProvider组件的应用有基本的了解,再详细分析第一个流程。原创 2024-11-12 23:20:15 · 1332 阅读 · 0 评论 -
Android Framework AMS(13)广播组件分析-4(LocalBroadcastManager注册/注销/广播发送处理流程解读)
说明:本章节主要解读广播组件的广播发送过程。关注思维导图中左上侧部分即可。有了前面普通广播组件 注册/注销程/广播组件的发送广播流程分析的基础,基于此,接下来我们来分析LocalBroadcastManager也就是本地广播组件的注册/注销程/广播组件的发送广播流程。我们先对LocalBroadcastManager的引用有一个了解,再详细分析其注册/注销/广播发送关键流程。原创 2024-11-08 05:00:00 · 952 阅读 · 0 评论 -
Android Framework AMS(12)广播组件分析-3(广播发送流程解读)
说明:本章节主要解读广播组件的广播发送过程。关注思维导图中左侧部分即可。有了前面广播组件 注册和注销程分析的基础,基于此,接下来我们来分析广播组件的发送广播流程。我们先对广播组件的整体设计思路有一个了解,再详细分析其广播发送关键流程。原创 2024-11-06 23:24:12 · 1431 阅读 · 0 评论 -
Android Framework AMS(11)广播组件分析-2(注册/注销流程解读)
说明:本章节主要解读广播组件的动态注册/注销过程及静态注册过程。关注思维导图中左侧部分即可。有了前面startActivity流程和service组件启动流程分析的基础,基于此,接下来我们来分析广播组件的注册/注销/发送广播流程。我们先对广播组件的整体设计思路有一个了解,再详细分析其接收器注册/注销关键流程。原创 2024-11-06 23:24:03 · 1105 阅读 · 0 评论 -
Android Framework AMS(10)广播组件分析-1(APP到AMS流程解读)
请注意,有序广播可能会在未来的Android版本中被进一步限制或弃用,因为它们可能被滥用来执行恶意行为。在Android中,广播接收器(BroadcastReceiver)用于接收和处理广播消息。适用于接收应用内部广播或者需要根据应用状态动态注册和注销的广播。以下是一个简单的 Android 应用示例,它演示了如何发送和接收普通广播。这些变更意味着开发者需要根据目标Android版本调整广播的使用,以确保应用的兼容性和功能性。关于系统广播的发送,我们不需要过渡关心,更在于如何接收。原创 2024-11-02 10:23:03 · 1300 阅读 · 0 评论 -
专题分纲目录 Android SystemUI组件
专题分纲目录 均为索引,本纲为:Android核心UI组件SystemUI 系列文章目录Android SystemUI组件(01)SystemUIService启动原创 2021-06-19 16:07:47 · 968 阅读 · 2 评论 -
专题分纲目录 服务器搭建
专题分纲目录 均为索引,本纲为:服务器搭建服务器搭建(01)Gerrit服务器搭建 & 内网访问服务器搭建(02)Gerrit服务器SSH & 建仓 & 删仓服务器搭建(03)Gerrit服务器 权限管理 & Git操作集合服务器搭建(04)VNC服务的搭建(windows访问Linux)服务器搭建(05)centOS7.2 服务器 整合服务器搭建(06)共享文件夹策略与实现服务器搭建(07)定时执行脚本服务器搭建(08)磁盘扩容...原创 2021-02-01 18:40:23 · 412 阅读 · 0 评论 -
专题分纲目录 Android系统基础
专题分纲目录 均为索引,本纲为:Android系统基础和调试Android系统基础(01)简介Android系统基础(02) 系统源码环境搭建Android系统基础(03) 系统源码下载Android系统基础(04) Android系统源码 编译&烧写Android系统基础(05) Android系统源码 调试Android系统调试(01)日志分析基础流程Android系统调试(02)ANR问题总结Android系统调试(03)OOM问题总结...原创 2021-02-01 18:40:49 · 678 阅读 · 0 评论 -
专题分纲目录 Android Framework 常见解决方案
专题分纲目录 均为索引,本纲为:android 系统核心机制基础 系列文章目录Android Framework 常见解决方案(01)关闭SELinuxAndroid Framework 常见解决方案(02)android系统级APP集成方案Android Framework 常见解决方案(03)android系统 资源文件添加Android Framework 常见解决方案(04)禁止锁屏 解决方案Android Framework 常见解决方案(05)Android默认所有应用横屏原创 2020-09-26 08:47:32 · 799 阅读 · 1 评论 -
专题分纲目录 Android Framework 音频子系统
专题分纲目录 均为索引,本纲为:Android Framework 音频子系统 系列文章目录Android Framework 音频子系统(01)音频基础知识Android Framework 音频子系统(02)音频系统框架Android Framework 音频子系统(03)AudioPolicyService启动分析Android Framework 音频子系统(04)Audi...原创 2020-04-13 16:54:24 · 9908 阅读 · 1 评论 -
专题分纲目录 Android GUI系统之SurfaceFlinger
专题分纲目录 均为索引,本纲为:Android SurfaceFlinger显示子系统 系列文章目录Android GUI系统之SurfaceFlinger(01)显示系统框架Android GUI系统之SurfaceFlinger(02)应用端分析1-获取SurfaceAndroid GUI系统之SurfaceFlinger(03)应用端分析2-申请BufferAndroid G...原创 2020-03-14 15:05:36 · 7812 阅读 · 1 评论 -
专题分纲目录 Android Framework 存储子系统
专题分纲目录 均为索引,本纲为:Android Framework 存储子系统 系列文章目录Android Framework 存储子系统(01)vold守护进程Android Framework 存储子系统(02)MountService服务...原创 2020-02-07 00:01:00 · 565 阅读 · 0 评论 -
专题分纲目录 Android系统升级 Recovery模式
专题分纲目录 均为索引,本纲为:Android系统升级 Recovery模式 系列文章目录Android系统升级 Recovery模式(01)Recovery模式启动Android系统升级 Recovery模式(02)Recovery升级过程Android系统升级 Recovery模式(03)update-binary模块...原创 2020-02-07 00:01:11 · 784 阅读 · 1 评论 -
专题分纲目录 Android Framework 电源子系统
专题分纲目录 均为索引,本纲为:Android Framework 电源子系统 系列文章目录Android Framework 电源子系统(01)PowerManagerService启动分析Android Framework 电源子系统(02)系统休眠wakelock机制Android Framework 电源子系统(03)核心方法updatePowerStateLocked分析-...原创 2020-02-06 19:02:36 · 909 阅读 · 0 评论 -
专题分纲目录 android 系统核心机制基础
专题分纲目录 均为索引,本纲为:android 系统核心机制基础 系列文章目录android系统核心机制 基础(01)智能指针wp & spandroid系统核心机制 基础(02)Thread类解析android系统核心机制 基础(03)Thread 同步机制android系统核心机制 基础(04)handler message机制 javaandroid系统核心机制 ...原创 2020-02-06 13:11:30 · 893 阅读 · 0 评论 -
专题分纲目录 Android Framework 包管理子系统
专题分纲目录 均为索引,本纲为:Android Framework 包管理子系统 系列文章目录Android Framework 包管理子系统(01)PackageManagerService启动分析Android Framework 包管理子系统(02)PackageManagerService关键文件解读Android Framework 包管理子系统(03)应用安装Andro...原创 2020-02-06 13:11:51 · 594 阅读 · 1 评论 -
专题分纲目录 android 系统核心机制 binder
专题分纲目录 均为索引,本纲为:android 系统核心机制 binder 系列文章目录android 系统核心机制binder(01)C语言简谈binderandroid 系统核心机制binder(02)binder驱动层原理android 系统核心机制binder(03)binder C++层实现android 系统核心机制binder(04)binder C++层 TestS...原创 2020-02-06 13:11:37 · 2249 阅读 · 1 评论 -
专题分纲目录 Android Framework 输入子系统
专题分纲目录 均为索引,本纲为:Android Framework 输入子系统 系列文章目录Android Framework 输入子系统(01)核心机制 inotify和epollAndroid Framework 输入子系统(02)核心机制 双向通信(socketpair+binder)Android Framework 输入子系统(03)输入系统框架Android Frame...原创 2020-02-06 13:11:39 · 2467 阅读 · 0 评论 -
专题分纲目录 Android Framework 窗口子系统
专题分纲目录 均为索引,本纲为:Android Framework 窗口子系统 系列文章目录Android Framework 窗口子系统 (01)WindowMangerService基础知识Android Framework 窗口子系统 (02) 应用进程和WMS之间的关系Android Framework 窗口子系统 (03) 窗口显示次序Android Framework ...原创 2020-02-06 13:11:53 · 2491 阅读 · 0 评论 -
Android GUI系统之SurfaceFlinger(09)服务端分析4-handleMessageRefresh处理
本章节思维导图如上。主要讲述了SurfaceFlinger 处理Vsync机制的流程。主要分析handleMessageRefresh 处理方法。1 从signalRefresh到handleMessageRefresh//调用这里#else#endifbreak;break;break;//...break;原创 2020-03-14 13:55:42 · 3464 阅读 · 1 评论 -
Android GUI系统之SurfaceFlinger(08)服务端分析3-handleMessageInvalidate处理
本章节思维导图如上。主要讲述了SurfaceFlinger 处理Vsync机制的流程。上一章节是分析到handleMessageTransaction处理方法。该部分主要分析handleMessageInvalidate处理方法。i原创 2020-03-14 12:20:14 · 2094 阅读 · 1 评论 -
Android GUI系统之SurfaceFlinger(07)服务端分析2-handleMessageTransaction处理
本章节思维导图如上。主要讲述了SurfaceFlinger 处理Vsync机制的流程。主要分析handleMessageTransaction 处理方法。继续上一节(Android GUI系统之SurfaceFlinger(06)服务端分析1-处理VSYNCbreak;//关键语句//1//2//3break;break;针对INVALIDATE消息,关键执行代码中标识的几句话。我们对其分别技能型详细的分析//产生一个新的transactionFlags变量。原创 2020-03-14 12:20:03 · 2286 阅读 · 1 评论 -
Android GUI系统之SurfaceFlinger(06)服务端分析1-处理VSYNC
本章节思维导图如上。主要讲述了SurfaceFlinger 处理Vsync机制的流程。分析到处理消息这一部分。1 SurfaceFlinger使用VSync流程框架APP将产生的界面提交Buffer时会调用queueBuffer的操作,最后会通知SF合成界面。原创 2020-03-14 12:19:57 · 2416 阅读 · 2 评论 -
Android GUI系统之SurfaceFlinger(05)VSync机制
本章节思维导图如上。主要讲述了黄油计划和Vsync机制 涉及的 5个关键线程。1 Android的 黄油计划1.1 Vsync机制Vsync(Vertical Synchronization,垂直同步)是一种在PC上很早就广泛使用的技术,可以理解为是一种定时中断。而在Android 4.1(JB)中已经开始引入VSync机制来同步渲染,让App和SurfaceFlinger可以按硬件产生的VSync节奏进行工作。原创 2020-03-14 12:19:46 · 3371 阅读 · 1 评论 -
Android GUI系统之SurfaceFlinger(04)应用端分析3-提交Buffer
本章节思维导图如上。主要讲述了surafce测试程序 demo的 第3步中的 提交Buffer 阶段。解锁定(最关键)并提交Buffer的过程。关键源码说明//...//1 创建surfaceflinger的客户端//2 获取surface//设置layer,layer值越大,显示层越靠前//3 获取buffer->锁定buffer->写入buffer->解锁并提交buffer//这里主要关注:申请Buff 和 提交Buff//...return 0;原创 2020-03-14 12:19:39 · 2194 阅读 · 2 评论 -
Android GUI系统之SurfaceFlinger(03)应用端分析2-申请Buffer
本章节思维导图如上。主要讲述了surafce测试程序 demo的 第3步中 的获取Buffer,锁定(最关键)并写入Buffer的过程。关键源码说明//...//1 创建surfaceflinger的客户端//2 获取surface//设置layer,layer值越大,显示层越靠前//3 获取buffer->锁定buffer->写入buffer->解锁并提交buffer//这里主要关注:申请Buff 和 提交Buff//...return 0;原创 2020-03-14 12:19:32 · 2709 阅读 · 1 评论 -
Android GUI系统之SurfaceFlinger(01)显示系统框架
本章节思维导图如上。主要讲述了显示系统的基础,了解FrameBuffer与Android的关系,给出SurfaceFlinger的整体框架以及一个核心的demo测试程序。接下来的章节 将以该demo为核心进行阐述和分析。1 frameBuffer与Android当我们的程序 想要 在屏幕上显示内容时,我们的机制是直接向FrameBuffer(后面简称FB)写入内容来实现。接下来谈谈Android 实用FB的策略:如果只有一个FB,当APP写入速度>LCD显示速度时没问题;原创 2020-03-14 12:19:19 · 5134 阅读 · 10 评论 -
Android SurfaceFlinger导读(10)理解DisplayDevice
本章节思维导图如上。主要讲述了DisplayDevice的概念,这里 主要DisplayDevice的创建流程和 两个关键方法makeCurrent 和swapBuffer。在之前的分析中,我们知道 每个应用端对应一个SurfaceControl,每个SurfaceControl都对应多个Surface,即 应用端使用Surface来管理Buffer。实际上在SurfaceFlinger中 DisplayDevice也是通过Surface来管理Buffer。应用端的Buffer是向Ashmem申请的;原创 2020-03-14 13:55:10 · 5947 阅读 · 4 评论 -
Android SurfaceFlinger导读(09)理解Gralloc2 内存分配
本章节思维导图如上。主要讲述了gralloc模块 内存分配的概念,这里 主要关注 构造器 和 alloc方法。分配一个匹配屏幕大小的图形缓冲区将分配好的图形缓冲区注册(映射)到当前进程的地址空间来将要绘制的画面的内容写入到已经注册好的图形缓冲区中去,并且渲染(拷贝)到系统帧缓冲区中去加载Gralloc模块打开Gralloc模块中的gralloc设备和fb设备其中,gralloc设备负责分配图形缓冲区,Gralloc模块负责注册图形缓冲区,而fb设备负责渲染图形缓冲区。原创 2020-03-14 13:55:06 · 2809 阅读 · 1 评论 -
Android SurfaceFlinger导读(08)理解Gralloc1 FrameBuffer
本章节思维导图如上。主要讲述了FrameBuffer的概念,这里 主要关注 FrameBuffer的基本概念、实现原理以及 PageFlipping/双缓冲技术。1 FrameBuffer说明Frame:帧,就是指一幅图像。在屏幕上看到的那幅图像就是一帧。Buffer:缓冲,就是一段存储区域,可这个区域存储的是帧。FrameBuffer 的概念很清晰,它就是一个存储图形/图像帧数据的缓冲。原创 2020-03-14 13:20:45 · 2691 阅读 · 1 评论 -
Android SurfaceFlinger导读(07)理解HWComposer
本章节思维导图如上。主要从7个方面讲述了HWC的概念,这里 主要关注 HWC的流程、功能、效率。1 HWC概述HWC(hwcomposer)是Android中进行窗口(Layer)合成和显示的HAL层模块(注意:不是SurfaceFlinger代码中HWcomposer这个类),通常由显示设备制造商 (OEM)实现并完成,为服务提供硬件支持。2 为什么使用HWC可以使用OpenGL ES合成Layer,这需要占用并消耗GPU资源。大多数GPU都没有针对图层合成进行优化,因此当。原创 2020-03-14 13:20:19 · 9160 阅读 · 0 评论 -
Android SurfaceFlinger导读(06)理解Region
本章节思维导图如上。主要从2个方面讲述了Region的概念,一个是它的定义,一个是它的操作。1 region以及相关概念的定义在Android系统中,定义了Region(一块任意形状的图形)的概念,它代表屏幕上的一个区域,它是由一个或多个Rect(矩形方块)组成的,这个区域有三种状态,可能是不可见的、部分可见的、者完全不可见的。如果Region只是一个简单的矩形区域,则mStorage只包含一个Rect类型的元素。原创 2020-03-14 12:20:09 · 2087 阅读 · 1 评论 -
Android SurfaceFlinger导读(05)理解fence机制
Fence是一种同步机制,它主要被用来处理跨硬件的情况,尤其是CPU,GPU和HWC之间的同步,另外它还可以用于多个时间点之间的同步。GPU编程和纯CPU编程一个很大的不同是它是异步的,当我们调用GL command返回时这条命令并不一定完成了,只是把这个命令放在本地的command buffer里。具体什么时候这条GL command被真正执行完毕CPU是不知道的,除非CPU使用glFinish...原创 2020-03-14 12:20:19 · 6105 阅读 · 2 评论 -
Android SurfaceFlinger导读(02)理解MessageQueue
/说明:以下代码分析均在android5.1.1_r3分支上 目录frameworks/native/services/surfaceflinger为root目录。本文主要通过消息队列MessageQueue来分析。原创 2023-09-17 23:19:14 · 1330 阅读 · 0 评论 -
Android Framework 常见解决方案(27)adb局部命令生效解决方案
这样的改动一般是为了防止客户拿到定制设备后对软件偷家,但同时我们又需要一些特殊定制,比如抓日志logcat这种。因为针对前者的限制,我们完全可以值接禁用adb即可,不需要再做特殊修改。但基于前者的需求我们又希望能有一些定制的命令或者极少常见命令可以正常使用,那么就需要对adb有一定了解的情况下定制修改了。这里的原理是主要针对adbd中关键位置进行过滤和特殊处理操作。原创 2024-01-15 19:00:00 · 1050 阅读 · 0 评论 -
Android Framework 常见解决方案(19)音量/电源按键默认事件响应方案
点击电源键、音量+、音量- 按键时不再在UI界面上弹出滚动条,而是直接在自定的Launcher中处理(该部分不作介绍),处理的核心原则就是 按键触发时不再响应对应的处理流程 或者 处理流程被修改,而这些多数在framework的配置文件中修改达到效果。修改文件为:aosp/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java;2 各种音量/电源键UI响应剔除方案。@2 电源键长按不显示。原创 2023-04-24 11:16:55 · 1121 阅读 · 2 评论 -
Android系统升级 Recovery模式(03)update-binary模块
系列文章解读&说明:Android系统升级 Recovery模式的分析主要分为以下部分:Android系统升级 Recovery模式(01)Recovery模式启动Android系统升级 Recovery模式(02)Recovery升级过程Android系统升级 Recovery模式(03)update-binary模块本模块分享的内容:update-binary模块...原创 2019-07-20 09:33:02 · 4401 阅读 · 0 评论