android源码编译内核-Android内核开发:源码版本及分支解读

我想很多初学者其实和我一样。 看完Android×××相关文章后,他们开始热情地下载Android源码android源码编译内核,但是下载源码后,他们是否也像我一样形成了以下疑惑呢?

(1) Android版本有哪些分支? 每个分支的 TAG 是什么?

(2)为什么Android×××写完后没有看到Linux内核代码? Linux内核对应的Android源码可以从kernel.org官网下载吗? Android 对标准 Linux 内核做了哪些改变?

(3)Android源码分支和Linux版本分支的对应关系是什么? 高版本的Android源代码可以使用低版本的Linux内核吗? 或者低版本的Android源码可以使用高版本的Linux内核吗?

(4)开发板厂家提供的Android源码与AOSP官网下载的Android源码有什么关系?

作为我的《Android内核开发》系列的第三篇文章,本文主要回答前面提到的问题。

1. Android版本有哪些分支? 每个分支的 TAG 是什么?

Android官网详细介绍了当前Android版本名称、Version、对应的API Level、Branch TAG、以及支持的设备。 链接地址如下:

由于官网被屏蔽,这里我还给出了一个保存的离线html文档,大家可以下载下来用浏览器打开,地址如下:

当然,如果你想查看当前可用的Android源码分支和版本,也可以在下载的Android源码根目录下执行以下命令:

$ git --git-dir .repo/manifests/.git/ branch -a
或者
$ cd .repo/manifests
$ git branch -a | cut -d / -f 3

得到的结果示例如下(仅截取部分):

然后,如果想切换到其他Android分支,只需要重新执行repo init和reposync即可。 示例如下:

$ repo init -b android-4.2.2_r1 
$ repo sync

2. Android源代码和Linux内核代码之间有什么关系?

文章开头提到的第二个问题主要涉及到Android源码和Linux内核代码之间的关系。 我们首先要明白一个重要的概念:

Android并没有使用标准的Linux内核,而是做了很多改变。

Android对标准Linux内核代码做了很多剪裁和优化,添加了许多独特的代码,主要包括:定制UI系统、使用Bionic Libc库替代glibc库、添加Gold-Fish平台、编写专有的驱动程序、如Binder、Logger、PowerManager等

由于版权差异和其他激励因素,这些更改尚未合并到 Linux 主分支中。 因此,我们不能直接从Linux Kernel官网(kernel.org)下载Android源代码的Linux内核代码,而是去Google官网提供的内核URL下载修改后的Linux内核代码。

Google提供了多个版本的Linux Kernel,对应不同的设备或厂商的版本,可以使用git clone命令完成下载,如下图:

如果您只是使用Android模拟器来运行Android内核,那么您可以选择goldfish版本作为您的Linux内核。 如果您有支持上述内核的设备,那么您可以下载相应的内核。

那么android源码编译内核,如果您拥有的设备或开发板不在上述支持列表中怎么办?

放心,一般来说,Android开发板厂商都会在上述Linux Kernel的基础上,为自己的开发板适配一套可用的Linux Kernel。 只需要到厂家官网或者峰会上就可以找到对应的代码。 就是这样。 对于自己设计开发的板子,需要下载相似的内核代码(比如相同的CPU型号),然后进行针对性的修改和移植。

3、Android分支与Linux分支的关系

在Android版本的迭代更新过程中,Linux Kernel也在不断迭代更新。 因此,新的Android版本通常会使用更新的Linux内核分支。 我在Google官网上没有找到具体的分支对应关系,但是在Wikipedia中,在stackoverflow上找到了一个表格如下:

维基百科已经越来越详细了,专门介绍了每个Android分支做了哪些改变。 地址如下:

一般来说,不同的Android分支最好使用对应的Linux内核分支版本,这样才能保证系统的正常编译和运行。 不过,你也可以详细了解某个Android版本对应的Linux内核是做什么的。 改变,并将这种改变移植到其他版本的Linux内核上,也可以实现低版本的Android运行在高版本的Linux内核上。 当然,反过来就比较困难了,因为通常高版本的Android内核都会用到高版本Linux内核的特性,移植起来会很麻烦。

4、厂商提供的Android版本与AOSP的关系

很多厂商都会为这款开发板提供专用的Android×××地址,那么,我们可以直接使用从AOSP官网下载的Android源码吗?

厂家通常会在官网上更改Android源代码,但更改的部分通常是补丁包,因此您只需下载厂​​家提供的补丁包,并将从官网下载的Android源代码切换到对应的分支,打补丁即可。

5. 总结

Android源码的版本和分支的介绍到此结束。 如有疑问,请留言或写信至lujun.hust@gmail.com进行沟通。 也欢迎您关注我的新浪微博@鲁_俊,获取最新文章和资讯。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 android源码编译内核-Android内核开发:源码版本及分支解读 https://www.wkzy.net/game/186351.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务