嗨,BeesAndroid开源技术小组正式成立啦,Bees,即蜜蜂,取义分享、合做与奉献的意思,这也是BeesAndroid小组的宗旨,咱们第一个团体项目BeesAndroid也于2018年3月6日同步上线,该项目的前 身是android-open-source-project-analysis,这个项目提供了一系列的Android系统源码分析文章,收到了良好的反馈。android
可是一我的的力量是有限的,所以将其推成团体项目BeesAndroid,项目采用GPL协议,在保护做者知识产权的基础上,最大化的作到开源与开放,若是有什么问题和意见欢迎提交issue,也欢迎你们参与 到本项目中来。git
BeesAndroid项目旨在经过提供一系列的工具与方法,下降阅读系统源码的门槛,帮助更多的Android工程师理解Andriod系统,掌握Android系统。github
咱们会在GitBook上同步repo,后续会导出pdf、mobi等格式的文档供你们阅读。另外关于项目的基础框架已经建好,你们能够先预览一下,针对文章目录、Issue规范、PR规范、文档规范等问题能够直接提交issue来讨论。尤为是在文章目录方面,原来的项目内容是偏Java层的,后续咱们但愿更多的向底层进行扩展,你们也能够考虑一下本身但愿添加哪些内容进去。当前的文章目录只是初稿,后续会根据你们的需求增长相应的内容。数据库
历史文章在do目录下,这些文章都会从新修改、校对才会再次发布出来。若是你们想提早阅读这些内容,能够去android-open-source-project-analysis项目。编程
本项目使用的源码版本虽然是android-7.1.1_r28,可是文章的内容并不会针对某个特定的版本,文章着重分析源码设计思想,也不会在文章中大篇幅的贴源码,统一源码版本只是为了方便协做。微信
android-open-source-project-analysis项目从发布之后,收到了良好的读者反馈,可是一我的的精力是有限的,咱们但愿BeesAndroid这个团体项目的文章质量再上升一个层次。网络
代码版本架构
分析思路并发
Android是一个庞大的系统,Android Framework只是对系统的一个封装,里面还牵扯到JNI、C++、Java虚拟机、Linux系统内核、指令集等。面对如此庞大的系统,咱们得有必定的 章法去阅读源码,不然就会只见树木不见森林,陷入卷帙浩繁的细节与琐碎之中。微信公众平台
写做风格
和你们同样,笔者也是在前人的书籍和博客的基础上开始学习Android的底层实现的,站在前人的肩膀上会看的更远。可是这些书籍和博客有个问题在于,文章中罗列了大量的代码,这样 很容易把初学者带入到琐碎的细节之中,因此本系列文章在行文中更多的会以图文并茂和提纲总结的方式来分析问题,关键的地方才会去解析源码,力求让你们从宏观上理解Android的底 层实现。另外,基本上一个主题对应一篇文章,因此文章会比较长,可是文章会有详细的标题划分和提纲总结,能够有的放矢,阅读本身须要的内容。
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图片控件ImageView | ||
Android视图系统:Android文字控件TextView | ||
Android视图系统:Android编辑框控件EditView | ||
Android视图系统:Android图片控件Dialog |
Android组件系统
文章 | 做者 | 校对 |
---|---|---|
Android组件系统:Android组件系统概述 | ||
Android组件系统:Android视图容器Activity | ||
Android组件系统:Android视图片断Fragment | ||
Android组件系统:Android后台服务Service | ||
Android组件系统:Android内容提供者ContentProvider | ||
Android组件系统:Android广播接收者BroadcastReceiver | ||
Android组件系统:Android应用上下文Context |
Android资源系统
文章 | 做者 | 校对 |
---|---|---|
Android资源系统:Android资源系统概述 | ||
Android资源系统:应用资源Resouces | ||
Android资源系统:资源管理器AssetManager |
Android包系统
文章 | 做者 | 校对 |
---|---|---|
Android包系统:Android包系统概述 | ||
Android包系统:APK解析器PackageParser | ||
Android包系统:APK的打包流程 | ||
Android包系统:APK的安装流程 | ||
Android包系统:APK的加载流程 |
Android应用通讯系统
文章 | 做者 | 校对 |
---|---|---|
Android应用通讯系统:Android应用通讯系统概述 | ||
Android应用通讯系统:Android线程通讯桥梁Handler |
Android动画系统
文章 | 做者 | 校对 |
---|---|---|
Android动画系统:Android动画系统概述 |
Android多媒体系统
文章 | 做者 | 校对 |
---|---|---|
Android多媒体系统:Android多媒体系统概述 |
Android数据库系统
文章 | 做者 | 校对 |
---|---|---|
Android数据库系统:Android数据库系统概述 |
Binder进程通讯框架
文章 | 做者 | 校对 |
---|---|---|
Binder进程通讯框架:服务管理器ServiceManager | ||
Binder进程通讯框架:BpBinder与BBinder | ||
Binder进程通讯框架:Binder驱动 |
Socket进程通讯框架
文章 | 做者 | 校对 |
---|---|---|
Socket进程通讯框架:Socket |
Android组件管理服务
文章 | 做者 | 校对 |
---|---|---|
Android组件管理服务:ActivityServiceManager |
Android窗口管理服务
文章 | 做者 | 校对 |
---|---|---|
Android窗口管理服务:WindowServiceManager |
Android图形绘制服务
文章 | 做者 | 校对 |
---|---|---|
Android图形绘制服务:SurfaceFlinger | ||
Android图形绘制服务:Android布局解析器LayoutInflater |
Android包管理服务
文章 | 做者 | 校对 |
---|---|---|
Android窗口管理服务:PackageServiceManager |
Android反馈管理服务
文章 | 做者 | 校对 |
---|---|---|
Android反馈管理服务:AccessibilityManagerService |
Android壁纸管理服务
文章 | 做者 | 校对 |
---|---|---|
Android壁纸管理服务:WallpaperManagerService |
Android搜索管理服务
文章 | 做者 | 校对 |
---|---|---|
Android搜索管理服务:SearchManagerService |
Android通知管理服务
文章 | 做者 | 校对 |
---|---|---|
Android通知管理服务:NotificationManagerService |
Android定位管理服务
文章 | 做者 | 校对 |
---|---|---|
Android定位管理服务:LocationManagerService |
Android输入法管理服务
文章 | 做者 | 校对 |
---|---|---|
Android输入法管理服务:InputMethodManagerService |
Android电源管理服务
文章 | 做者 | 校对 |
---|---|---|
Android电源管理服务:PowerManagerService |
Android闹钟管理服务
文章 | 做者 | 校对 |
---|---|---|
Android闹钟管理服务:AlarmManagerService |
Android网络管理服务
文章 | 做者 | 校对 |
---|---|---|
Android闹钟管理服务:NetworkManagementService |
Android帐户管理服务
文章 | 做者 | 校对 |
---|---|---|
Android帐户管理服务:AccountManagerService |
Android设备存储管理服务
文章 | 做者 | 校对 |
---|---|---|
Android设备存储管理服务:DeviceStorageMonitorService |
Android备份管理服务
文章 | 做者 | 校对 |
---|---|---|
Android备份管理服务:BackupManagerService |
JVM虚拟机
文章 | 做者 | 校对 |
---|---|---|
JVM虚拟机:Java虚拟机概述 | ||
JVM虚拟机:Java类加载机制 |
ART虚拟机
文章 | 做者 | 校对 |
---|---|---|
ART虚拟机:Android ART虚拟机概述 |
Android进程系统
文章 | 做者 | 校对 |
---|---|---|
Android进程系统:进程的建立、启动与调度流程 | ||
Android进程系统:线程与线程池 |
Android内存系统
文章 | 做者 | 校对 |
---|---|---|
Android内存系统:内存管理系统 | ||
Android内存系统:Ashmem匿名共享内存系统 |
文章 | 做者 | 校对 |
---|---|---|
Android工程化实践:项目架构 | ||
Android工程化实践:编译系统 | ||
Android工程化实践:插件化 | ||
Android工程化实践:热修复 | ||
Android工程化实践:模块化 | ||
Android工程化实践:VCS工做流 | ||
Android工程化实践:持续集成 | ||
Android工程化实践:编码规范 | ||
Android工程化实践:自动化测试 | ||
Android工程化实践:自动化埋点与数据采集 |
文章 | 做者 | 校对 |
---|---|---|
Android应用优化:优化概述 | ||
Android应用优化:启动优化 | ||
Android应用优化:界面优化 | ||
Android应用优化:内存优化 | ||
Android应用优化:图像优化 | ||
Android应用优化:网络优化 | ||
Android应用优化:并发优化 | ||
Android应用优化:优化工具 |
文章 | 做者 | 校对 |
---|---|---|
Android界面开发:View自定义概述 | ||
Android界面开发:View自定义布局篇 | ||
Android界面开发:View自定义绘制篇 | ||
Android界面开发:View自定义交互篇 |
文章 | 做者 | 校对 |
---|---|---|
Android多媒体开发:Bitmap实践指南 | ||
Android多媒体开发:Camera实践指南 |
文章 | 做者 | 校对 |
---|---|---|
Android网络编程:网络编程实践 |
文章 | 做者 | 校对 |
---|---|---|
Android混合编程:WebView实践 |
欢迎关注咱们的微信公众号,新文章会第一时间发布到掘金博客与微信公众平台,咱们也有本身的交流群,下方是QQ交流群,微信群已满,能够加我微信 allenwells 邀请入群。
微信公众平台
QQ交流群