GitHub - BeesAndroid/BeesAndroid: The project aims to help more Android engineer...
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开源技术小组正式成立啦,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资源系统:资源管理器AssetManager 编辑中
Android包系统
文章 文章状态 作者 校对 Android包系统:Android包系统概述 编辑中
Android包系统:APK解析器PackageParser 编辑中
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 邀请入群。
微信公众平台
QQ交流群
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK