深入分析Android 9.0源代码——引言

版权声明:本文为博主原创文章,转载请注明引用地址: https://blog.csdn.net/hongchi110/article/details/82967240

理解Android Framework层最好的方式之一,就是所谓的“RTFSC (Read The Fucking Source Code)”。随着2018年 8 月Android 9.0的正式发布,笔者决定对新版本的部分源代码进行深入学习和研究,并加以整理发布于个人博客中。本系列文章的组织结构和相关说明如下:
(1)所有的Android源代码来源于Google Git中的android-9.0.0_r8分支,由于国内可能需要VPN才能访问,笔者后续会考虑以云盘的方式进行共享。
(2)每篇文章以一个常用的API方法或机制为入口,深入分析它在Android Framework层中的调用流程。笔者会尽可能连贯地分析方法调用链,当出于简洁性考虑需要省略或跳过一些执行流程时,会在文中显式地说明。
(3)全文结构上包括正文、总结和参考文献三部分。其中,正文部分将整个调用流程划分为若干章节,每个章节再根据包含的方法数划分为若干小节。为了使读者能快速定位到特定章节,笔者为每个小节增加了锚点,在博客原始链接后附加“#chX-Y”就能快速跳转到“X.Y”小节
(4)每个小节的标题通常为“方法名@类名”,表示对单个方法进行分析。特别地,当存在同名(或名称相似)的重载方法时,为了压缩篇幅会将它们合并到一个小节中,此时小节的标题可能使用括号来显示多个方法间的细微差异。
(5)笔者在每个方法的代码开头增加了一行形如“#id path class_name (L#Num)”的注释,其中“#id”表示方法的唯一编号,“path”表示以(1)中的Git资源链接作为{root}的前提下源代码文件所在的目录,“class_name”表示方法所属的类的完全限定名,“(L#Num)”表示方法在源代码中对应的行号。如有必要,笔者会在代码片段下方对其中的重要语句进行详细分析,并以“【L-#Num】”的形式指出语句在本文代码片段(而不是源文件)中的行号。
(6)为了提高的代码可读性,笔者对原始代码进行了布局和内容上的调整,主要包括:移除所有注释和注解、调整代码的缩进格式(确保在不低于1366*768的分辨率下浏览代码时不会出现水平滚动条)、省略无关紧要的代码并用“…”代替、在方法调用代码右侧添加“调用#N”的注释标识调用流程。
(7)正文中提到的方法、字段、常量等均使用“粉底红字”的格式,以区别于普通的单词或概念。
(8)本系列所有内容均为原创,其中引用的文章、博客、书籍会以尾注的形式进行标明。如需转载,请尊重知识产权,注明引用地址。
(9)笔者知识水平有限,如有错误,欢迎指正和交流。

猜你喜欢

转载自blog.csdn.net/hongchi110/article/details/82967240