BeesAndroid The project aims to help more Androi @codeKK shellOpen Source Website

项目介绍

关于 BeesX 开源技术小组

Bees(蜜蜂),取义蜜蜂精神求实、合作与奉献,也即 BeesX 开源技术小组的宗旨,求真务实,合作奉献,本小组旨在通过提供一系列的工具、方法与文档,帮助更多的无线开发工程师理解和掌握无线开发技术。

BeesAndroid 项目于 2018 年 3 月 6 日同步上线,该项目的前身是android-open-source-project-analysis,这个项目提供了一系列的 Android 系统源码分析文章,收到了良好的反馈。但是一个人的力量是有限的,因此将其推成团体项目 BeesAndroid,项目采用 GPL 协议,在保护作者知识产权的基础上,最大化的做到开源与开放,如果有什么问题和意见欢迎提交 issue,也欢迎大家参与到本项目中来。

关于 BeesAndroid 项目

BeesAndroid项目提供了一系列的工具、理论分析与方法论,旨在降低 Android 系统源码的阅读门槛,让读者更好的理解 Android 系统的设计与实现。第一次阅览本系列文章,请参见导读,更多文章请参见文章目录。

掘金博客

在线书籍

代码版本

分支:android-7.0.0_r34

版本:Nougat

支持设备:Nexus 6

分析思路

Android 是一个庞大的系统,Android Framework 只是对系统的一个封装,里面还牵扯到 JNI、C++、Java 虚拟机、Linux 系统内核、指令集等。面对如此庞大的系统,我们得有一定的 章法去阅读源码,否则就会只见树木不见森林,陷入卷帙浩繁的细节与琐碎之中。

善于抓住主线和支线,主线指的就是 Android 系统的各个模块,支线就是这个模块从上值下各个层级中的重要元素,逐一分析,直至探究到模块的最根源层。

不要去记录那些 API 调用链,绘制一个序列图理清思路即可,Android Framework 中有很多复杂的 API 调用链,你去关注这些东西,用处不大。你需要学会的是跟踪调用链和梳理流程的 技巧,思考一下作者是怎么找到关键入口的,核心的实现在什么地方。

要善于思考,要多问为什么,面对一个模块,你要去思考这个模块解决了什么问题,这个问题的本质是什么,为什么这么解决,如果让我来写,我会怎么设计。事实上不管是是计算机还是 手机,从 CPU、到内存、到操作系统、到应用层,看似纷繁复杂,但问题的本质无非就是这么几种:时间片怎么分配?线程/进程怎么调度?通信的机制是什么?只是在不同的场景下加了具体 的优化,但问题的本质没有改变,我们要善于抓住本质。

要善于去粗存精,Android Framework 也是人写的,有精华也有糟粕,并不是每行代码你都需要问个为什么,很多时候没有那么多为什么,只是当时那种情况下就那样设计了。但是 对于关键函数我们要去深究它的实现细节。

在正式阅读本系列文章之前,请先阅读导读相关内容,这会帮助你更加快捷的理解文章内容

导读

你也可以先阅读关于 Android 系统的概述,让你有 Android 系统的设计有个整体的把握。

Android 系统设计概述

Android 系统设计原则与设计模式

欢迎提交 Issue 与 PR,为帮助我们更好的维护此项目,请先阅读 wiki 里的相关规范。

Wiki

文章目录

导读

Android 源码阅读指南

Android 系统设计概述

Android 系统与设计模式

串讲

渲染机制

聊一聊 Android 的渲染机制

聊一聊 Chromium 的渲染机制

聊一聊小程序的渲染机制

聊一聊 Flutter 渲染机制

Android 系统简介

Android 系统简介

Android 应用原理

Android 应用系统

Android 应用上下文 Context

Android 应用主线程 ActivityThread

Android 组件注册表 AndroidManifest

Android 视图系统

Android 应用视图 View

Android 应用窗口 Window

Android 组件系统

Android 多媒体系统

Android 浏览器系统

Android 系统原理

Android 的进程与线程

线程通信的桥梁 Handler

进程通信的桥梁 Binder

Android 系统进程启动流程

Android 组件管理服务 AWS

Android 窗口管理服务 WMS

Android 界面绘制服务 SurfaceFlinger

Android OpenGL ES 原理

Android 应用程序编译与打包

Android 虚拟机 ART

Android 系统安全机制

Android 系统工具

Android 编译系统 Jack

Android 打包脚本 Gradle

Android 系统调试工具

欢迎关注我们

Back to top: