很久没写博客了,是时候把写博客的习惯拾起来,今天就拿这一篇先做练练手了。 原本想着一开始就想着分析Android应用的启动过程的,但是在这个过程中发现有很多类或者说知识点没…
(原创)基于Android 8.1之updateOomAdjLocked源码分析
在lowmemorykiller的源码分析中,我们了解到在内存紧张的情况下,lmkd会根据oom的分数值,对应用进行清杀操作。上一篇主要讲lmkd驱动及lmkd守护进程的相关内容,还没有涉及到oo…
(原创)使用Android NDK socket编程对比多路复用select和epoll的性能
上一篇在分析lowmemorykiller的时候遇到了一个特殊的调用,那就是epoll。epoll属于多路复用的机制之一。之前了解得不是特别深入,所以这一篇做一下深入了解,当然相关概念网上已经很多…
(原创)基于Android 8.1之lowmemorykiller源码分析
在使用Android的过程中,我们经常性的会按Home键返回到桌面,然后打开其他的应用进行使用,而此时前一个应用会驻留在内存中,当再次打开该应用时就可以直接显示使用。通过这种方法可以提升用户体验以…
(原创)zram算法比较以及zstd移植
zram类似压缩饼干,是将RAM中暂时不用的部分RAM使用压缩算法压缩后,在写会RAM中,以达到RAM释放的功能。zram是一个块驱动,源码在kernel根目录下的drivers/block/zr…
(原创)Lineage下载编译刷机教程(以Pixel为例)
前言 博主之前有写过使用AOSP的源码为Pixel编译系统镜像的文章,这一篇我们不玩AOSP的源码了,我们玩一下Lineage的源码,Lineage是由第三方开发、基于Android的、旨在提供系…
(原创)根据log分析SD卡挂载过程
在分析SD卡挂载过程前,先了解Android存储的一些杂乱概念吧。 Android存储类型 Internal vs External 对于Internal Storage …
(原创)Framebuffer测试程序
上一篇,我们看了Framebuffer驱动的内容,同时framebuffer提供了一些借口,可以让我们比较容易的操作Framebuffer,所以就有了这篇,写一个简单的程序来获取Framebuff…
(原创)Android充电动画分析
今天来分析一下Android的关机充电动画是如何实现的。至于充电启动的流程,之后有时间再做分析,这里主要分析跟Android关机充电相关的部分。不多说直接开始分析代码吧。 healthd_mode…
(原创)高通MSM8909+Android 8.1.0 FDE全盘加密失败分析记录(二)启用ICE
emmmmmmm……上一篇,我们尝试使用了软件加密方式来进行全盘加密。但是呢,软件加密正如其名是通过软件的方式进行加密操作,这样一来,在执行加密的时候就需要CPU的参与。如…