(1) Android版本有哪些分支可用?每一个分支的TAG是什么?html
(2) Android源码下载完了怎么没有看到Linux内核代码?Android源码对应Linux内核是否能够从kernel.org官网去下载?Android对标准的Linux内核作了哪些修改?linux
(3) Android源码分支与Linux版本分支的对应关系是什么样的?高版本的Android源码可否使用低版本的Linux内核?或者低版本Android源码可否使用高版本的Linux内核?android
(4) 开发板厂商提供的Android源码与AOSP官网下载的Android源码是什么关系呢?git
做为个人《Android内核开发》系列文章的第三篇,本文主要来解答一下上面提到的几个问题。github
1. Android版本有哪些分支可用?每一个分支的TAG是什么?浏览器
Android官网详细地介绍了当前Android的各个版本名称、Version、对应的API Level、Branch TAG、以及Supported devices,该连接地址以下:微信
http://source.android.com/source/build-numbers.htmlionic
因为官网被墙,这里我也给出了一份保存下来的离线html文档,你能够下载下来用浏览器打开查看,地址以下:学习
https://github.com/Jhuster/AOSP/tree/master/documents优化
固然,想查看当前可用的Android源码分支和版本,也能够在下载好的Android源码根目录下执行以下命令:
1 2 3 4 5 6 |
|
获得的结果示例以下(只截取了部分):
那么,若是你想切换到其余Android分支,只须要从新执行 repo init 和 repo sync 便可,示例以下:
1 2 |
|
2. Android源码与Linux内核代码的关系?
文章开头提到的第二个问题主要涉及到Android源码与Linux内核代码的关系,咱们首先要了解一个重要的概念:
Android并无使用标准的Linux内核,而是作了不少的修改。
Android对标准的Linux内核代码作了大量的剪裁和优化,而且添加了许多特有的代码,主要包括:自定义UI系统,采用Bionic Libc库代替glibc库,添加Gold-Fish平台,编写专有的驱动程序,如Binder、Logger、PowerManager等等。
因为版权分歧等缘由,这些修改并无merge到Linux主分支中去,所以,咱们不能直接从Linux Kernel的官网(kernel.org)去下载适用于Android源码的Linux内核代码,而是要到Google官网提供的kernel网址去下载通过修改后的Linux内核代码。
Google提供了多个版本的Linux Kernel,分别对应不一样的设备或者厂商版本,你能够经过 Git clone 命令来完成下载,以下所示:
若是你只是使用Android模拟器来跑Android内核,那么就能够选择goldfish版本做为你的Linux Kernel,若是你手头有上述内核支持的设备,那么,你就下载对应的kernel便可。
那么,若是你手头的设备或者开发板不在上述支持的列表中怎么办呢?
放心,通常而言,Android开发板的厂商会在上述Linux Kernel的基础上针对本身的开发板修改适配出一套可用的Linux Kernel的,你只须要到厂商的官网或者论坛查找对应的代码便可。对于本身设计开发的板子,则须要下载相近的kernel代码(如CPU型号相同),而后针对性的修改和移植便可。
3. Android分支与Linux分支的关系
Android版本迭代更新的过程当中,Linux Kernel也在不断的迭代更新,所以,每每新的Android版本会使用较新的Linux内核分支,具体的分支对应关系我在Google官网上没有找到,可是在维基百科和stackoverflow上找到了一份表格,以下所示:
维基百科讲的更加详细,具体介绍了每个Android分支到底有哪些修改,地址以下:
http://en.wikipedia.org/wiki/Android_version_history
通常状况下,不一样的Android分支最好能使用对应的Linux内核分支版本,这样才能保证系统的正常编译经过和运行无误,可是,也能够详细了解某个Android版本对应的Linux内核到底作了哪些修改,而且把这些修改移植到其余版本的Linux内核上,也是能够实现低版本的Android运行在高版本的Linux内核上的,固然,反过来难度比较大,由于通常高版本的Android内核会用到高版本的Linux内核特性,移植起来会麻烦不少。
4. 厂商提供的Android版本与AOSP的关系
不少厂商会提供专门的针对该开发板的Android源码下载地址,那么,咱们是否能够直接使用从AOSP官网上下载的Android源码呢?
厂商通常会对官网的Android源码进行修改,可是修改的部分通常会打个patch包,所以,你只须要下载厂商提供的patch包,而且将手头的官网上下载的Android源码切换到对应的分支,打上patch补丁便可。
结束语
免费学习更多精品课程,登陆乐搏学院官网http://h.learnbo.cn/
或关注咱们的官方微博微信,还有更多惊喜哦~
本文出自 “Jhuster的专栏” 博客,请务必保留此出处http://ticktick.blog.51cto.com/823160/1654759