Giter Club home page Giter Club logo

beesandroid's Introduction

BeesAndroid

License Stars Stars Forks

项目介绍

关于BeesX开源技术小组

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

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

关于BeesAndroid项目

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

代码版本

image.png

分析思路

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

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

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

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

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

文章目录

导读

串讲

渲染机制

Android系统简介

Android应用原理

Android系统原理

Android系统工具

欢迎关注我们

beesandroid's People

Contributors

bigsweet avatar gitbook-bot avatar jessonyue avatar phxnirvana avatar sucese avatar yazhidev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

beesandroid's Issues

项目是否还有更新计划

看到语雀上还有那么多空白页😂, 而最近的更新时间停在了22年5月, 看了您的文章感觉受益匪浅, 对于拓宽android及跨端的领域知识很有帮助.
大佬是否还有后续的更新计划呢.

图文链接不对

Android虚拟机框架:Java类加载机制 图片资源缺失

文章描述

文章标题:Android虚拟机框架:Java类加载机制

文章链接:https://github.com/BeesAndroid/BeesAndroid/blob/master/doc/%E5%8E%9F%E7%90%86%E7%AF%87/%E8%BF%90%E8%A1%8C%E6%97%B6%E5%B1%82/JVM%E8%99%9A%E6%8B%9F%E6%9C%BA/01Android%E8%99%9A%E6%8B%9F%E6%9C%BA%E6%A1%86%E6%9E%B6%EF%BC%9AJava%E7%B1%BB%E5%8A%A0%E8%BD%BD%E6%9C%BA%E5%88%B6.md

问题描述

文章中有什么问题?

图片资源丢失

你觉得这些问题可以如何解决,你的建议是什么?

更新资源链接

android分层

作者在android体系结构分层与通常的不同,虚拟机应该与系统核心库是一层的

GitBook标题优化

现在的文章标题由于分为了模块+主题两部分,导致过长,在目录中基本只能看到模块部分,无法方便、快速地找到需要阅读的部分,建议在现有基础上再拆出一级

最终结构为:
Android系统应用框架篇
-- Android窗口管理框架
---- Android窗口管理框架概述
---- Android应用视图的载体View

default

导读.md 笔误

导读.md 中 文章目录 笔误写成了一、二、三、二,应该是一二三四?

Android视图系统一文中的疑问

文章中有什么问题?

Android视图系统: Android应用窗口Window 文中说dialog 属于子window,我理解dialog应该是属于应用窗口,只是所有的应用窗口都需要windowToken,所以dialog才必须依附activity

想参与BaseX小组中

文章描述

文章标题:想参与BaseX小组中

问题描述

你好,看到了你们整理的Android源代码资料,感觉很详实,对我帮组很大,不知道我是否可以也参与到这个项目中来,为BaseAndroid的源代码分析贡献一份力量

Error: could not find jdk tools.jar at /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/../lib/tools.jar, please check if your JDK was installed correctly. Stop.

问题描述

在执行make idegen && development/tools/idegen/idegen.sh生成android.ipr文件时报

Error: could not find jdk tools.jar at /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/../lib/tools.jar, please check if your JDK was installed correctly. Stop.

原因

在config.mk中要求的JDK HOME环境变量名称是“ANDROID_JAVA_HOME”

解决办法

再配置个环境变量为ANDROID_JAVA_HOME指向JDK HOME

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.