
安卓
文章平均质量分 96
解析android系统中的一些关键进程,关键服务
GDUYT
梦涵天泽,水落鱼梁
展开
-
Android4.4 property机制学习
本文借鉴自邓平凡著《深入理解android卷I》第三章:【深入理解init】3.2.4小节:【属性服务】,以及《深入讲解Android Property机制》,仅供学习使用。Android平台的property service(属性服务)机制,类似于windows中的注册表。通常,系统或应用会将一些属性以键值对的形式存储在注册表中,使得系统重启或者应用重启后,能够根据之前注册表中的设置进行初始化系统或应用。在Android系统中,我们可以adb的方式登录到手机或模拟器,或者使用远程控制工具以串口的方式连原创 2021-04-02 17:52:08 · 3025 阅读 · 6 评论 -
《Android4.4 property机制学习》补充篇——属性树与其在内存中的存储结构
1、前言在上一篇博客《Android4.4 property机制学习》的提到的属性字典树,由于当时对其结构不太了解,所以没有细说。最近根据属性树相关的代码、注释、以及内存数据对照学习之后,有了一些自己的理解,上一篇博客感觉篇幅太长,而且这里要说的内容比较独立,所以单独写一篇来补充一下。有些内容看不太明白的话,可以先看一看上一篇文章。2、属性树的结构首先是这棵树的组织结构,源代码作者也给出了图解注释。其主要是由prop_info和prop_bt这两个结构体组成,由点(.)分割的属性名以结构体pro原创 2021-04-25 11:20:32 · 953 阅读 · 1 评论 -
Android9.0(Pie) system_server进程学习
在上篇文章《Zygote——Android系统中java世界的受精卵》中,我们提到了zygote的一个关键动作,那就是fork出system_server进程。这篇文章我们就来详细分析一下system_server的启动流程,以及都做了哪些事吧。原创 2021-11-25 02:30:00 · 1412 阅读 · 1 评论 -
Zygote——Android系统中java世界的受精卵
0、引言 Android的底层内核是基于Linux构建而成,是在Native世界,而Android上层的应用是隶属Java世界。那么在Android系统启动过程中,系统是如何从Native孵化出Java世界的呢?这便是这篇文章的主角Zygote的主要职责。本文所选Android系统版本是9.0 Pie,文中所有代码片段路径在代码块第一行已经标注。文章的目的是记录自己的学习历程与心得,不做商用或盈利,凡是学习过程中学习或引用过的大佬博文或著作都会尽力标注,在此感谢各位前辈...原创 2021-10-26 11:30:39 · 1938 阅读 · 1 评论 -
Android9.0(Pie)1号进程init的启动流程学习
1、引言 众嗦粥汁,无论是电脑还是手机,亦或是其他终端设备,其从上电到完全启动都有一套复杂的流程。本来是打算使用相对简单一些的android4.4版本代码来学习这一整个流程,但是由于工作生产环境从android4.4的kitkak变为了9.0的pie,所以直接用9.0的代码来学习,学习代码和熟悉9.0环境两不误,哦耶! 拿android系统的设备来说,由于其底层是linux内核,其从开机上电后,会先后经历加载boot、启动kernel等过程。(当然这个过程...原创 2021-10-09 19:42:36 · 1265 阅读 · 0 评论 -
android9.0开机动画流程学习
目录1、源码获取与功能介绍2、Android系统如何启动bootanimation3、Bootanimation3.1、初始化工作3.2、android()3.3、movie()3.3、停止播放4、待补充1、源码获取与功能介绍先看android9.0的开机动画的源代码,在Android OS 在线源代码网站:https://www.androidos.net.cn/sourcecode选择自己生产环境的android版本,就可以看到这个版本的所有源代码:...原创 2020-12-28 17:23:38 · 2831 阅读 · 0 评论