Code Monkey home page Code Monkey logo

beesandroid's Introduction

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 邀请入群。

微信公众平台

QQ交流群

beesandroid's People

Contributors

liangsaifei avatar sucese avatar zengjingfang avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.