79

GitHub - BeesAndroid/BeesAndroid: The project aims to help more Android engineer...

 6 years ago
source link: https://github.com/BeesAndroid/BeesAndroid
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

BeesAndroid BeesAndroid

功能介绍

License Stars Stars Forks

BeesAndroid开源技术小组正式成立啦,Bees,即蜜蜂,取义分享、合作与奉献的意思,这也是BeesAndroid小组的宗旨,我们第一个团体项目BeesAndroid也于2018年3月6日同步上线,该项目的前 身是android-open-source-project-analysis,这个项目提供了一系列的Android系统源码分析文章,收 到了良好的反馈。

但是一个人的力量是有限的,因此将其推成团体项目BeesAndroid,项目采用GPL协议,在保护作者知识产权的基础上,最大化的做到开源与开放,如果有什么问题和意见欢迎提交issue,也欢迎大家参与 到本项目中来。

BeesAndroid项目旨在通过提供一系列的工具与方法,降低阅读系统源码的门槛,帮助更多的Android工程师理解Andriod系统,掌握Android系统。

代码版本

  • 细分版本:N6F26U
  • 分支:android-7.1.1_r28
  • 版本:Nougat
  • 支持设备:Nexus 6

分析思路

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

  • 不要去记录那些API调用链,绘制一个序列图理清思路即可,Android Framework中有很多复杂的API调用链,你去关注这些东西,用处不大。你需要学会的是跟踪调用链和梳理流程的 技巧,思考一下作者是怎么找到关键入口的,核心的实现在什么地方。
  • 要善于思考,要多问为什么,面对一个模块,你要去思考这个模块解决了什么问题,这个问题的本质是什么,为什么这么解决,如果让我来写,我会怎么设计。事实上不管是是计算机还是 手机,从CPU、到内存、到操作系统、到应用层,看似纷繁复杂,但问题的本质无非就是这么几种:时间片怎么分配?线程/进程怎么调度?通信的机制是什么?只是在不同的场景下加了具体 的优化,但问题的本质没有改变,我们要善于抓住本质。
  • 要善于去粗存精,Android Framework也是人写的,有精华也有糟粕,并不是每行代码你都需要问个为什么,很多时候没有那么多为什么,只是当时那种情况下就那样设计了。但是 对于关键函数我们要去深究它的实现细节。

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

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

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

? 注:每篇文章有三种状态:编辑中、校对中和已完成。请阅读已完成状态的文章。

原理篇

应用框架层

Android视图系统

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述 编辑中

Android视图系统:Android应用视图管理者Window 编辑中

Android视图系统:Android应用视图View 编辑中

Android视图系统:Android应用视图组ViewGroup 编辑中

Android视图系统:Android帧布局控件FrameLayout 编辑中

Android视图系统:Android线性布局控件LinearLayout 编辑中

Android视图系统:Android相对布局控件RelativeLayout 编辑中

Android视图系统:Android协调布局控件CoordinatorLayout 编辑中

Android视图系统:Android下拉刷新控件SwipeRefreshLayout 编辑中

Android视图系统:Android滑动控件ViewPager 编辑中

Android视图系统:Android滚动控件ScrollView 编辑中

Android视图系统:Android列表控件RecyclerView 编辑中

Android视图系统:Android进度条控件ProgressBar 编辑中

Android视图系统:Android进度条控件ProgressBar 编辑中

Android视图系统:Android文字控件TextView 编辑中

Android视图系统:Android编辑框控件EditText 编辑中

Android视图系统:Android图片控件ImageView 编辑中

Android视图系统:Android对话框控件Dialog 编辑中

Android视图系统:Android弹出窗口控件PopupWindow 编辑中

Android组件系统

文章 文章状态 作者 校对 Android组件系统:Android组件系统概述 编辑中

Android组件系统:Android应用上下文Context 编辑中

Android组件系统:Android视图容器Activity 编辑中

Android组件系统:Android视图片段Fragment 编辑中

Android组件系统:Android后台服务Service 编辑中

Android组件系统:Android内容提供者ContentProvider 编辑中

Android组件系统:Android广播接收者BroadcastReceiver 编辑中

Android资源系统

文章 文章状态 作者 校对 Android资源系统:Android资源系统概述 编辑中

Android资源系统:应用资源Resouces 编辑中

Android资源系统:资源管理器AssetManager 编辑中

Android包系统

文章 文章状态 作者 校对 Android包系统:Android包系统概述 编辑中

Android包系统:APK解析器PackageParser 编辑中

Android包系统:APK的打包流程 编辑中

Android包系统:APK的安装流程 编辑中

Android包系统:APK的加载流程 编辑中

Android应用通信系统

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android应用通信系统:Android应用通信系统概述

Android应用通信系统:Android线程通信桥梁Handler

Android动画系统

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android动画系统:Android动画系统概述

Android多媒体系统

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android多媒体系统:Android多媒体系统概述

Android数据库系统

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android数据库系统:Android数据库系统概述

进程通信层

Binder进程通信框架

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Binder进程通信框架:服务管理器ServiceManager

Binder进程通信框架:BpBinder与BBinder

Binder进程通信框架:Binder驱动

Socket进程通信框架

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Socket进程通信框架:Socket

系统服务层

Android组件管理服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android组件管理服务:ActivityServiceManager

Android窗口管理服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android窗口管理服务:WindowServiceManager

Android图形绘制服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android图形绘制服务:SurfaceFlinger

Android图形绘制服务:Android布局解析器LayoutInflater

Android包管理服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android窗口管理服务:PackageServiceManager

Android反馈管理服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android反馈管理服务:AccessibilityManagerService

Android壁纸管理服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android壁纸管理服务:WallpaperManagerService

Android搜索管理服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android搜索管理服务:SearchManagerService

Android通知管理服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android通知管理服务:NotificationManagerService

Android定位管理服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android定位管理服务:LocationManagerService

Android输入法管理服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android输入法管理服务:InputMethodManagerService

Android电源管理服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android电源管理服务:PowerManagerService

Android闹钟管理服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android闹钟管理服务:AlarmManagerService

Android网络管理服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android闹钟管理服务:NetworkManagementService

Android账户管理服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android账户管理服务:AccountManagerService

Android设备存储管理服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android设备存储管理服务:DeviceStorageMonitorService

Android备份管理服务

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android备份管理服务:BackupManagerService

运行时层

JVM虚拟机

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

JVM虚拟机:Java虚拟机概述

JVM虚拟机:Java类加载机制

ART虚拟机

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

ART虚拟机:Android ART虚拟机概述

硬件抽象层

内核层

Android进程系统

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android进程系统:进程的创建、启动与调度流程

Android进程系统:线程与线程池

Android内存系统

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android内存系统:内存管理系统

Android内存系统:Ashmem匿名共享内存系统

实践篇

Android工程化实践

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android工程化实践:项目架构

Android工程化实践:编译系统

Android工程化实践:插件化

Android工程化实践:热修复

Android工程化实践:模块化

Android工程化实践:VCS工作流

Android工程化实践:持续集成

Android工程化实践:编码规范

Android工程化实践:自动化测试

Android工程化实践:自动化埋点与数据采集

Android应用优化

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android应用优化:优化概述

Android应用优化:启动优化

Android应用优化:界面优化

Android应用优化:内存优化

Android应用优化:图像优化

Android应用优化:网络优化

Android应用优化:并发优化

Android应用优化:优化工具

Android界面开发

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android界面开发:View自定义概述

Android界面开发:View自定义布局篇

Android界面开发:View自定义绘制篇

Android界面开发:View自定义交互篇

Android多媒体开发

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android多媒体开发:Bitmap实践指南

Android多媒体开发:Camera实践指南

Android网络编程

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android网络编程:网络编程实践

Android混合编程

文章 文章状态 作者 校对 Android视图系统:Android视图系统概述

Android混合编程:WebView实践

欢迎关注我们的微信公众号,新文章会第一时间发布到掘金博客与微信公众平台,我们也有自己的交流群,下方是QQ交流群,微信群已满,可以加我微信 allenwells 邀请入群。

微信公众平台

wechat.png

QQ交流群

qq_2.png


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK