Android
文章平均质量分 88
chongyuzhao
Android framework工程师。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android processgroup机制
Android processgroup机制原创 2022-09-09 10:20:24 · 3631 阅读 · 0 评论 -
Android10 lowmemorykiller
Android Low Memory Killer Daemon (lmkd) 是一个进程,它监视正在运行的 Android 系统的内存状态,并通过杀死最不重要的进程来对高内存压力做出反应,以使系统性能保持在可接受的水平。从历史上看,在 Android 系统上,内存监控和非必要进程的终止是由内核 lowmemorykiller 驱动程序处理的。自 Linux Kernel 4.12 起,lowmemorykiller 驱动程序已被删除,取而代之的是用户空间 lmkd 守护进程执行这些任务。(摘抄自lmk原创 2022-05-18 10:16:54 · 5674 阅读 · 0 评论 -
Android10多屏开机动画
针对IVI多屏方案,部分场景可能会有支持不同屏播放不同的开机动画的需求,甚至是有动态支持替换动画的需求。原生的BootAnimation并不支持此功能,因此需要针对这种需求,从DisplayManagerService->BootAnimation->SurfaceFlinger的通路进行修改支持。DisplayManagerService的修改,主要是为了避免系统启动初期DisplayManagerService的对各个屏的layerstack的设置。因为启...原创 2022-04-27 14:59:53 · 1599 阅读 · 0 评论 -
Android事件拦截
背景之前有同事吐槽Android的事件分发拦截框架对于事件的拦截的方式和返回值比较乱,不同的地方需要返回不同的值,因此希望撰写一篇文档以作记录。本文主要分析触摸事件和按键事件在不同阶段被拦截的流程,总结在不同阶段不同方法中返回值的含义。按键的拦截interceptKeyBeforeQueueing在inputflinger分发keyevent前,会先将event上报给PhoneWindownManager处理,如果PhoneWindowManager消费掉,则不会继续分发给应用。这个Ph原创 2021-10-28 13:25:34 · 4879 阅读 · 1 评论 -
Java注解学习
之前有段时间非常想学一下Java的注解,但一直都比较懒,没有完整的学下来。但最近在B站上看到了一个非常好的视频,看完后觉得非常好,因此写下文档作为积累。(视频时黑马程序员的双元课程基础班的视频,具体是谁的并不知道。)简介 注解(Annotation),也叫元数据,是代码级别的说明(注释)。它是JDK 1.5版本以后引入的一个特性,与类、接口、枚举是同一个层次。它可以生命在包、类、字段、方法、方法参数等的前面,用来对这些元素进行说明、注释。注解可以理解...原创 2021-10-07 22:26:14 · 228 阅读 · 0 评论 -
Android12 wm size后动画位置异常问题解决
这个问题是当初有个客户需求发现的,这个需求是他们的产品屏幕上下经过对称裁剪,正常的情况是出现了界面异常,只有部分显示。客户希望我们这边能适配一下这种特殊的屏。 本来这个问题是想在驱动层和hwc去做的,但相关模块的同事认为这边改动工作量比较大,想让系统的人从上层实现一下功能。 因此考虑使用wm size强制将系qq统的分辨率改成适配显示屏的大小,以达到功能的需求。...原创 2021-08-26 15:00:41 · 2991 阅读 · 4 评论 -
AndroidP新增一个自定义分区
在某个项目中,有一个需求,需要新增一个xxx分区,这个分区类似于vendor/oem分区,名字为指定的。此处有点好奇,为什么不直接使用oem分区,而是另外弄一个分区名出来。# 功能实现点在root目录下新增分区的挂载目录,将自定义分区的内容生成一个img。 配置方案,将需要拷进自动以分区的模块、文件等配置好。 ...原创 2021-07-27 10:43:28 · 1399 阅读 · 0 评论 -
AndroidP应用uid的设置过程
目前有个项目,希望部分应用能运行在system uid下,但是这部分应用是第三方的,我们无法去修改这些应用的属性,因此考虑在framework层对这些特定的应用进行处理。应用uid的设置 我们先从底层去找起,看看应用的uid是如何设置下来的。 Android的Java应用基本都是通过ZygoteProcess来启动一个新的process:// frameworks/base/core/java/android/os/ZygoteProcess.j...原创 2021-08-18 18:42:03 · 1794 阅读 · 0 评论 -
Android Zygote分析
Android ZygoteAndroid的zygote本质上是Android的虚拟机,是Android的SystemServer和几乎所有Java应用的卵化器,它们的父进程都是zygote。没有zygote就没有Android,Android的启动也离不开zygote。zygote是很重要的一个服务进程,我们在本文档中分析以下zygote在Android中所扮演的角色、作用以及一些设计的特点。Android版本:AndroidQ。zygote的启动zygote是服务进程的别名,zygote实际上原创 2021-02-22 21:52:59 · 1602 阅读 · 0 评论 -
Android Message机制
Android Message机制 Android的Message机制,也叫handler机制,主要由3部分+Message组成,这三部分分别是Looper、MessageQueue和Handler。 Looper:循环体,其作用就是从MessageQueue中取出Message进行消费,一般线程的主体方法的结尾,都会调用Looper的loop方法进入循环,等待处理消息。 MessageQueue:Message的管理队列,用于保存Message。 Handler:Message处理的句柄(原创 2021-02-17 17:06:59 · 1312 阅读 · 0 评论 -
Android优质网站记录
在网上看到的一些学习Android和Java的优质博客、论坛和工具网站,在此记录下来以备后用。1.介绍了一些比较好的网站信息http://www.androidchina.net/6656.html2.Gityuan 袁辉辉的博客MIUI系统工程师,他的博客经常分享Android系统源码解读的文章http://gityuan.com/3.codota,一个介绍Java类使用方...原创 2018-10-22 09:34:50 · 269 阅读 · 0 评论 -
Android打印调用栈的方法
在Android调试过程中经常会出现程序出现的结果不是我们预期的结果,那就需要加Log打印调试,看调用过程是否正确,此时就需要打印程序的调用栈,特别是Android代码相当庞大,打印堆栈更有利于我们分析问题,下面就记录下平时用到不退出程序打印堆栈的方法。验证的方法相关简单,在Activity的类中创建一个方法ThrowException,在onCreate中调用此方法,看打印出什么 ?...转载 2018-08-11 16:54:48 · 11165 阅读 · 0 评论 -
一图理解binder的内存管理
原创 2018-04-11 16:19:43 · 631 阅读 · 2 评论 -
平台设备驱动模型与uevent机制
前记 环境:linux-3.10+Android4.4 摘要:主要分析了内核启动过程中从设备树创建device资源和驱动加载过程中平台设备驱动的匹配过程。同时分析了内核uevent事件上报机制,用户空间对uevent事件的处理过程。linux系统上分析了Busybox中的mdev,android系统上分析了ueventd。深入地了解了设备模型中内核态与用户之间的交互手段。其实主要是因为原创 2018-01-29 17:03:04 · 1477 阅读 · 0 评论 -
property_set的整体过程--以reboot和bootanim为例
前记 最近看到surfaceflinger在初始化结束后会通过property_set的方式启动开机动画,这种情形很像之前reboot命令中看见的,因此按照之前的分析来分析bootanim,但是发现分析错误,后来深入去了解,才发现我之前分析错了,因此写下这份文档纠正自己的错误,以便以后的学习。1. Property_set的整个过程 我先纠正一下reboot命令的分析,原创 2018-01-25 10:59:53 · 4923 阅读 · 0 评论
分享